English
Topic 11. Computing on graphics processors: GPU architecture, the CUDA C++ language, and the ILGPU library for C#
Goal: become familiar with GPU architecture and the CUDA programming model; learn to write CUDA C++ kernels with one- and two-dimensional grids, manage host and device memory, use shared memory, block synchronization, and atomic operations, and measure time correctly with CUDA events; master the ILGPU library for GPU computing in C# and compare CPU and GPU performance, taking data transfers into account.
Lecture contents
- GPU architecture and the CUDA ecosystem — GPU and CPU architecture · The NVIDIA ecosystem and CUDA in WSL2
- The CUDA C++ programming model — The CUDA C++ programming model · Host and device memory
- Building and basic parallel patterns — Building a project and handling errors · Basic parallel patterns
- Shared memory, CUDA streams, and libraries — Shared memory and block synchronization · Asynchronous execution: CUDA streams and events · CUDA libraries and profiling
- ILGPU, comparisons, and common mistakes — The ILGPU library for C# · Comparing CPU and GPU · Common mistakes