OpenCL™ is a standard for writing parallel programs for heterogeneous systems, much like the NVidia* CUDA* programming language. In the FPGA environment, OpenCL constructs are synthesized into custom logic. An overview of the OpenCL standards will be discussed. You will learn about the platform, execution, memory, and programming models that define the OpenCL specification. Syntax of the OpenCL language will be discussed, and you will see examples of OpenCL usage. The similarities and differences between OpenCL and CUDA will be highlighted throughout. The advantages of using the Intel® FPGA OpenCL solution will be presented.*OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission of Khronos*Other names and brands may be claimed as the property of others
Heterogeneous Parallel Computing
-The student will be provided with a brief motivation for the necessity of parallel computing along with its inherent challenges.
OpenCL for Platform and Host-side Software
-In this module, we will begin to craft an understanding of OpenCL as a viable framework for the development of heterogeneous Parallel Computing Solutions on Intel FPGAs
Executing OpenCL Kernels
-For this module, we will explore the basics of the OpenCL standard.
-Building upon what we've covered up to this point, you will learn how to write your very own OpenCL program
OpenCL on Intel FPGAs
-The Finale: you will get to compile and run your OpenCL programs using the Intel FPGA SDK for OpenCL
Nikhil Venkatesh and Dennis Ejorh