OpenCL for Intel FPGAs: Delivering Increased System Performance and Design Productivity

Combining the Open Computing Language (OpenCL™) programming model with Intel's massively parallel FPGA architecture provides a powerful system acceleration solution. Intel's SDK for OpenCL provides a design environment that enables easy implementation of OpenCL applications on FPGAs.

Benefits of OpenCL for FPGAs

  • 従来の FPGA デザイン・フローと比べて市場投入期間を大幅に短縮。
  • Describe algorithms using the OpenCL C parallel programming language instead of traditional low-level hardware description language (HDL).
  • Build designs quickly while maintaining a high level of design abstraction.
  • Prevent design obsolescence by retargeting your OpenCL C code to current and future FPGAs and SoCs.
  • Single-step generation of FPGA implementation of OpenCL C code. No need to manually close timing or implement communication interfaces between FPGA/host/external memory.
  • High performance and power efficient solution.
  • It is possible to increase the processing power of parallel computing with very low power consumption compared to other hardware.

 

What is OpenCL?

The OpenCL standard is the industry's first open, royalty-free, unified programming model for algorithm acceleration in heterogeneous systems. OpenCL uses a C-based programming language to develop code that can run on a variety of platforms, including CPUs, GPUs, digital signal processors (DSPs), and FPGAs. OpenCL is a programming model for software engineers and a methodology for system architects. OpenCL is based on standard ANSI C (C99) and extended for parallelization. OpenCL also includes APIs for the host to communicate with hardware accelerators in hosted systems, or for kernels to communicate with different hardware accelerators in non-hosted systems. The main advantage of OpenCL is that it is a royalty-free, portable, open standard, which is the main differentiator from proprietary programming models. In the OpenCL model, the user schedules tasks into one or more command queues per device. The OpenCL runtime then splits the data parallel tasks and sends them to the processing elements of the device. The host communicates with any hardware accelerator in this manner. It is up to individual hardware accelerator vendors to abstract vendor-specific implementations. Intel's SDK for OpenCL v13.1 abstracts and conforms to the OpenCL 1.0 standard. For the OpenCL 1.0 standard, see The OpenCL Specification (PDF) by Khronos. OpenCL is supported by many vendors in the Khronos Group. See http://www.khronos.org/opencl/ for more information.

Getting started

Intel is working with several board partners to expand support for Intel's SDK for OpenCL. For more information and to purchase boards from Intel's preferred OpenCL board partners, please visit Intel's OpenCL Enabled Preferred Board Partner Program page. Intel's recommended partner OpenCL boards include Intel's SDK for OpenCL, but you can also create FPGAs for your own custom boards.

Related OpenCL documentation

 

Online Seminar / Online Demo

Improving Performance and Design Productivity with Intel FPGAs Using OpenCL

Highlights of this webinar:

  • Latest Technology Trends in the FPGA Industry
  • OpenCL programming model
  • Advantages of OpenCL on Intel FPGAs

View

 

Ray Tracing Demo Using OpenCL on an SoC

Combining both host and accelerator in a single package using the embedded ARM® processor in the Cyclone® V SoC FPGA shows how Intel reduces system complexity to accelerate ray tracing algorithms using OpenCL. I'll let you know how it can be mitigated.

Integration Platform for Heterogeneous Systems Using OpenCL

Find out why OpenCL is the perfect integration platform for heterogeneous computing. This demo retargets NVIDIA code written for the GPU to a Stratix® V FPGA.

 

Algorithm performance improvements achieved by using OpenCL and offloading functions to the FPGA

See how OpenCL improves the performance of the Mandelbrot Algorithm, a computationally intensive iterative floating point algorithm.

online training

Parallel Computing with OpenCL: A Primer
(Japanese Version: Introduction to Parallel Computing with OpenCL)

0.5 hours
Get an overview of the OpenCL standard and the benefits of using Intel's OpenCL solution.

How to Write OpenCL Programs for Intel FPGA
(Japanese Version: Writing OpenCL Programs for Altera FPGAs)

1 hour
Understand the basics of the OpenCL standard and learn how to write simple programs.

OpenCL execution method for Intel FPGA
(Japanese Version: Running OpenCL on Altera FPGAs)

0.5 hours
Learn about Intel's SDK for OpenCL and learn how to compile and run OpenCL programs on Intel FPGAs.

Inquiry