![](https://media.enccs.se/2023/04/GPU-Course-why-when-how.jpg) # GPU programming -- Why, When and How? (2023-Jun) -- Schedule :::success **Jun. 9 & 12, 09:00 - 16:00 (CET), 2023** ::: ## General information :::info **Links for the workshop**: - This **Hackmd page**: https://hackmd.io/@enccs/general-gpu-june2023 - **Lesson material**: https://enccs.github.io/gpu-programming/ - **Workshop page**: https://enccs.se/events/2023-06-gpu-programming/ - **Zoom link**: - Workshop feedback form: https://events.prace-ri.eu/event/1501/surveys/1082 - Workshop will be recorded but participant interactions edited out before publishing. > **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), or [**Twitter**](https://twitter.com/EuroCC_Sweden), and [**YouTube**](https://www.youtube.com/@enccs) ::: --- ## Instructors and helpers :::info - Andrey Alekseenko, KTH - Cristian-Vasile Achim, CSC - Erik Heggeli, University of Tromsø - Hicham Agueny, University of Bergen - Jaro Hokkanen, CSC - Jussi Heikonen, CSC - Magnar Bjorgve, University of Tromsø - Pedro Ojeda May, HPC2N Umeå - Qiang Li, ENCCS - Richard Darst, Aalto University - Stephan Smuts, University of Aarhus - Stepas Toliautas, Vilnius University - Thor Wikfeldt, ENCCS - Tuomas Lunttila, CSC - Wei Li, ENCCS - Yonglei Wang, ENCCS ::: ## Ice breaking question :::danger **What's your (first) name and what are you most interested in learning about in this workshop?** - RD: it may seem simple, but getting a map of all the terms, generations of cards, and so on, and how to keep track of them. - Alex: Get better at utilising GPUs - i've only done basic CUDA. Would like to optimise my Julia code - Agustin Corbat: I would like to learn why I should use GPU and how to do that. - Mariya: I would like an overview of GPU programming and learn if it can be used for machine learning within bioinformatics - Kelley: I would like to get an idea of when using GPUs is appropriate in my software/pipeline development and how to start going about it. - Marcus: I use GPUs for training machine learning models almost daily but have no idea how they work. I want GPUs to be demystified with this workshop. - Benoit Espinola: I am most interestd in getting to know how to use GPUs and if/how can I use them for my research (getting to use LUMI is a nice bonus 🐺). Background: Physical oceanography 🌊 + Machine Learning 🖥️. - Oskar Tegby: I would like to deepen my knowledge of GPUs to get a more advanced understanding of them and to be able to use the resources better. - Peter: I hope to get an understanding of when /if GPUs can be used instead of CPUs. Which types of problems are, and are not suited to be ported to GPU. (not interested in the trivial cases: when there is little data "interdependency"). - Sunniva: speed-up my code :sunglasses: - Vidar Olaisen: I hope to learn how to truly utilize the GPU - Jørgen: I want to understand the basics of GPU programming and whether this can be useful for infectious disease modelling. - Zhihong: How GPU can be used in complex Earth system models to improve efficiency. - Nasibullah: I am most interested to get some ideas about GPU computing. - Rasmus: An idea of what kind of algorithms/scientific problems can be/make sense to be offloaded to GPUs - Achim: Just looking to see which technology it makes sense for me to learn, and what kind of problems may be useful to port in various ocean modelling and/or analysis tasks - Tore: System admin for eX3 at Simula (https://www.ex3.simula.no). Participate to get new ideas and inspiration to help onboard students doing their MSc and Ph.D. at Simula. We have a mix of AMD GPUs (Mi100, Mi210, Vega20) - Kristian: Basic understanding of how to use GPU's for computations - Nitik: Overview of GPU programming and its usage in ML - Jon: Why you have chosen to use AMD GPUs for LUMI rather than Nvidia - Diana: interested to learn more about best practices in hybrid usage, but especially, become a [bettter] GPU programmer - Alok Kumar Gupta- I am interested for about learning OpenMP directives for GPU programming and learn more about in GPUs general and planning to implement for our Global Ocean model BLOM - Augusto: I hope I can launch stochastic simulations applied to problems with large dimensions - Zhiqiang: Hope to learn GPU programming in optimization (qudratic programming) tasks with Python or Julia. ::: --- ## Schedule ### <font color=red>(Jun. 9) Day 1</font> :::warning **https://hackmd.io/@enccs/H14EFs7vh** ::: | Time | Content | | :---------: | :-----: | | 09:00-09:15 | Welcome | | 09:15-09:30 | Why GPUs? | | 09:30-09:50 | The GPU hardware and software ecosystem | | 09:50-10:10 | What problems fit to GPU? | | 10:10-10:25 | Break | | 10:25-10:50 | GPU programming concepts | | 10:50-11:10 | Introduction to GPU programming models | | 11:10-11:50 | High-level language support | | 11:50-12:50 | Lunch break | | 12:50-13:40 | Directive-based models | | 13:40-14:30 | Multi-GPU programming with MPI | | 14:30-14:45 | Break | | 14:45-16:00 | Non-portable kernel-based models | ### <font color=red>(Jun. 12) Day 2</font> :::warning **https://hackmd.io/@enccs/rkpwTiVu6** ::: | Time | Content | | :---------: | :-----: | | 09:00-10:00 | Non-portable kernel-based models | | 10:00-10:15 | Break | | 10:15-11:30 | Portable kernel-based models | | 11:30-12:00 | Preparing code for GPU porting I | | 12:00-13:00 | Lunch break | | 13:00-13:20 | Preparing code for GPU porting II | | 13:20-14:00 | Recommendations and discussions | | 14:00-14:15 | Break | | 14:15-15:45 | Problem example | | 15:45-16:00 | Wrap-up | ## Joining the mini-hackathon :::info Do you have a code that you want to port to GPUs and you need help? Join us for a mini-hackathon on Friday June 16! Register at https://events.prace-ri.eu/event/1502/registrations/1102/. ::: Please also visit this hackMD and describe your code, what you want to do, and how we can access your code: https://hackmd.io/@enccs/mini-hackathon-june2023 It's most convenient if your code is accessible publicly on GitHub, GitLab or similar and you write the URL in the hackMD, but you can also send an email to Thor Wikfeldt (thor.wikfeldt@enccs.se) with a file archive or instructions on how to access it. ### <font color=red>(Jun. 16) Day 3 --- Mini-Hackathon</font> :::warning https://hackmd.io/@enccs/mini-hackathon-june2023 ::: | Time | Content | | :---------: | :-----: | | 09:00-16:00 | Mini-hackathon / bring your code | --- ## 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/kjartan-thor-wikfeldt). ---