20–21 Jun 2022
Zoom Meeting
Europe/Ljubljana timezone

Description


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.

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