Intel® FPGA SDK for OpenCL™ Software Technology
The OpenCL™ standard is the first open, royalty-free, unified programming model for accelerating algorithms on heterogeneous systems. OpenCL™ application allows the use of a C-based programming language for developing code across different platforms, such as CPUs, GPUs, and FPGAs. A key benefit of OpenCL™ application is that it is a portable, open, royalty-free standard, which is a key differentiator versus proprietary programming models. OpenCL™ standard is a programming model for software engineers and a methodology for system architects. It is based on standard ANSI C (C99) with extensions to extract parallelism. OpenCL™ platform also includes an application programming interface (API) for the host to communicate with the hardware accelerator traditionally over PCI Express* or one kernel to communicate with another without host interaction. Intel® FPGA SDK for OpenCL™ software technology provides a vendor extension, an I/O, and a Host Channel API to stream data into a kernel directly from a streaming I/O interface such as 10 GB Ethernet.
In order to create and run applications in the Intel® FPGA SDK for OpenCL™ software technology, you need to either use an Intel or partner provided BSP or create your own BSP (see links in ‘Getting Started’ section). A board support package (BSP) is a collection of libraries and drivers that will form the lowest layer of your application software stack. Your Software Applications must link against or run on top of a given software platform.
To find reference BSPs, see the “Getting Started” section.
The following development kits have an available BSP:
- Intel® Stratix® 10 GX
- Stratix® V
- Intel® Arria® 10 SoC
- Intel® Arria® 10 GX
OpenCL™ design examples are part of the Intel® FPGA SDK for OpenCLTM software technology. You can find the design example folder at <OpenCL_Installation_Directory>/examples_aoc.
Product and Performance Information
OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.