Intel® FPGA SDK for OpenCL™ Design Examples

author-image

โดย

Videos

Design Examples

OpenCL design examples demonstrate how to describe various applications in OpenCL along with their respective host applications, you can compile and execute on a host with an FPGA board that supports the Intel FPGA SDK for OpenCL.

  • OpenCL design examples are part of the Intel FPGA SDK for OpenCL. The example design folder can be found in the <OpenCL Installation Directory>/examples_aoc.

Supported FPGA Platforms

To get you up and running quickly, we offer a number of platforms (as listed below) created both in-house and by our design partners that support the Intel FPGA SDK for OpenCL.

While it is convenient if the architecture of the FPGA accelerator you want falls into one of these existing categories, it is not required. These reference platforms are a starting point to aid in building your own custom FPGA. Start with the existing SoC or network platform, and simply remove or modify the component interfaces for the ones you prefer and rebuild it. This uses traditional FPGA design to create the I/O ring for the OpenCL kernels to communicate with the I/O interfaces that will be on your custom board.

To build your own custom FPGA accelerator board, you will need a few things. To start building a custom board support package from a blank template, start with the custom platform toolkit.

Documentation

Custom Platform Toolkit: Windows* or Linux* downloads

  • Raw template for a platform
  • Board-test kernels to exercise the I/O interfaces
  • MMD header file to get started on building drivers
  • HPC platform migration text file (from version 13.1)

To start with an existing platform and modify it, here are the current reference platforms available.

Intel Stratix 10 GX FPGA Development Kit Board Support Package Reference Design

Intel Arria 10 GX FPGA Development Kit Board Support Package Reference Design

Stratix V Network Board Support Package Reference Design: s5_net (w/ PLDA UDP stack):

Cyclone® V SoC Board Support Package Reference Design:

Intel Arria 10 Custom Platform for OpenCL

Need Help?

Intel recommends the following certified OpenCL board support service providers that can assist you in the development of an OpenCL board support package (BSP) for your custom platforms:

Optimization Training

OpenCL Coding Optimizations for Intel Stratix 10 Devices (23 minutes)
In this course, we will cover how the offline kernel compiler of the Intel FPGA SDK for OpenCL optimizes OpenCL kernel code for optimal performance on Intel Stratix 10 FPGAs and how to use recommended coding constructs to enable these optimizations.
OpenCL Optimization Techniques: Secure Hash Algorithm (SHA-1) Example (7 minutes)
This training provides a simple overview of the optimization methodology one would take when trying to optimize their OpenCL implementation for an FPGA using the Secure Hash Algorithm (SHA-1) as an example.
OpenCL Optimization Techniques: Image Processing Algorithm Example (8 minutes)
This training provides a simple overview of an architectural optimization approach for targeting OpenCL on an FPGA for image processing algorithms.
Single-Threaded vs. Multi-Threaded Kernels (17 minutes)
Understand the differences between loop pipelining and parallel threads, and know when to use single-threaded (Task) and multithreaded (NDRange) pipelining.
Optimization and Emulation Flow in Intel FPGA for OpenCL (6 minutes)
See how you can optimize your FPGA-accelerated applications with the emulator and detailed optimization report features.

How to Do Reductions (PDF)
Being Careful with Memory Access Part 1 (PDF)
Being Careful with Memory Access Part 2 (PDF)
Optimizing OpenCL for Intel FPGAs (2 days)
This instructor-led training focuses on writing kernel functions that are optimized for Intel FPGAs, including hands-on exercises.

OpenCL Training Courses

Introduction to FPGA Acceleration for Software Programmers Using OpenCL
This training describes ways that you can use OpenCL to target an FPGA to create custom accelerated systems with an average of one fifth the power of competing accelerators, trends that are making FPGAs an important resource for accelerating software execution, and how OpenCL makes them accessible to software developers.
FPGA vs GPGPU (21 minutes)
Watch this short video to learn how FPGAs provide power-efficient acceleration with far less restrictions and far more flexibility than GPGPUs. We will compare and contrast the approach to solving problems by leveraging this flexibility compared to the fixed architecture of the GPGPU.
OpenCL on Intel SoC FPGA (Linux Host)
Part 1 – Tools Download and Setup (5 minutes)
Part 2 – Running the Vector Add Example with the Emulator (4 minutes)
Part 3 – Kernel and Host Code Compilation for SoC FPGA (4 minutes)
Part 4 – Setup of the Runtime Environment (7 minutes)

These training courses show you how to get started with OpenCL on an SoC in a Linux* environment.
Introduction to Parallel Computing with OpenCL (30 minutes)
Get an overview of the OpenCL standard and the advantages of using Intel's OpenCL solution.
Writing OpenCL Programs for Intel FPGAs (1 hour)
Understand the basics of the OpenCL standard and learn to write simple programs.
Running OpenCL on Intel FPGAs (30 minutes)
Get to know the Intel FPGA SDK for OpenCL and learn to compile and run OpenCL programs on Intel FPGAs.
Building Custom Platforms for Intel FPGA SDK for OpenCL (1 hour)
Learn how to create a custom board support package for use with your board and the Intel FPGA SDK for OpenCL.

Introduction to OpenCL for Intel FPGAs (1 day)
Get an overview of parallel computing, the OpenCL standard, and the OpenCL for FPGA design flow in this instructor-led training. The focus of the training is not on writing kernels, but rather going over the FPGA-specific portion of creating an OpenCL environment for hardware acceleration.