Research Page of Sumanta Chaudhuri

Accelerator Design With OpenCL

The Objective of this ATHENS one week course is to introduce the students to the concepts of programming with OpenCL. Recently there is a trend in Computer Architecture towards heterogeneous systems (HSA) where accelerators like FPGAs, GPUs are integrated on the same die as Chip Multi-Processors. Compute intensive tasks are then offloaded to these accelerators. OpenCL (Open Computing Language) is an industry standard language for parallel programming which is adopted by industry leaders such as Intel, Xilinx, ARM for programming accelerators (i.e Intel FPGAs, ARM Mali GPUs). After following this course a student should be able to :

  1. Write basic OpenCL programs (both host program and kernel) for FPGAs.

  2. Write basic OpenCL programs for programming GPUs.

  3. Be familiar with notions of optimization for performance.


Day 1 : Introduction to OpenCL API, and Host Program.

Day 2. Practical work with ARM MALI OpenCL SDK.

Day 3: Hands On experience: Programming GPUs with ODROID XU4 Boards.

Day 4: Practical work with Xilinx SDSoC.

Day 5: Hands On Experience: Programming FPGAs with Pynq-Z1 boards.


Computer Architecture, VLSI, C/C++

Course exam

The students will be marked based on

  1. Practical Work

  2. Quiz at the end of the course.

Course Material


Architecture Recap

GPU Architecture

FPGA Architecture

OpenCL Syntax