Computational Modelling Group

Workshop  28th August 2012 9 a.m.  University of Edinburgh

GPU Programming Workshop

Web page
http://www.epcc.ed.ac.uk/training-education/course-programme
Categories
GPU-libs, HPC
Submitter
Luke Goater

EPCC and Cray are running a 3-day GPU Programming Workshop on CUDA and OpenACC, in Edinburgh, on 28-30 August, as part of the PRACE Advanced Training Centre. There is no charge, but of course spaces are limited.

Full info and registration is here:

http://www.epcc.ed.ac.uk/training-education/course-programme

Please feel free to forward this to anyone who may be interested.

GPU Programming Workshop

Graphics Processing Units (GPUs) were originally designed to display computer graphics, but they have developed into extremely powerful chips capable of handling demanding, general-purpose calculations. The GPU architecture is inherently is more suited to many types of intensive parallel computations than the traditional CPU, and hence computationally demanding sections of code can be accelerated to significantly increase overall performance. This is true not just for small-scale applications run on desktop size machines, but also for the largest-scale applications on massively parallel architectures. For example, the newly announced Cray XK6 supercomputer allows thousands of NVIDIA GPUs to be exploited in parallel to tackle grand challenge problems. Applications must be adapted to utilise GPUs: most lines of application source code are executed on the CPU and key computational kernels are distributed to the GPU cores. Currently, for NVIDIA GPUs, the most popular programming method is the CUDA API, which is extremely powerful but requires significant development effort. OpenCL is an alternative API, which is less mature than CUDA but has portability advantages. Recently, a new higher-level standard has emerged, OpenACC, which promises to offer higher productivity. The programmer uses “directives” in the code to provide the compiler with the information required to automatically offload code to the GPU.

In this 3-day course we will introduce and provide hands-on experience of CUDA, OpenCL (with more emphasis on the former) and OpenACC. In many cases it is relatively straightforward to port a code to the GPU, but much harder to obtain good performance: we will cover a range of common GPU optimisation techniques. No prior HPC or parallel programming knowledge is assumed, but attendees must already be able to program in C, C++ or Fortran. Access will be given to appropriate hardware for all the exercises.

This course is free to all academics.

Pre-requisite Programming Languages Fortran, C or C++. It is not possible to complete the exercises in Java.

Registering

To register for EPCC courses please go to http://www.epcc.ed.ac.uk/training-education/course-programme/.

Example Timetable

Day 1: • Introduction to GPUs • Programming and optimisation with CUDA

Day 2: • Programming with OpenCL • Programming with OpenACC

Day 3: • Advanced OpenACC porting techniques and optimisation • Case studies