The programming language Julia is being more and more adopted in High Performance Computing (HPC) due to its unique way to combine performance with simplicity and interactivity, enabling unprecedented productivity in HPC development. This course will discuss both basic and advanced topics relevant for single and Multi-GPU computing with Julia. It will focus on the CUDA.jl package, which enables writing native Julia code for GPUs. Topics covered include the following:
- GPU array programming;
- GPU kernel programming;
- kernel launch parameters;
- usage of on-chip memory;
- Multi-GPU computing;
- code reflection and introspection; and
- diverse advanced optimization techniques.
This course combines lectures and hands-on sessions.
This course addresses scientists interested in developing HPC applications using Julia. Previous Julia or GPU computing knowledge is not mandatory, but advantageous, and a good general understanding of programming is expected.
- Dr. Tim Besard (Creator and Lead developer of CUDA.jl, JuliaHub Inc.)
- Dr. Samuel Omlin (Computational Scientist | Responsible for Julia computing, CSCS)
This git repository contains the material for the second half of the course (speaker: Dr. Samuel Omlin, CSCS). The material for the first half is found in this git repository (speaker: Dr. Tim Besard, JuliaHub Inc.).
The edited course recording will be shared here once available.