Fundamentals of Accelerated Computing with OpenACC

Europe/Berlin
Description

Together with Nvidia, we are offering a workshop on accelerated computing with OpenACC.

The Workshop will take place virtually. Participants will be provided with access to a suitable GPU setup.

Connection details for the workshop as well as required steps for access to the setup will be sent to the participants prior to the event.

Learning Objectives

By participating in this workshop, you’ll have an understanding of the fundamental tools and techniques for GPU-accelerating C/C++ or Fortran applications with OpenACC and be able to:

  • Profile and optimize your CPU-only applications to identify hot spots for acceleration.
  • Use OpenACC directives to GPU-accelerate your codebase.
  • Optimize data movement between the CPU and GPU accelerator.

Upon completion, you'll be ready to use OpenACC to GPU accelerate CPU-only applications.

Prerequisites

  • Basic C/C++ or Fortran competency, including familiarity with variable types, loops, conditional statements, functions, and array manipulations.
  • No previous knowledge of GPU programming is assumed.

 

This workshop is part of the Nvidia Deep Learning Institute.

 

Registration
Registration
45 / 45
Surveys
Participants Feedback
    • 9:00 AM 9:15 AM
      Introduction 15m
    • 9:15 AM 10:05 AM
      Introduction to Parallel Programming 50m
    • 10:05 AM 10:25 AM
      Break 20m
    • 10:25 AM 11:15 AM
      Profiling with OpenACC 50m

      Learn how to build and compile an OpenACC code, the importance of
      profiling, and how to use the NVIDIA Nsight Systems profiler. Topics that will
      be covered are as follows:

      Compiling sequential and OpenACC code
      The importance of code profiling
      Profiling sequential and OpenACC multicore code
      Technical introduction to the code used in introductory modules

    • 11:15 AM 12:00 PM
      Break 45m
    • 12:00 PM 12:50 PM
      Introduction to OpenACC Directives 50m

      Learn how to parallelize your code with OpenACC directives and understand
      the differences between parallel, kernel, and loop directives. Topics that will
      be covered are as follows:

      The Parallel directive
      The Kernels directive
      The Loop directive

    • 12:50 PM 1:00 PM
      Break 10m
    • 1:00 PM 1:50 PM
      GPU Programming with OpenACC 50m

      Learn about the differences between GPUs and multicore CPUs, and manage
      memory with CUDA Unified Memory. Topics that will be covered are as
      follows:

      Definition of a GPU
      Basic OpenACC data management
      CUDA Unified Memory
      Profiling GPU applications

    • 1:50 PM 2:05 PM
      Break 15m
    • 2:05 PM 2:55 PM
      Data Management with OpenACC 50m

      Learn how to explicitly manage data movement with OpenACC data directives
      to reduce data transfers. Topics that will be covered are as follows:

      OpenACC data directive/clauses
      OpenACC structured data region
      OpenACC unstructured data region
      OpenACC update directive
      Data management with C/C++ Structs/Classes

    • 2:55 PM 3:05 PM
      Break 10m
    • 3:05 PM 3:55 PM
      Loop Optimizations with OpenACC 50m

      Understand the various levels of parallelism on a GPU and learn about ways
      to extract more parallelism with OpenACC by optimizing loops in your code.
      (50 mins) Topics that will be covered are as follows:

      Seq/Auto clause
      Independent clause
      Reduction clause
      Collapse clause
      Tile clause
      Gang, Worker, Vector

    • 3:55 PM 4:05 PM
      Break 10m
    • 4:05 PM 5:05 PM
      Final Review 1h

      Review key learnings and answer questions.
      Complete the assessment and earn a certificate.
      Complete the workshop survey.