Intel® FPGA SDK for OpenCL™ Software Technology


Intel® FPGA SDK for OpenCL™ software technology1 is a world class development environment that enables software developers to accelerate their applications by targeting heterogeneous platforms with Intel CPUs and FPGAs. This environment combines Intel’s state-of-the-art software development frameworks and compiler technology with the revolutionary, new Intel® Quartus® Prime Software to deliver next generation development environment that abstracts FPGA details while delivering optimized results. Intel® FPGA SDK for OpenCL™ software technology enables you to fully leverage the unique capabilities of FPGAs to deliver acceleration performance with power efficiency and low latency.


What's New in 19.3

Intel® FPGA SDK for OpenCL­™ software technology v19.3 includes key enhancements that deliver improved performance and productivity.

Meeting Performance Requirements

  • Introducing the hls_float pragma that allows users to create customized floating point types for applications that have specific precision requirements
  • Improvements to existing memory attributes
    • New max_replicates attribute provides direct control of memory system replication to support multiple load ports
    • New max_private_copies attribute provides direct control of memory system private copies and replaced max_concurrency attribute introduced in v19.1

An Intuitive Design Environment

Introducing new Schedule Viewer report. This report shows the schedule of all operations in the datapath, their relative scheduling, and their individual latencies. The Schedule viewer allows users to iterate on their design to achieve better latency and throughput. To learn more about the Schedule Viewer refer to the Intel® FPGA SDK for OpenCL™ software technology optimization guide.

Reducing Development Effort

  • Introduced libraries creation tool to build libraries for Intel® HLS Compiler and Intel® FPGA SDK for OpenCL™ software technology. With this tool, developers can create optimized C or RTL libraries that can be reused without knowing the underlying hardware design or implementation details. To learn more about how to use the libraries creation tool, refer to the Intel® FPGA SDK for OpenCL™ software technology programming guide
  • Enhanced ability of compiler to infer packing of dot products in DSP block. The results of this automatic inference will be visible in the Area and System Viewer Reports

Getting Started

Frequently Asked Questions

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

Documentation and Support

Find technical documentation, videos, and training courses for the Intel® FPGA SDK for OpenCL™ software technology.

Product and Performance Information


OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.