GPU Programming with CUDA @ JSC

CET
Computer Lab no. 213a (Jülich Supercomputing Centre)

Computer Lab no. 213a

Jülich Supercomputing Centre

Forschungszentrum Jülich, Germany
Description

GPU-accelerated computing drives current scientific research. Writing fast numeric algorithms for GPUs offers high application performance by offloading compute-intensive portions of the code to an NVIDIA GPU. The course will cover basic aspects of GPU architectures and programming. Focus is on the usage of the parallel programming language CUDA C/C++, which allows maximum control of NVIDIA GPU hardware. Examples of increasing complexity will be used to demonstrate optimization and tuning of scientific applications.

Topics covered will include:

  • Introduction to GPU/Parallel computing
  • Programming model CUDA
  • GPU libraries like CuBLAS and CuFFT
  • Tools for debugging and profiling
  • Performance optimizations

Prerequisites: Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C/C++

Application
Registrations are only considered until 31 March 2017 due to available space, the maximal number of participants is limited. Applicants will be notified, whether they are accepted for participitation.

Instructors: Dr. Jan Meinke, Jochen Kreutz, JSC; Jiri Kraus, NVIDIA

Contact
For any questions concerning the course please send an e-mail to j.meinke@fz-juelich.de

    • 09:00 10:30
      Introduction to GPU computing
    • 10:30 10:45
      Coffee break 15m
    • 10:45 12:15
      CUDA introduction
    • 12:15 13:15
      Lunch break 1h
    • 13:15 14:45
      CUDA Debugging and Performance Measurement Tools
    • 14:45 15:00
      Coffee break 15m
    • 15:00 16:30
      Unified Memory
    • 09:00 10:30
      Matrix-Multiply using CUDA
    • 10:30 10:45
      Coffee break 15m
    • 10:45 12:15
      Matrix Multiply using CUDA (con't)
    • 12:15 13:15
      Lunch break 1h
    • 13:15 14:45
      Performance Tuning
    • 14:45 15:00
      Coffee break 15m
    • 15:00 16:15
      Intra-node Multi GPU Programming
    • 09:00 10:30
      CUDA-aware MPI
    • 10:30 10:45
      Coffee break 15m
    • 10:45 12:15
      Out-of-core Matrix Multiplication
    • 12:15 13:15
      Lunch break 1h
    • 13:15 14:45
      Out-of-core Matrix Multiplication (cont'd)
    • 14:45 15:00
      Coffee break 15m
    • 15:00 16:15
      Introduction to CUB
    • 16:15 16:30
      Outlook and Wrap-Up