Documentation
Title |
Details |
---|---|
The Intel FPGA SDK for OpenCL Pro Edition Release Notes provides late-breaking information about the Intel FPGA Software Development Kit (SDK) for OpenCL Pro Edition and the Intel FPGA Runtime Environment (RTE) for OpenCL Pro Edition. |
|
This guide describes the procedures you follow to install the Intel FPGA SDK for OpenCL. This document also contains instructions on how to compile an example of the OpenCL application with the Intel FPGA SDK for OpenCL. |
|
This guide describes the procedures you follow to install the Runtime Environment (RTE) for OpenCL. This document also contains instructions on how to deploy an OpenCL application with the RTE. |
|
This guide provides descriptions, recommendations, and usage information on the Intel FPGA SDK for OpenCL compiler and tools. The Intel FPGA SDK for OpenCL is an OpenCL-based heterogeneous parallel programming environment for Intel FPGAs. |
|
This guide provides guidance on leveraging the functionalities of the Intel FPGA SDK for OpenCL to optimize your OpenCL applications for Intel FPGAs. |
|
Intel FPGA SDK for OpenCL Cyclone V SoC Getting Started Guide |
This guide describes the procedures you follow to set up and use the Intel FPGA SDK for OpenCL to run an OpenCL application on the Cyclone V SoC Development Kit. |
Intel FPGA SDK for OpenCL Custom Platform Toolkit User Guide |
This guide outlines the procedure for creating an Intel FPGA SDK for OpenCL Custom Platform. |
Intel FPGA SDK for OpenCL Stratix® V Network Reference Platform Porting Guide |
This guide describes the procedures and design considerations you can implement to modify the Stratix V Network Reference Platform (s5_net) into your own custom platform for use with the Intel FPGA SDK for OpenCL. This document also contains reference information on the design decisions for s5_net, which makes use of features such as heterogeneous memory buffers and I/O channels to maximize hardware usage on a computing card designed for networking. |
Intel FPGA SDK for OpenCL Cyclone V SoC Development Kit Reference Platform Porting Guide |
This guide describes the hardware and software design of the Cyclone V SoC Development Kit Reference Platform (c5soc) for use with the Intel FPGA SDK for OpenCL. |
Intel FPGA SDK for OpenCL Intel® Arria® 10 GX FPGA Development Kit Reference Platform Porting Guide |
This guide describes the hardware and software design of the Intel Arria 10 GX FPGA Development Kit Reference Platform (a10_ref) for use with the Intel FPGA SDK for OpenCL. |
Intel FPGA SDK for OpenCL Intel Arria 10 SoC Development Kit Reference Platform Porting Guide |
This guide describes the hardware and software design of the Intel Arria 10 SoC Development Kit Reference Platform for use with the Intel FPGA SDK for OpenCL. |
Intel FPGA SDK for OpenCL Intel Stratix 10 GX Development Kit Reference Platform Porting Guide |
This guide describes the hardware and software design of the Intel Stratix 10 GX Development Kit Reference Platform for use with the Intel FPGA SDK for OpenCL. |
White Papers
Title |
Details |
---|---|
This paper presents Inter-Kernel Links (IKL), a low latency and high bandwidth streaming protocol and architecture with built-in reliability and control flow for direct inter-FPGA communication. |
|
This paper presents a method for implementing FPGA in-line acceleration for streaming analytics. |
|
This paper describes the acceleration of the GATK’s HaplotypeCaller algorithm using Intel FPGAs programmed with Intel FPGA SDK for OpenCL. |
|
This paper highlights the benefits of using Intel FPGAs and the differences between FPGAs and GPUs in executing and optimizing OpenCL kernels. |
|
FPGA Acceleration of Multifunction Printer Image Processing Using OpenCL (PDF) |
This paper explores the application of OpenCL to the core Multifunction Printer image processing pipeline with Intel SoC FPGAs. |
This paper highlights the benefits of utilizing OpenCL with Intel FPGAs over other hardware architectures and traditional methods of FPGA development. |
|
This paper presents a real-time implementation of a fractal compression algorithm in OpenCL. It shows how the algorithm can be efficiently implemented in OpenCL and optimized for multi CPUs, GPUs, and FPGAs. |
|
Using OpenCL to Evaluate the Efficiency of CPUs, GPUs, and FPGAs for Information Filtering (PDF) | This paper explores techniques that allow programmers to efficiently use FPGAs at a level of abstraction that is closer to traditional software-centric approaches by using OpenCL. |
40 Gb AES Encryption Using OpenCL and FPGAs (PDF) | This application note illustrates how to perform AES encryption on FPGAs using the OpenCL tool flow. |
Is Intel® FPGA SDK for OpenCL Ready for Business? (PDF) | This paper compares the performance and ease of use of using OpenCL with Intel FPGAs for valuation of a wide range of financial derivative products with European exercise properties using the Monte Carlo technique. |
OpenCL-Ready High-Performance FPGA Network for Reconfigurable HPC | This paper proposes a high-performance, inter FPGA Ethernet communication using OpenCL and Verilog HDL mixed programming in order to demonstrate the feasibility of enabling on-the-fly offloading computation while performing low-latency data movement. |
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.
Boards | Application Area | Features | Provider |
---|---|---|---|
Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | High Performance Computing |
|
Intel |
S5PH-Q PCIe Board | Networking |
|
BittWare |
A10PL4 PCIe Board | High Performance Computing |
|
BittWare |
WARP II | High Performance Computing |
|
Colorado Engineering |
Proc10S | High Performance Computing |
|
Gidel |
520N Network Acceleration Card | Networking |
|
Nallatech |
DE5-Net FPGA Development Kit | High Performance Computing
|
|
Terasic |
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 FPGA SDK for OpenCL Cyclone V SoC Getting Started Guide (PDF)
- Cyclone V SoC Development Board Reference Manual (PDF)
- Cyclone V SoC Development Kit Reference Platform User Guide (PDF)
- Cyclone V SoC Development Board Getting Started Video
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.