
<p style="text-align: center"><b><font size=5 color=blueyellow>GPU Programming Workshop (Planning Meeting)</font></b></p>
**Contents of this documents and quicklinks**:
[TOC]
## Links to previous events
- Agenda for workshop in 2023 (2-day event): https://hackmd.io/@yonglei/gpu-programming-2023-schedule
- Agenda for workshop in 2024 (2.5-day event): https://hackmd.io/@yonglei/gpu-programming-schedule-2024
- lesson material: https://enccs.github.io/gpu-programming/
## The 1st planning meeting (Oct. 2nd)
:::info
**Arrangement for this event**
- 2.5(3)-day event:
- 4*0.5-day event:
- ==3 separate 45min webinars spread across different days + 3*0.5-day event==
- 2\*1.5 webinars + 3*0.5-day event:
- a 3-h webinar + 3*0.5-day event:
- ~~one day + 3*0.5 day event~~
- webinar covers theoretical part (the first 5 episodes at [HERE](https://enccs.github.io/gpu-programming/5-intro-to-gpu-prog-models/))
- three half-day workshop
- directive (40+40) + non-portable (45+30)
- portable (60+30) + high-level (40+20)
- multi-gpu-mpi (30+30) + porting (30+20) + computation (30+30)
**Date**
It would be (Tue-Thu or Wed-Fri, 09:00-12:00 (CET)/10:00-13:00(EET) for half-day event)
| Week | Date | Poll |
| :--: | :---------: | :--: |
| 47 | Nov. 18-21 | ++++++++ |
| 48 | Nov. 25-28 | +++++++++ |
| 49 | Dec. 2-5 | ++++ |
| 50 | Dec. 9-12 | ++ |
Note
- ==week 47 for 3 half-day webinars, week 48 for three-half day workshop==
- ST unavailable for Nov 27th (definitely) and 28th (possibly)
:::
### Instructors and helpers
**Send YW the logo of your institution to create an [event image](https://enccs.se/events/gpu-programming-why-when-how-2024/)**
- Yonglei, LiU/ENCCS
- Wei Li, LiU/ENCCS
- Stepas, VU/NCC LT
- Hicham, UiB/NRIS
- Ashwin, RISE/ENCCS
- Francesco, RISE/ENCCS
- Bjørn Lindi, NTNU/NRIS
- Tapish, [HZDR](https://www.hzdr.de/db/Pic?pOid=57530)/[CASUS](https://www.hzdr.de/db/Pic?pOid=58211), [alpaka](https://github.com/alpaka-group/alpaka/blob/develop/docs/logo/alpaka.png)
- Johan Hellsvik, PDC/KTH/NAISS
- Cristian-Vasile Achim, CSC
- Yann Pfau-Kempf, CSC
- CSC logo: https://csc.fi/en/image-bank/ https://csc.fi/app/uploads/2024/01/CSC_2012_LOGO_RGB_72dpi.jpg
### HPC resources & target number of participants
- In the last two years we used LUMI for hand-on exercises.
- We expected to be 60 registrations.
### Agenda for webinars and workshop 2025
| Time | Contents | Instructor(s) |
| :----: | :----------: | :-------------: |
| 10 min | Welcome | Yonglei/ Ashwin |
| 1st webinar | Why GPUs? GPU architecture and software ecosystem | |
| 2nd webinar | GPU programming concepts, what problems fit | Francesco, Stepas (help), (Yonglei) |
| 3rd webinar | Introduction to GPU programming models | Daniel, Ashwin |
| Time | Contents | Instructor(s) | Helper(s) |
| :----: | :----------: | :-----------: | :-----------: |
| | Session 2 (Nov. 25) | | |
| 40+40 min | Directive-based models (OpenACC, OpenMP) | Wei, Yann | CVA (help OpenMP) <br>Qiang (help) <br>Stepas (help OpenMP) |
| 45+30 min | Non-portable kernel-based models (CUDA, HIP) | ??? | Johan (help), CVA (help) |
| | Session 3 (Nov. 26) |
| 80+30 min | Portable kernel-based models (Kokkos, OpenCL, SYCL, C++ stdpar, alpaka, etc.) | Simeon/Tapish (alpaka), Bjørn (Kokkos), | CVA (help SYCL) |
| 30+10 min | High-level language support | Simeon (julia), Ashwin (Python) | Stepas (help Python) |
| | Session 4 (Nov. 27) | |
| 30+45 min | Multi-GPU programming with MPI | Hicham, ??? | ??? |
| 30+20 min | Preparing code for GPU porting | ??? | ??? |
| 30+30 min | Recommendations + Stencil examples | Stepas, ??? | Yonglei |
| 10 min | Wrap-up | Yonglei |
## The 2nd planning meeting (Oct. 2nd)
### Agenda for webinars (==Nov. 18-20==)
:::success
Update lesson material [**Introduction to GPU Programming**](https://enccs.github.io/intro-gpu-programming/)
- Event page at HPC portal: https://events.hpc-portal.eu/event/224
- Registration: https://events.hpc-portal.eu/event/224/registrations/
- Event page at ENCCS website: ==???==
:::
| Time | Contents | Instructor(s) |
| :---------: | :----------: | :-----------: |
| | <span style="background-color: cyan">Nov. 18</span> | |
| 10:00-10:15 | Welcome | Yonglei/Ashwin |
| 10:15-10:30 | Why GPUs? | Yann, Hicham |
| 10:30-11:00 | GPU hardware and software ecosystem | Yann, Hicham |
| 11:00-11:20 | Q/A | |
| 11:20-12:00 | On-boarding session (login to LUMI) | Yonglei |
| | | |
| | <span style="background-color: cyan">Nov. 19</span> | |
| 10:00-10:10 | Welcome and Recap | Yonglei/Francesco |
| 10:10-10:40 | GPU programming concepts | Francesco, Stepas (help), (Yonglei) |
| 10:40-11:00 | What problems fit GPU programming? | Francesco, Stepas (help), (Yonglei) |
| 11:00-11:20 | Q/A |
| 11:20-12:00 | On-boarding session (login to LUMI) | Yonglei |
| | | |
| | <span style="background-color: cyan">Nov. 20</span> | |
| 10:00-10:10 | Welcome and Recap | Yonglei/Ashwin |
| 10:10-11:00 | Introduction to GPU programming models | Daniel, Ashwin |
| 11:00-11:20 | Q/A | |
| 11:20-12:00 | On-boarding session (login to LUMI) | Yonglei |
### Agenda for workshop (==Nov. 25-27==)
:::success
Update lesson material [**GPU Programming: When, Why and How?**](https://enccs.github.io/gpu-programming/)
- Event page at HPC portal: https://events.hpc-portal.eu/event/97/
- Registration: https://events.hpc-portal.eu/event/97/registrations/
- Event page at ENCCS website: ==???==
:::
| Time | Contents | Instructor(s) | Helper(s) |
| :---------: | :----------: | :-----------: | :-------: |
| | <span style="background-color: cyan">Nov. 25</span> | | |
| 09:00-09:10 | Welcome | Yonglei/Ashwin | |
| 09:10-10:30 | Directive-based models (OpenACC, OpenMP) | Wei, Yann | CVA (help OpenMP) <br>Qiang (help) <br>Stepas (help OpenMP) |
| 10:30-10:40 | Break |
| 10:40-12:00 | Non-portable kernel-based models (CUDA, HIP) | ==YW seeks experts== | Johan (help), CVA (help) |
| 12:00-12:30 | Q/A session | | |
| | | | |
| | <span style="background-color: cyan">Nov. 26</span> | | |
| 09:00-09:10 | Welcome and Recap | Yonglei/??? | |
| 09:10-11:00 | Portable kernel-based models <br>(Kokkos, OpenCL, SYCL, C++ stdpar, alpaka, *etc.*) | Simeon/Tapish (alpaka ~20 min) <br>Bjørn (Kokkos ~20 min) <br>~~???(C++ Stdpar)~~ <br>??? (OpenCL) <br>??? (SYCL) | CVA (SYCL) |
| 11:00-11:10 | Break |
| 11:10-12:00 | High-level language support | Simeon (julia), Ashwin (Python) | Stepas (help Python) |
| 12:00-12:30 | Q/A session |
| | | | |
| | <span style="background-color: cyan">Nov. 27</span> | | |
| 09:00-09:10 | Welcome | Yonglei/Ashwin | |
| 09:10-10:30 | Multi-GPU programming with MPI | Hicham, ??? | ??? |
| 10:30-10:40 | Break |
| 10:40-11:30 | Example problem: Stencil computation | Stepas | ??? |
| 11:30-11:40 | Break |
| 11:40-12:20 | GPU porting <br>Recommendations | ==???== | Yonglei |
| 12:20-12:30 | Q/A & Summary | Yonglei/Ashwin | |
### HPC resources & target number of participants
- LUMI
- target 60 registrations for workshop
- no number limitations for webinars
---
---
## The 3rd planning meeting (Nov. 20)
### Feedback for webinars
- Nov. 18, ~60 people (excluding oraganizers) in the zoom room
- Nov. 19, ~50 people (excluding oraganizers)
- Nov. 20, ~40 people (excluding oraganizers)
### HPC resources & target number of participants
- Got ~80 registrations and have added accepted people to the LUMI training allocation
- YW have solved sevearl technical issues to help participants get accessing LUMI
### Agenda for workshop (==Nov. 25-27==)
| Time | Contents | Instructor(s) | Helper(s) |
| :---------: | :----------: | :-----------: | :-------: |
| | <span style="background-color: cyan">Nov. 25</span> | | |
| 09:00-09:10 | Welcome | Yonglei/Ashwin | |
| 09:10-10:30 | [Directive-based models (OpenACC, OpenMP)](https://enccs.github.io/gpu-programming/6-directive-based-models/) | Wei, Yann | CVA (help OpenMP) <br>Qiang (help) <br>~~Stepas (help OpenMP)~~ |
| 10:30-10:40 | Break |
| 10:40-12:00 | [Non-portable kernel-based models (CUDA, HIP)](https://enccs.github.io/gpu-programming/7-non-portable-kernel-models/#fundamentals-of-gpu-programming-with-cuda-and-hip) | Mariia | Johan (help), CVA (help) |
| 12:00-12:30 | Q/A session | | |
| | | | |
| | <span style="background-color: cyan">Nov. 26</span> | | |
| 09:00-09:10 | Welcome and Recap | Yonglei/Ashwin | |
| 09:10-10:30 | [Portable kernel-based models <br>(Kokkos, alpaka, *etc.*)](https://enccs.github.io/gpu-programming/8-portable-kernel-models/) | Simeon/Tapish (alpaka 20+20) <br>Bjørn (Kokkos 20+20) | CVA (SYCL) |
| 10:30-10:40 | Break |
| 10:40-12:00 | [High-level language support](https://enccs.github.io/gpu-programming/9-language-support/) | Simeon (julia, 20+20), Ashwin (Python, 20+20) | ~~Stepas (help Python)~~ Yonglei |
| 12:00-12:30 | Q/A session |
| | | | |
| | <span style="background-color: cyan">Nov. 27</span> | | |
| 09:00-09:10 | Welcome | Yonglei/Ashwin | |
| 09:10-10:20 | [Multi-GPU programming with MPI](https://enccs.github.io/gpu-programming/10-multiple_gpu/) | Hicham | Yonglei/ENCCS people |
| 10:20-10:30 | Break |
| 10:30-11:20 | [Example problem: Stencil computation](https://enccs.github.io/gpu-programming/13-examples/) | Stepas | Yonglei |
| 11:20-11:30 | Break |
| 11:30-12:20 | [GPU porting <br>Recommendations](https://enccs.github.io/gpu-programming/11-gpu-porting/) | Yonglei | CVA |
| 12:20-12:30 | Q/A & Summary | Yonglei/Ashwin | CVA |
### MISC
:::danger
:::