Duration: 10 Hours


Friday 16th , Wednesday 21th, and Friday 23th

November 2018

From 9:00 to 13:00

Professor: Antonio Carpeño Ruiz


  • Know the basic principles of programming applications in OpenCL
  • Use the design cycle with the IntelFPGA SDK for OpenCL Tools
  • Analyze the structure of the code to be executed on the host
  • Know the basic techniques for optimizing the performance of OpenCL kernels




Introduction Lab 1: Running openCL Applications





Setting up OpenCL Tools with IntelFPGA Platforms
An overview of OpenCL
Basic OpenCL concepts
OpenCL for FPGA design cycle
OpenCL Host Programming
Introduction to OpenCL kernel programming

FPGAs Oriented Kernel Design Lab 2: Implementing and IO Channel for an Acquisition Device


The OpenCL memory hierarchy
Synchronization in OpenCL
The OpenCL Events Model

The FFT Example Lab 3: Performing the FFT of a block of samples.

Course Materials:

  • Lectures Slides
  • DE1-SoC board
  • Linux Virtual Machine VMWare Ubuntu 14.04 Guest
  • https://bitbucket.org/acarpeno/de1_soc_examples
  • OpenCL in Action. Matthew Scarpino
  • Heterogeneous Computing with OpenCL. Gaster, Howes, et al
  • OpenCL Parallel Programming Development CookBook. Raymond Tay
  • Intel FPGA SDK for OpenCL
    • Getting Started Guide
    • Cyclone V SoC Getting Started Guide
    • Programming Guide
    • Best Practices Guide
    • Custom Platform Toolkit User Guide
    • Intel Cyclone V SoC DK Reference Platform Porting Guide
    • Intel Arria 10 SoC DK Reference Platform Porting Guide
    • Intel Arria 10 GX DK Reference Platform Porting Guide
    • Intel FPGA RTE for OpenCL – Getting Started Guide