Introduction to OpenCL for FPGA

In this chapter, we discuss what is an FPGA, and how to design an FPGA-based computing systems using OpenCL. We explain how to setup the OpenCL design environment in step-by-step. An example of an OpenCL design is explained by using a host and a device code. At the end of this chapter, we compare the OpenCL-based design environment against the traditional HDL-based design environment, and discuss the advantages and disadvantages.

[1]  John Freeman,et al.  From opencl to high-performance hardware on FPGAS , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[2]  John Williams,et al.  Reconfigurable FPGAS for real time image processing in space , 2002, 2002 14th International Conference on Digital Signal Processing Proceedings. DSP 2002 (Cat. No.02TH8628).

[3]  Masanori Hariyama,et al.  Automatic Optimization of OpenCL-Based Stencil Codes for FPGAs , 2017 .

[4]  Wu-chun Feng,et al.  Bridging the FPGA programmability-portability Gap via automatic OpenCL code generation and tuning , 2016, 2016 IEEE 27th International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[5]  Martin C. Herbordt,et al.  Achieving High Performance with FPGA-Based Computing , 2007, Computer.

[6]  Huiyang Zhou,et al.  Tuning Stencil codes in OpenCL for FPGAs , 2016, 2016 IEEE 34th International Conference on Computer Design (ICCD).

[7]  Alan D. George,et al.  Comparative analysis of OpenCL vs. HDL with image-processing kernels on Stratix-V FPGA , 2015, 2015 IEEE 26th International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[8]  Uwe Meyer-Baese,et al.  Digital Signal Processing with Field Programmable Gate Arrays , 2001 .

[9]  Masanori Hariyama,et al.  OpenCL-Based FPGA-Platform for Stencil Computation and Its Optimization Methodology , 2017, IEEE Transactions on Parallel and Distributed Systems.

[10]  Jason Cong,et al.  Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks , 2015, FPGA.

[11]  Shivank Dhote,et al.  Using FPGA-SoC interface for low cost IoT based image processing , 2016, 2016 International Conference on Advances in Computing, Communications and Informatics (ICACCI).

[12]  John Freeman,et al.  OpenCL for FPGAs: Prototyping a Compiler , 2013 .

[13]  Alexander Vazhenin,et al.  Stream Computation of Shallow Water Equation Solver for FPGA-based 1D Tsunami Simulation , 2016, CARN.

[14]  Wayne Wolf,et al.  FPGA-Based System Design , 2004 .