This lesson is being piloted (Beta version)

GPUs in Scientific Applications

Introduction to GPU programming, focused on CUDA and OpenACC two paradigms for NVIDIA accelerators.

Prerequisites

This lesson assumes familiarity with C Programming, CUDA is a superset of the C programming language. The basic elements of the language will be explained during the first examples.

Workshop Webpage

Schedule

Setup Download files required for the lesson
Day 1 10:00 1. Introduction to GPU Computing What is GPU?
How a GPU is different from a CPU?
Which scientific problems work better on GPUs?
10:30 2. Paradigms of Parallel Computing Which are the ways we can use parallel computing?
On which of them GPUs can be used?
11:00 3. Introduction to CUDA What is CUDA and how is it used for computing?
What is the basic programming model used by CUDA?
How are CUDA programs structured?
What is the difference between host memory and device memory in a CUDA program?
11:30 4. Deep Learning What is Deep Learning?
What is a Neural Network?
Why DL is often computed with accelerators (GPUs)
12:00 Finish
Day 2 10:00 5. Molecular Dynamics What is Classical Molecular Dynamics (CMD)?
How can we simulate the motion of particles subject to inter-particle forces?
Which problems can be solved with CMD?
How we can use GPUs to accelerate a CMD simulation
11:00 6. Other Applications Beyond DL and CMD, which other applications can use accelerators?
What is Computational Fluid Dynamics (CFD)?
How to use GPUs to accelerate CFD simulations?
12:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.