HPC Training Series - Course 12 "Introduction to Accelerators: GPUs / CUDA"

Europe/Athens
Description

EuroCC@Greece announces the 12th Course of HPC Training Series with the subject "Introduction to Accelerators: GPUs / CUDA", that will take place online on April 4th, 2025.  

Date: April 4th, 2025, at 10:00 EET  

Location: Online via Zoom

Presentation Languages: Greek

Audience: This course is ideal for individuals interested in learning GPU programming with CUDA. It is suitable for students, researchers, engineers and programmers.

Course Description: This course will cover topics on GPU architecture, programming and their advantages for parallel computing, exploring how GPUs accelerate complex computations. It will provide an overview of major GPU software suites, with a particular focus on CUDA. 

Participants will learn the basics of CUDA programming, including memory allocation, data transfer, and kernel execution. The course will also explore various optimization techniques to enhance computational performance on GPUs, such as the use of shared memory, memory coalescing, and managing warp divergence. Additionally, task-based parallelism will be covered, utilizing streams and events for efficient parallel execution. Profiling tools will be introduced to help identify and address computational bottlenecks. Furthermore, the course will delve into performance optimizations in CUDA, emphasizing efficient memory usage and execution patterns. 

Participants will also be introduced to high-performance libraries for GPUs, including cuBLAS for dense linear algebra, cuSPARSE for sparse matrices, CUDA Graphs for efficient execution management, cuSOLVER for numerical solvers, cuFFT for fast Fourier transforms, cuRAND for random number generation, and AmgX for algebraic multigrid methods.

Learning Objectives:

By the end of this course, participants will be able to:

  • Understand the architecture of GPU accelerators and the fundamental differences between GPUs and CPUs.

  • Identify major GPU software suites available, with a focus on CUDA.

  • Utilize CUDA for basic GPU programming, including controlling data movement between CPUs and GPUs.

  • Optimize computational kernels for efficient execution on GPU hardware.

  • Use cuBLAS, cuSPARSE, and CUDA Graphs for efficient GPU computation.

  • Apply cuSOLVER, cuFFT, cuRAND, and AmgX for specialized tasks.

Prerequisites:

  • Some prior experience with C/C++ 

  • No prior knowledge of CUDA is necessary

 

Note: Please enter your institutional/corporate email when registering.

 

Registration
Registration
    • 10:00 10:10
      Introduction to EuroCC & the training events 10m
      Speaker: Dr Nikolaos Bakas (GRNET)
    • 10:10 10:20
      How to access the EuroHPC-JU supercomputers 10m
      Speaker: Dr Nikolaos Bakas (GRNET)
    • 10:20 10:30
      How to access the Greek HPC Infrastructure ARIS 10m
      Speaker: Mr Nikolaos Triantafyllis (GRNET)
    • 10:30 12:30
      Introduction to modern graphics processing units (GPU) architecture and programming in CUDA 2h
      Speaker: Dr Xenophon Trompoukis (NTUA)
    • 12:30 13:15
      Performance optimizations in CUDA 45m
      Speaker: Prof. Ioannis Venetis (UniPi)
    • 13:15 14:00
      Usage of high-performance libraries for GPUs 45m
      Speaker: Prof. Ioannis Venetis (UniPi)
    • 14:00 14:30
      SCALE: a Cross-Vendor extension of the CUDA Programming Model for GPUs 30m
      Speaker: Dr Manos Pavlidakis (Scale)
    • 14:30 14:40
      Q&A 10m
      Speaker: Dr Nikolaos Bakas (GRNET)