This session will provide an overview of the structure and terminology associated with GPU hardware, and specifically NVIDIA GPUs. The sorts of parallel programming paradigms to which GPUs are best suited will also be discussed.
After a general overview of GPU programming, attendees will get a hands-on introduction to different GPU programming models: leveraging existing libraries, accelerating Python code on GPUs with CuPy and Numba, an introduction to the OpenACC programming model, and an overview of how to use CUDA to write your own GPU kernels.
Participants will get a high-level overview of what GPUs are, how they work, and what some different approaches are to programming them (later sessions will elaborate on these approaches).
None. Prior exposure to parallel programming methodologies, though not strictly required, is helpful.
Participants in any PICSciE virtual workshop need a Princeton Zoom account. Details can be found in the advance setup guide for PICSciE virtual workshops.
Lecture and presentation