GPU Programming @ JSC

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

Computer Lab no. 021

Jülich Supercomputing Centre

Forschungszentrum Jülich, Germany
Description

Many-core programming is a very dynamic research area. Many scientific applications have been ported to GPU architectures in recent years. We will give an introduction to CUDA, OpenACC, OpenCL, and multi-GPU programming using examples of increasing complexity. After introducing the basics the focus will be on optimization and tuning of scientific applications. Topics covered will include:

  • Programming models: CUDA, OpenACC, OpenCL
  • Using libraries as interface for GPU programming (e.g. Thrust)
  • Partitioning and granularity of parallel applications
  • Debugging and profiling of kernels
  • Performance optimizations
  • Multi-GPU programming

Prerequisites: Knowledge in C

This course is a Prace Advanced Training Centres (PATC) course.

Application
Registrations are only considered until 7 March 2014;
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, Peter Philippen, Andrew Adinetz, Anke Zitz, JSC;
Jiri Kraus, NVIDIA

Contact
For any questions concerning the course please send an e-mail to w.homberg@fz-juelich.de
    • 9:00 AM 9:45 AM
      Introduction to GPU computing
    • 9:45 AM 10:30 AM
      Hands-on session
    • 10:30 AM 10:45 AM
      Coffee break 15m
    • 10:45 AM 11:30 AM
      OpenACC intro
    • 11:30 AM 12:00 PM
      Hands-on session
    • 12:00 PM 1:00 PM
      Lunch Break 1h
    • 1:00 PM 1:45 PM
      Advanced Features in OpenACC
    • 1:45 PM 2:30 PM
      Hands-on session
    • 2:30 PM 2:45 PM
      Coffe break 15m
    • 2:45 PM 3:30 PM
      Cuda introduction
    • 3:30 PM 4:30 PM
      Hands-on session
    • 7:00 PM 10:00 PM
      Social event (Dinner at the Restaurant "Am Hexenturm" in Jülich) 3h

      Dinner at the Restaurant "Am Hexenturm" in Jülich

    • 9:00 AM 9:45 AM
      Matrix multiply using Cuda
    • 9:45 AM 10:30 AM
      Hands-on session
    • 10:30 AM 10:45 AM
      Coffee break 15m
    • 10:45 AM 11:30 AM
      Cuda performance measurement
    • 11:30 AM 12:00 PM
      Hands-on session
    • 12:00 PM 1:00 PM
      Lunch Break 1h
    • 1:00 PM 1:45 PM
      Performance tuning I
    • 1:45 PM 2:30 PM
      Hands-on session
    • 2:30 PM 2:45 PM
      Coffee break 15m
    • 2:45 PM 3:30 PM
      Performance tuning II
    • 3:30 PM 4:30 PM
      Hands-on session
    • 9:00 AM 9:45 AM
      Intra-node multi GPU programming
    • 9:45 AM 10:30 AM
      Hands-on session
    • 10:30 AM 10:45 AM
      Coffee break 15m
    • 10:45 AM 11:30 AM
      Multi GPU programming using Cuda/MPI
    • 11:30 AM 12:00 PM
      Hands-on session
    • 12:00 PM 1:00 PM
      Lunch break 1h
    • 1:00 PM 1:45 PM
      OpenCL Overview
    • 1:45 PM 2:30 PM
      Hands-on session
    • 2:30 PM 2:45 PM
      Coffee break 15m
    • 2:45 PM 3:30 PM
      Tuning OpenCL programs
    • 3:30 PM 4:15 PM
      Hands-on session
    • 4:15 PM 4:30 PM
      Wrap-up