The first day of the training will merely be devoted to introduce GPUs through a series of lectures, demos and interactive discussions. The architecture is discussed, as well as the programming and execution model. Next, insight into the peak performance will be acquired, as well as the issues that make the performance degenerate. The relation with algorithmic and implementations aspects will be discussed, such that the trainee gets a first insight into which algorithms/implementations are well-suited for GPUs and which aren't. The introduction ends in the afternoon of the first day after which the hands-on training starts.

Trainees will be guided through all implementation and performance issues w.r.t. GPU computing. An effective sequence of examples and exercises have been set-up such that the trainee will follow an effective path towards grasping the necessary skills of GPU computing . The trainee will acquire a thorough understanding in writing GPU kernels, launching kernels, data transfer, kernel synchronization, vector operations, debugging, the available tools, understanding and optimizing memory access, ... One-on-one guidance will be provided, such that the training can be tailored according to the background skills of the trainee.

After the training, the trainees will understand how to implement algorithms on GPUs and which aspects to consider for efficient implementations. We will put the GPU into perspective; compare them with other technologies, and discuss their weaknesses and the challenges for putting the technology into practice.

For the first day, participants are expected to have basic knowledge about hardware and software. For the hands-on training on days 2 and 3, participants are expected to have relatively good programming skills (preferably C)