CUDA Course Jan. 21, 2019

Programming on the GPU with CUDA

What is a GPU? General-purpose graphics processing units (GPUs) have grown from mere video cards to processing units carrying out double-precision arithmetic. Nowadays, a single GPU device can contain upwards of thousands number-crunching processors which provide supercomputer-like speed-ups at affordable costs.

What is CUDA? CUDA (Compute Unified Device Architecture) is a software development tool kit for programming on the GPUs produced by the mainstream manufacturer Nvidia. CUDA provides language extensions for C, C++, FORTRAN, and Python as well as knowledge-specific libraries. This tool kit enables working with a single source code that instructs the CPU and GPU alike. CUDA-extended codes also keep pace with the rapid development of the underlying technology.

What are the challenges? Implementing efficient parallelism with GPUs, however, requires the understanding of promises and constraints from three knowledge areas. Firstly, the architecture and compute capabilities of the hardware. Secondly, a special programming syntax for instructing a GPU-equipped computer. Thirdly, algorithms especially devised for performing logical and mathematical operations in parallel.

What are the goals? With these challenges in mind, the Delft Institute for Computer Science and Engineering (DCSE) offers a 2-day course on scientific programming on GPUs with CUDA. The instructors are Prof Kees Vuik, Mr Kees Lemmens and Dr Matthias Möller of the Faculty of Electrical Engineering, Mathematics and Computer Science. We introduce you to basic principles and advanced topics in GPU programming and let you explore this knowledge in our computer laboratory with hands-on exercises. After the course, you will be able to have simple CUDA programs running on a GPU-equipped computer.

For whom? This course is aimed to researchers and students (postgraduates and PhD’s). The maximum number of participants is twenty. We recommend having some familiarity with programming languages such as C, C++, Java, Fortran, Python. Basic understanding of linear algebra can be useful.

Where and when? The course is held on a quarterly basis as a target. The next offering is scheduled for January 21, 2019. You can attend either day or both days. Please click on the button ‘Next course’ on the right-hand side for the information on timing, logistics, registration, and for questions.