GPU Programming in Julia: What, Why and How?
12-01, 14:20–14:50 (Europe/Amsterdam), Auditorium

This talk will introduce the audience to GPU programming in Julia. It will explain why GPUs can be useful for scientific computing, and how Julia makes it really easy to use GPUs. The talk is aimed at people who are familiar with Julia and want to learn how to use GPUs in their Julia code.

It is often said that Julia is a good language for GPU programming, but what does that really mean? For starters, why should you even care about GPU programming? In this talk, I will explain the basics of GPU programming, and how it can be used to speed up scientific computing.

Julia supports several GPU back-ends, including CUDA, AMDGPU, and OpenCL. I will explain what the relation is between these back-ends, and how to choose which one to use.
The talk will also cover the basics of GPU programming in Julia. I will explain how to use GPU arrays, and what the different ways are to write GPU kernels. This will include a series of tips and tricks, e.g., how to debug and work around some of the limitations of GPU programming in Julia.

Finally, I will briefly cover some more advanced topics, such as how to profile GPU code, and how to optimize kernels. This part of the talk will focus on the CUDA.jl, which is the most mature GPU back-end for Julia.

Software engineer at JuliaHub, working on the Julia language and its GPU support.