Computational Modelling Group

Workshop  24th October 2012 9 a.m.  NAG (Numerical Algorithms Group) Manchester, UK

An Introduction to OpenCL Programming

Web page
http://www.hector.ac.uk/cse/training/opencl/
Categories
C, C++, Distributed computing, GPU, GPU-libs, HECToR, HPC, Iridis, Linux, Multi-scale, OpenCL, Optimisation, Scientific Computing
Submitter
Jess Jones

NAG HeCTOR Training

Description: This course provides an introduction to the development of OpenCL programs for execution on GPUs from NVIDIA and AMD, as well as on multi-core CPUs. Topics covered in the lectures will include: motivation for many-core and heterogeneous architectures; an overview of GPU architectures; an introduction to relevant parallel programming models including data parallelism and SIMT multithreading; OpenCL kernels, work items and workgroups; efficient use of the memory hierarchy including coalescence; conditional code and divergence; parallel reductions; profiling program execution and optimising performance; common pitfalls; availability of libraries; future roadmaps for OpenCL; and resources for further study. The course will consist of lectures and hands-on practical sessions. We will use the C++ OpenCL API for this course for which some familiarity with C++ will be beneficial.

Aimed at: Anyone interested in writing OpenCL programs for GPUs and multi-core CPUs.

Prerequisites: Attendees should be competent in programming in C/C++ and be familiar with working in a UNIX environment (i.e., you should be able to connect to a machine remotely, use basic UNIX commands, edit a source file and understand the elementary steps in compiling object files and creating executables). No prior experience of parallel computing is required.

After Course Attendees Will: Be able to develop simple OpenCL programs, and further develop their skills by studying the OpenCL example codes provided by vendors including AMD, NVIDIA, Intel and IBM.