Full OpenCL-on-FPGA training @ Amsterdam

Amsterdam, 24 Oct 2016

Learn to program OpenCL on FPGAs in only one week.

Who doesn’t want to learn how to program FPGAs the easy way, without giving in on performance. OpenCL gives you 95% of the performance, reducing the design-time from months using VHDL or Verilog to only a matter of weeks. In one week we will learn you how to program Altera FPGAs using OpenCL.

It’s faster to do this training and write your FPGA-project in OpenCL than to start today in VHDL or Verilog.

Overal the training is about 50% lectures and discussions, 50% lab-sessions.


Note: the below schedule can slightly change. If you think we’re missing a subject, let us know!

Learning Goals

Correctly writing OpenCL code for FPGAs, learning to work with Quartus and understanding the important optimisation techniques.

Day 1: crash course OpenCL

This is equal to our normal OpenCL crash course, except that the focus is more on FPGAs. We start with the basic concepts, write our fist OpenCL program, discuss the architectures, discuss the difficulties of FPGA-programming and GPU-programming, compare to CUDA and C++, and end with writing simple code that runs on your laptop (CPU or GPU).

  • OpenCL model
  • OpenCL language
  • Memory objects
  • General hardware overview
  • Task-parallelism and data-parallelism
  • Mapping OpenCL to FPGAs
  • Mapping OpenCL to CPUs and GPUs

The coding is all done on CPU and GPUs, not on FPGAs yet.

Day 2: Optimise a flow-based program from scratch

As we are using an FPGA-server for developing, we provide you with login-credentials, a git-account and a short how-to for using the OpenCL compiler of Altera. Then we start to design a flow-based program, which reads data from the host and processes the data in a several steps. During the day, we will increase the level of requirements and touch all important aspects of OpenCL-programming on Altera FPGAs.

Optimisations we discuss during this day:

  • Host-code
  • Data-flow
  • Memory
    • Transfers
    • Alignments
    • Scheduling
  • Parallelism
  • Latency

At the end of the day we will start a full compile for the FPGA (takes several hours).

Day 3: Pause day

We found that many people need to have a break after two days. We offer a few options:

  • Join us on a tour through Amsterdam in the afternoon, while you can ask both technical and tourist questions.
  • Work on your own projects.
  • Practice what you’ve learnt and do extra tasks on an FPGA-server.
  • A combination of above.

Day 4: Advanced coding

We start with discussing what we learned and did not learn. We focus on a few subjects of day 2 that were not clear enough.

Today we focus on creating and optimising more advanced software:

  • Systolic array.
  • Multi-step image processing.

Each of these will take about 3 hours.

Day 5: FPGA tools and final project

Altera provides various tools you need to understand to get code that runs well on FPGAs. This day you will learn to use the Quartus tools from analysing to compiling. We’ll also use other third party tools to get all information out that you need.

The tools are discussed and used along the following four subjects:

  • Software correctness
  • Profiling
  • Reporting
  • Debugging

With these tools we are going to optimise the final project independently.



Attendees need to bring their own laptops for the lab sessions. The only requirement is for the laptops to be equipped with an OpenCL CPU or GPU. A complete list with OpenCL compliant devices can be found here. Regarding the software, the laptops need to have cmake, ssh/putty and git installed. As a backup we have a server with a big GPU.


Attendees are required to have intermediate programming experience and good C/C++ knowledge. This means that you should at least be able to write an application in C/C++ from scratch, debug it with GDB and be (very) comfortable working with pointers.



The costs are €2750 for the whole week. Coffee, tea, snacks, fruit, lunch, Friday-beers and the Amsterdam tour are included in the price. Extra days for personal training and consultancy are excluded.


In the direct area there are various hotels for different budgets. In random order:

If you prefer a hotel in the city-center (central station is only 6 minutes by train) or want us to book one of the hotels, give a call to share your preferences and we’ll arrange everything for you.


Send an email to info@streamhpc.com or call +31854865760 for more information and registration.

Want to know more? Get in contact!

We are the acknowledged experts in OpenCL, CUDA and performance optimization for CPUs and GPUs. We proudly boast a portfolio of satisfied customers worldwide, and can also help you build high performance software. E-mail us today