<font size=5 color=blueyellow>**GPU Programming Workshop -- Event Page**</font> **Contents of this documents and quicklinks**: [TOC] ## Overview Graphical processing units (GPUs) are the workhorse of many high performance computing (HPC) systems around the world. Currently the majority of HPC computing power available to researchers and engineers is provided by GPUs or other types of accelerators. Programming GPUs and other accelerators is thus increasingly important to developers who write software which is executed on HPC systems. However, the landscape of GPU hardware, software and programming environments is complicated. Multiple vendors compete in the high-end GPU market, each vendor provides their own software stack and development toolkits, and even beyond that there is a proliferation of tools, languages and frameworks that can be used to write code for GPUs. It can thus be difficult for individual developers and project owners to know how to navigate this landscape and select the most appropriate GPU programming framework for their projects based on the requirements of a given project and technical specifics of existing code. This workshop is based on a multilateral collaboration between GPU programming specialists from nordic countries. It is meant to help both software developers and decision makers navigate the GPU programming landscape and make more informed decisions on which languages or frameworks to learn and use for their projects. This workshop will cover basic aspects of GPU programming concepts and models including - GPU hardware and software ecosystem - GPU programming concepts & models - Directive-based models (OpenACC, OpenMP) - Portable kernel-based models (Kokkos, OpenCL, SYCL, *etc.*) - Non-portable kernel-based models I (CUDA, HIP) - High-level language support (Python, Julia) - Multi-GPU programming with MPI - Preparing code for GPU porting - Hand-on examples ## What you will learn - Understand why and when to use GPUs. - Become comfortable with key concepts in GPU programming. - Acquire a comprehensive overview of different software frameworks, what levels they operate at, and which to use when. - Learn the fundamentals in at least one framework to a level which will enable you to quickly become a productive GPU programmer. ## Prerequisites This workshop is most relevant to researchers and engineers who already develop software which runs on CPUs in workstations or supercomputers, but also to decision makers or project managers who don’t write code but make strategic decisions in software projects, whether it’s in academia, industry or public sector. Familiarity with one or more programming languages like C/C++, Fortran, Python or Julia is recommended. ## Tentative Agenda ==**TBD**== ## Disclaimer Due to EuroCC2 regulations, we **CAN NOT ACCEPT** generic or private email addresses. Please use your official university or company email address for registration. This training is for users that live and work in the European Union or a country associated with Horizon 2020. You can read more about the countries associated with Horizon2020 here https://ec.europa.eu/info/research-and-innovation/statistics/framework-programme-facts-and-figures/horizon-2020-country-profiles_e :::danger :::