Introduction to OpenACC, OpenMP Offloading and HIP programming models¶
PRODUCING UNIVERSITY:¶
University of Luxembourg¶
PRODUCING INSTRUCTOR(s) (name and email)¶
Ezhilmathi Krishnasamy (ezhilmathi.krishnasamy@uni.lu)¶
Pascal Bouvry (pascal.bouvry@uni.lu)¶
Summary¶
This course introduces OpenACC, OpenMP Offloading and HIP. Presently most dominant GPU vendors are Nvidia and AMD. Therefore, a common programming model is essential; all of these programming models can be executed on Nvidia and AMD GPUs. Participants from this course will learn GPU programming using the OpenACC, OpenMP Offloading and HIP programming models, such as compute constructs, loop constructs and data clauses. Furthermore, understanding the GPU architecture and how parallel threads blocks are created and used to parallelise the computational task. Moreover, GPU is an accelerator; hence, there must be a good understanding of memory management between the GPU and CPU, which will also be discussed in detail. In addition, learning how to do hybrid programming utilizing both CPU and GPU. Therefore, making the CPU ideal is not an optimal solution; because present-day multicore CPUs are more powerful (more cores and higher frequency). Finally, participants will also learn to use the OpenACC, OpenMP Offloading and HIP programming models to accelerate linear algebra (routines) and iterative solvers on the GPU. And also, how to profile the application using profiling tools, find the bottlenecks, and optimize the code further.