A brief introduction to GPU programming and optimization
- Thursday 9 February 2023
Niels Bohrweg 1
2333 CA Leiden
Graphics Processing Units (GPUs) have revolutionized the High-Performance Computing landscape in the past decade and are seen as one of enabling factors in recent breakthroughs in Artificial Intelligence. However, it can be very difficult to unlock to full computational power of the GPU. Not only is GPU programming different from CPU programming, there are many implementation choices and code optimization techniques to apply in creating highly-efficient GPU programs. The process of optimizing GPU programs can be viewed as a search process that is infeasible to do by hand. As such, automated performance tuning (or auto-tuning) techniques are key to optimizing GPU applications. In this talk, I will explain the key differences between CPU and GPU programming, the challenges in code optimization and the use of auto-tuning to unlock the full potential of GPUs.