Skip to content

csc-training/high-level-gpu-programming

Repository files navigation

High-Level GPU Programming

Course material for the CSC course "High-Level GPU Programming". The course is part of the EuroCC training activities at CSC.

Presentation slides

The slides are available here.

SYCL Book

Data Parallel C++ Programming Accelerated Systems Using C++ and SYCL

Book Examples

Agenda

Day 1, Wednesday 27.11

Time Topic
09:00-09:15 Welcome
09:15-10:00 Introduction to GPUs
10:00-10:30 GPU execution model
10:30-11:00 GPU memory hierarchy
11:00-11:30 Mahti and LUMI Computing Platforms
11:30-12:00 C++ Refresher
12:00-13:00 Lunch break
13:00-14:00 C++ Standard Parallelism
14:20-15:10 Kokkos and Kokkos exercises
15:10-15:30 Coffee break
15:30-16:45 Kokkos and Kokkos exercises
16:45-17:00 Day 1 wrap-up

Day 2, Thursday 28.11

Time Topic
09:00-10:30 Kokkos and Kokkos exercises
10:30-12:00 SYCL Essentials
12:00-13:00 Lunch break
13:00-14:00 SYCL exercises (Essentials)
14:30-15:00 SYCL advance features
15:00-15:30  Coffee break
15:30-16:45 SYCL exercises (Advance Features & Essentials)
16:45-17:00 Day 2 wrap-up

Day 3, Friday 29.11

Time Topic
09:00-09:30 SYCL Review
09:30-10:10 Converting CUDA to SYCL
10:10-10:45 Exercises
10:45-12:00 Memory optimizations
12:00-13:00 Lunch break
13:00-13:30 Multi-GPU programming with MPI
13:30-14:00  Interoperability with third-party libraries
14:00-15:00 Exercises & Bring your own code
15:00-15:30  Coffee break
15:30-16:15 Exercises & Bring your own code
16:15-16:30 Day 3 wrap-up & Course closing

The lectures in this repository are published under CC-BY-SA license. Some of the lectures and exercises are based on Intel copyrighted work and they have their own license (MIT).

Exercises

General instructions

Kokkos

SYCL Essentials

SYCL Advanced Features

SYCL Memory Optimizations

Multi-GPU programming with MPI

SYCL interoperability