Parallel Programming for HPC     Agenda     Registration     About

What is a GPU?


Instructor bio

Description

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.

Learning objectives

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).

Knowledge prerequisites

None. Prior exposure to parallel programming methodologies, though not strictly required, is helpful.

Hardware/software prerequisites

Participants in any PICSciE virtual workshop need a Princeton Zoom account. Details can be found in the advance setup guide for PICSciE virtual workshops.

Session format

Lecture and presentation

Session Materials

Session Recording