NVIDIA GPU Programming: Using CUDA language and OpenACC directives​
16 Sep 2019



16 Sept 2019 - 20 Sept 2019 | Discover the fundamental tools and techniques for GPU-accelerating C/C++ applications using CUDA and OpenACC




When:​ 16 Aug 2019 - 20 Aug 2019

Where: STFC Hartree Centre, Sci-Tech Daresbury, WA4 4AD

Price: Free

Best for: Researchers from academic and government institutions, academic staff, and students with interest in GPU programming.

The first part of this course will provide an introduction to NVIDIA GPU programming using CUDA language, the second part will introduce the OpenACC directives.
The NVIDIA Deep Learning Institute (DLI) offers hands-on training in AI and accelerated computing to solve real-world problems. Developers, data scientists, researchers, and students can get practical experience powered by GPUs in the cloud and earn a certificate of competency to support professional growth. We offer self-paced, online training for individuals, instructor-led workshops for teams, and downloadable course materials for university educators. One of the main applications developed at the Hartree Centre, DL_MESO on multi-GPUs, will be presented.

Learning Objectives:
At the conclusion of the course, you will have an understanding of the fundamental tools and techniques for GPU-accelerating C/C++ applications using CUDA and OpenACC and be able to:
  • Write code to be executed by a GPU accelerator
  • Expose and express data and instruction-level parallelism in C/C++ applications using CUDA
  • Utilize CUDA-managed memory and optimize memory migration using asynchronous prefetching
  • Leverage command line and visual profilers to guide your work
  • Utilize concurrent streams for instruction-level parallelism
  • Write GPU-accelerated CUDA C/C++ applications, or refactor existing CPU-only applications, using a profile-driven approach

  • ​Basic C/C++ competency, including familiarity with variable types, loops, conditional statements, functions, array manipulations
  • No previous knowledge of CUDA programming is assumed