GPU programming in CUDA

Zoom link: https://uni-lj-si.zoom.us/j/91379265157

We will run our GPU programs on the Slovenian supercomputer at Arnes during the course. If you want to run them on your own, please send the public part of the SSH key to support[at]sling[dot]si (please mention that you are participating in the course GPU Programming in CUDA). Afterwards, administrators will reply to you with the user credentials.

SSH access:
open the terminal (command prompt)
run command: ssh-keygen
and press the Enter key on each prompt

when the program finishes, the public part of the SSH is in the file:
- Mac/Linux: ~/.ssh/id_rsa.pub
- Windows 10 or 11: %userprofile%\.ssh\id_rsa.pub
(for older Windows, check https://doc.vega.izum.si/ssh-for-win/ )

Overview:
Graphics Processing Units (GPUs) are nowadays an essential tool for scholars and engineers when they are faced with high computing requirements. Nevertheless, obtaining high performance from these devices requires knowledge of how they work and the programming model they are based on.
In this workshop, the attendees will learn the fundamentals needed to start the journey into the world of GPU programming. Using the CUDA Toolkit, we will accelerate the C applications by offloading the computationally intensive portions of the code to GPUs. Throughout the workshop, we will combine the theoretical explanations and many hands-on exercises to familiarize the attendees with the GPU programming concepts.

Schedule:
On first day we will start with the GPU hardware design and how it differs from the design of traditional computers in terms of processing and memory. We will consider advantages and hazards of the offload model and become familiar with the GPU programming model using CUDA Toolkit to run our first program.
On the second day we will work on many practical examples. We will start learning the important concepts by optimizing simple algorithms and in the end use the gained knowledge in optimization of an image processing algorithm.

Gained knowledge:
At the end of the workshop, the participants will have an understanding of the fundamental tools and techniques for GPU programming in CUDA and be able to:

  • write GPU-accelerated CUDA C applications
  • expose and express data and instruction-level parallelism using CUDA
  • utilize CUDA managed memory and optimize memory migration.

Target audience: The workshop is aimed at students, researchers, and engineers.
Course Format: This training will take place online. The instructors will provide you with the information needed to connect to the event.
Date: June 20-21, 2022.
Prerequisites: Personal computer equipped with a SSH client to access the computing cluster, basic knowledge of programming, preferably in C

Contact: Please email eurocc[at]sling[dot]si or itkurzy[at]savba[dot]sk for more information.

The workshop is a part of the EuroCC Twinning activity between Slovak and Slovenian NCC. It is organized by University of Ljubljana, Faculty of Computer and information Science

Register now