by Christopher Cooper, PhD student at Barba group
This tutorial is open to any BU or external students or postdocs, at no cost; but please register. It will go over the following topics:
Session 1 (1.5h): Introduction
The first session will lay the ground to understand what a GPU is good for. To do so, basics of the GPU architecture will be covered, comparing it to the CPU case. This will be followed by an introduction to CUDA, which will go over some basic concepts such as kernels, threads and memory hierarchy.
Session 2 (1.5h): Efficient use of the GPU
The second session will be more of an intermediate level, when the programmer starts worrying about code efficiency. Recalling the last part of session 1, we will begin by going over efficient use of shared memory. Then, we will look into the way the GPU deals with threads to finally, from there, discuss some optimisation topics such as coalescing, latency hiding and control flow.