Welcome to the GPU assignment of 5kk70 Platform-based Design! The purpose of this assignment is to get familiar with the modern GPU architecture and its programming model. Considering the availability of hardware and documentation, the NVIDIA GeForce/Quadro GPU will be used in this assignment. The NVIDIA GPU can be programmed using CUDA or OpenCL. The programming models of CUDA and OpenCL are similar. Due to the availability of documentation and example, CUDA will be used in this assignment.

If you are new to CUDA, go to the preparation page and see how to get started.
Note: You can get the account for using the CUDA PC we provide at the secretary's office (PT 9.24).

Some learning materials are available here. After learning these materials, you should understand the essentials of GPU programming using CUDA be able to write some GPU programs.

When porting the serial code to GPU, you may find that the performance is not as good as you expected. That's because the architecture and programming model of the GPU is very different from common CPU and it requires extra effort to write a good GPU program. The example page contains examples that show you several important optimization techniques for GPU programming. Please read it carefully.

Guidelines for the assignment

This assignment is an individal assignment,

The deadline for this assignment is Dec 14.

If you have any question, please feel free to contact Dongrui She, at PT 9.19, email: d.she _at_ tue.nl.