Are you an EPFL student looking for a semester project?
Work with us on data science and visualisation projects, and deploy your project as an app on top of Graph Search.
This lecture delves into the architecture and programming of GPUs, starting with an overview of GPUs and their usefulness. It covers multithreading concepts, including coarse and fine-grained multithreading, and simultaneous multithreading. The lecture explores the evolution of parallelism in hardware, from single instruction CPUs to SIMD and vector processors. It discusses the transition from program threads to SIMD threads, emphasizing the role of GPUs as vector processors. The lecture also touches on GPU history, the rise in GPU popularity, and the reasons why GPUs are essential for modern computational problems like machine learning. It concludes with an introduction to CUDA programming, explaining GPU memory allocation, data transfer between CPU and GPU, and thread organization in CUDA kernels.