With great pleasure I would like to announce the following Meetup! Cedric Nugteren has kindly offered to do a presentation on GPU programming. This is a topic that I think a lot of people would be really interested in. So I hope everyone is back from Holiday and able to RSVP. Location is not known yet, but it will be in Amsterdam.
Topic: GPU programming 101
This talk will teach you all you need to know about the GPU architecture and its programming model to write your first OpenCL or CUDA program (for compute - not for graphics). We will also go in-depth with an example kernel to illustrate the most commonly used performance optimisations. The talk will conclude with a look into the future of C++11/14/17-based GPU programming using SyCL. Below is a brief summary:
• If you want to become a good GPU programmer, you'll need to understand the hardware first. In part 1 of this talk we'll cover the computer architecture basics, which will help you to understand the CPU vs GPU trade-off and the performance impacts of code changes.
• We will touch upon all aspects of the GPU programming model, including host versus device code, CPU-GPU data-transfers, warps - threads - threadblocks, CUDA vs OpenCL, and its C++ capabilities.
• To get a good feeling for GPU programming and the different kinds of optimisations we will discuss a 10-step tutorial with a simple CUDA-C matrix-multiplication as an example. This will cover aspects such as tiling, local memory, parallelism granularity, vectorisation, and assembly inspection. The tutorial is also available online: http://www.cedricnugteren.nl/tutorial.php
• SyCL is a new and open high-level single-source programming model for GPUs. It is not widely used yet, but because of its integration with modern C++ it might well be the future. We will discuss the basics of SyCL and will show an example of a simple C++11 parallel-for kernel lambda.
Cedric Nugteren lives and breathes GPU technology. He ported image processing apps to CUDA during his MSc studies as early as 2008 and received his PhD in 2014 after publishing 15 peer-reviewed GPU-related articles. He interned at ARM's Mali GPU compiler group in 2012 and NVIDIA's cuFFT team in 2014. After his PhD, he started working as a GPU-expert at the Dutch supercomputer center, where he developed an auto-tuner for GPU kernels. His free time is also well spent: he works on a tuned C++11 version of the OpenCL BLAS library. He currently works at TomTom on autonomous driving.
Schedule - Thursday the 25th of August
7 pm ** - Social: Food, snacks, drinks
7.50 pm - Intro
8.00 pm - Talk: GPU Programming 101 (part 1&2)
9.00 pm - 15 minute break
9.15 pm - Talk: GPU Programming 101 (part 3&4)
+/- 10.00 pm - Closing drinks
(** It's fine if you arrive later, but preferably before 8 pm.)
Very glad to announce the Meetup will be hosted by Copernica! This location has always been great in the past. It's only a few minutes walking from Amsterdam CS. The address is: De Ruijterkade 112, Amsterdam (click here to open in google maps) (https://goo.gl/maps/6HJnS).