GPU Computing: Algorithms, Tools, and Techniques

Professors:Camil Demetrescu, Marco Fratarcangeli

Full description

Multi-core processors are massively employed within the typical
heterogeneous systems currently widely spread on the market, including
PCs, game consoles, mobile handsets, servers and supercomputers. A
cheap desktop PC normally includes a CPU featuring multiple processor
cores and a GPU (Graphics Processing Unit), having thousands of cores.

This course aims at teaching computational thinking and
problem-solving techniques that facilitate the production of effective
and efficient parallel programs able to exploit such heterogeneous
architectures. We will show the basic concepts of parallel
programming, and how to use them with respect to the CPU/GPU hardware
architecture. We will also discuss techniques for performance
engineering of GPU programs using several different case studies,
mostly by using CUDA (Compute Unified Device Architecture), a
proprietary NVIDIA’s software development tool similar to C,
created for massively parallel environments.
Tentative period: second half of september

For more information please contact the instructors.