![](https://media.enccs.se/2024/08/GPU-why-when-how-2024.jpg) <p style="text-align: center"><b><font size=5 color=blueyellow>GPU Programming: Why, When, and How - Schedule</font></b></p> :::success **Nov. 12 - 14, 09:00 - 16:00 (CET), 2024** ::: --- **Contributions**: <a><img src="https://img.shields.io/badge/ENCCS-blue?style=plastic"/></a> <a><img src="https://img.shields.io/badge/CSC-purple?style=plastic"/></a> <a><img src="https://img.shields.io/badge/HPC2N-red?style=plastic"/></a> <a><img src="https://img.shields.io/badge/NCC Lithuania-green?style=plastic"/></a> <a><img src="https://img.shields.io/badge/NRIS-orange?style=plastic"/></a> <a><img src="https://img.shields.io/badge/PDC-blueyellow?style=plastic"/></a> <a><img src="https://img.shields.io/badge/SciLifeLab-gold?style=plastic"/></a> <a><img src="https://img.shields.io/badge/UiT-grey?style=plastic"/></a> **Categories**: <a><img src="https://img.shields.io/badge/Workshop-996300?style=plastic"/></a> <a><img src="https://img.shields.io/badge/GPU Programming-brightgreen?style=plastic"/></a> **Level**: <a><img src="https://img.shields.io/badge/Introductory-brown?style=plastic"/></a> --- ## General information :::info **Links for the workshop**: - This **Hackmd page**: https://hackmd.io/@yonglei/gpu-programming-schedule-2024 - **Lesson material**: https://enccs.github.io/gpu-programming/ - **Workshop page**: https://enccs.se/events/gpu-programming-why-when-how-2024/ > **Links for ENCCS** - **ENCCS:** https://enccs.se/ - **Events**: https://enccs.se/events/ - **Newsletter**: https://enccs.se/newsletter - Follow us on [**LinkedIn**](https://www.linkedin.com/company/enccs), [**Twitter**](https://twitter.com/EuroCC_Sweden), and [**YouTube**](https://www.youtube.com/@enccs) > **Links to organizations** - [CSC](https://csc.fi/en/) - [HPC2N](https://www.hpc2n.umu.se/) - [NCC Lithuania](https://www.eurocc-lithuania.lt/) - [NRIS](https://documentation.sigma2.no/#) - [PDC](https://www.pdc.kth.se/) - [NAISS](https://www.naiss.se/) - [SciLifeLab](https://www.scilifelab.se/) - [UiT](https://en.uit.no/om) ::: --- ## Instructors and helpers :::info - Binod Baniya, UiT - Jim-Viktor Paulsen, UiT - Cristian-Vasile Achim, CSC - Pedro Ojeda May, HPC2N - Stepas Toliautas, VU/NCC LT - Qiang Li, LiU/ENCCS - Jonathan Vincent, PDC - Andrey Alekseenko, SciLifeLab - Hicham Agueny, UiB/NRIS - Wei Li, LiU/ENCCS - Thor Wikfeldt, RISE/ENCCS - Yonglei Wang, LiU/ENCCS ::: ## Ice breaking question :::danger **What's your first name, and what's the most recent project you are using GPU for programming?** - Jukka, using Julia and GPU to solve PDEs (CUDA.jl, CUFFT, Spectral methods ...) - Vytautas, haven't used GPU yet, but would be interested using GPU for solving systems of nonlinear differential equations, mainly using DifferentialEquations.jl for now. - Stepas, contributing to this very workshop :) as well as university teaching - Simeon, training and running convolutional neural network (AnimalSpot) to detect bat vocalisation in recordings from the North Sea - Frank, working on computational fluid dynamics solver (Navier Stokes solver) - Sanka, no experience with GPU yet but need to prepare LLM project with it. - Lilit, work at EuroHPC JU, refreshing my knowledge. - Leon, so far none --> but soon need to use GPU for deep learning - Johanne, simulations of relativistic electron dynamics in hydrogenlike atomic systems - Piotr, without experience - Christina, haven't used GPU, working with high-precision arithmetic - Roman, training a semantic segmentation model on CUDA with Python - Francesca, no previous experience with GPUs - Martin, CFD simulations on GPUs using Python and CUDA C/C++ - Marcell: data compression - Alba: only working with CPUs (genomics research) but would want to know more about GPUs to support students that need to use them for their own ML projects - Saidi Nchimbi: worked on CPU parallel computing with Fortran on elastic deformation of materials with elastodynamics equation. Looking to explore GPU and how it improves such tasks. - Alessandro, using GPUs to speed up ODE and PDE solvers - Laura, haven't used gpu yet, but I want to know how to use AMBER+GPU - Mads: Used GPU/CUDA for reconstructing geometry from RGBD images using truncated signed distance fields. - Tor: Supporting users on LUMI. - Katja: only using programs that utilize GPUs but haven't implemented the use of GPUs myself, working with DNA sequencing projects - Taylor: Training a transformers based model with CUDA and Python. - I am not able to register on the MyAccessID website using my organization credientials. I don't believe I am elgible for the other alternatves. I receive an error message on the page after selecting my university. I contacted support. Thank you. ::: --- ## Schedule ### <font color=red>(Nov. 11) Day 0</font> | Time | Content | Instructor | | :---------: | :-----: | :--------: | | 10:00-12:00 | On-boarding session to help participants login to LUMI cluster | | ### <font color=red>(Nov. 12) Day 1</font> :::warning **https://hackmd.io/@ENCCS-Training/gpu-programming-day1-2024** ::: | Time | Content | Instructor | | :---------: | :-----: | :--------: | | 09:00-09:15 | Welcome | Yonglei/Thor | | 09:15-09:40 | [Why GPUs?](https://enccs.github.io/gpu-programming/1-gpu-history/) | Binod (Jim-Viktor) | | 09:40-10:20 | [GPU hardware and software ecosystem](https://enccs.github.io/gpu-programming/2-gpu-ecosystem/) | Cristian | | 10:20-10:30 | Break | | | 10:30-11:00 | [What problems fit to GPU?](https://enccs.github.io/gpu-programming/3-gpu-problems/) | Pedro | | 11:00-11:30 | [GPU programming concepts](https://enccs.github.io/gpu-programming/4-gpu-concepts/) | Cristian (Stepas) | | 11:30-12:00 | [Introduction to GPU programming models](https://enccs.github.io/gpu-programming/5-intro-to-gpu-prog-models/) | Stepas | | 12:00-13:00 | Lunch break | | | 13:00-14:20 | [Directive-based models (OpenACC, OpenMP)](https://enccs.github.io/gpu-programming/6-directive-based-models/) | Wei (Stepas) | | 14:20-14:30 | Break | | 14:30-16:00 | [Non-portable kernel-based models (CUDA, HIP)](https://enccs.github.io/gpu-programming/7-non-portable-kernel-models/) | Cristian (Jonathan) | ### <font color=red>(Nov. 13) Day 2</font> :::warning **https://hackmd.io/@ENCCS-Training/gpu-programming-day2-2024** ::: | Time | Content | Instructor | | :---------: | :-----: | :--------: | | 09:00-10:30 | [Portable kernel-based models (C++ stdpar, OpenCL, SYCL)](https://enccs.github.io/gpu-programming/8-portable-kernel-models/) | Andrey | | 10:30-10:40 | Break | | 10:40-12:00 | Exercises (on various models) | | | 12:00-13:00 | Lunch break | | 13:00-14:15 | [High-level language support](https://enccs.github.io/gpu-programming/9-language-support/) | Yonglei, Hicham (Stepas) | | | 14:15-14:30 | Break | | | 14:30-15:45 | [Multi-GPU programming with MPI](https://enccs.github.io/gpu-programming/10-multiple_gpu/) | Hicham, Andrey | | 15:45-16:00 | Q/A | | ### <font color=red>(Nov. 14) Day 3</font> :::warning **https://hackmd.io/@ENCCS-Training/gpu-programming-day3-2024** ::: | Time | Content | Instructor | | :---------: | :-----: | :--------: | | 09:00-10:00 | [Preparing code for GPU porting](https://enccs.github.io/gpu-programming/11-gpu-porting/) | Cristian (Fortran to GPU), Andrey | | 10:00-10:30 | [Recommendations and discussions](https://enccs.github.io/gpu-programming/12-recommendations/) | Yonglei | | 10:30-10:45 | Break | | | 10:45-11:50 | [Problem examples](https://enccs.github.io/gpu-programming/13-examples/) | Stepas, Andrey | | 11:50-12:00 | Wrap-up | Yonglei | | 12:00-13:00 | Lunch break | | | 13:00-15:50 | [Bring your code session](https://hackmd.io/@yonglei/gpu-programming-byc-2024) | | | 15:50-16:00 | Summary of this workshop | | --- ## Code of Conduct We strive to follow the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) to foster an inclusive and welcoming environment for everyone. [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](https://github.com/ENCCS/event-organisation/blob/main/CODE_OF_CONDUCT.md) **In short**: - Use welcoming and inclusive language - Be respectful of different viewpoints and experiences - Gracefully accept constructive criticism - Focus on what is best for the community - Show courtesy and respect towards other community members Contact details to report CoC violations can be [found here](https://enccs.se/yonglei-wang). ---