An Introduction to OpenCL Programming Training Course

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.

Duration:

2 days.

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.

Please email us if you would like to attend this course.

Website Feedback

If you would like a response from NAG please provide your e-mail address below.

(If you're a human, don't change the following field)
Your first name.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.