Learn how to write a portable parallel program that can run on multicore CPUs and accelerators like GPUs and how to apply incremental parallelization strategies using the OpenACC programming model to accelerate an example application that simulates heat distribution across a 2-dimensional metal plate and applying this knowledge to accelerate a mini-application.

2022-02-23T15:00:00-08:00 470 Bootcamps HPC

Event Format 

The GPU Bootcamp will be hosted online in the Central European Time (CET) zone. All communication will be done through Zoom, Slack and email. 

Prerequisites

Basic experience with C/C++ or Fortran. No GPU programming knowledge is required.

GPU Compute Resource

Attendees will be given access to "Berzelius" for the duration of the Bootcamp. Berzelius is the premier AI/ML cluster at NSC. To learn more about Berzelius, please visit the links below for more information. 

Berzelius Overview
Berzelius - Getting Started Guide

Agenda 

Day 1: Thursday, March 10, 2022 9:00am - 12:30pm (CET)

  • 09:00 AM- 09:15 AM: Welcome (Moderator)
  • 09:15 AM- 09:30 AM: Connecting to Hackathon cluster
  • 09:30 AM- 12:30 PM: Introduction to GPU Programming with OpenACC (Lecture + Lab)
    • Introduction to GPU programming (15 min)
      • What is a GPU and Why Should You care?
      • What is GPU Programming?
      • Available Libraries, Programming Models, Platforms
    • Introduction to OpenACC (45 min)
      • What is OpenACC and Why Should You Care?
      • Profile-driven Development
      • First Steps with OpenACC
      • Lab 1
    • OpenACC Data Management (45 min)
      • CPU and GPU Memories
      • CUDA Unified (Managed) Memory
      • OpenACC Data Management
      • Lab 2
    • OpenACC Loop Optimization (45 min)
      • Gangs, Workers, and Vectors Demystified 
      • Loop Optimizations
      • Lab 3

 

Day 2: Friday, March 11, 2022 9:00am - 12:45pm (CET)

  • 09:00 AM- 09:05 AM: Welcome (Moderator)
  • 09:05 AM- 09:45 AM: Introduction to Nsight Tools
  • 09:45 AM- 12:30 PM: Mini-application challenge (Lecture + Lab)
    • Overview of the mini-application
      • Review steps to acceleration
      • Application challenge 
  • 12:30 PM- 12:45 PM: Mini-application Solution Walk-through and next steps (Profiler Lab) 
    • Introduction to NVIDIA ® Nsight™ Tools
      • Overview of Nsight Tools
      • How to profile a serial application with NVIDIA Tools Extension (NVTX) 
      • Overview of optimization cycle with Nsight Systems
    • Profiling mini-application 
      • Profile a sequential weather modeling application (integrated with NVTX APIs) with NVIDIA Nsight Systems to capture and trace CPU events and time ranges
      • Understand how to use NVIDIA Nsight Systems profiler’s report to detect hotspots and apply OpenACC compute constructs to the serial application to parallelise it on the GPU
      • Learn how to use Nsight Systems to identify issues such as underutilized GPU device and unnecessary data movements in the application and to apply optimization strategies steps by steps to expose more parallelism and utilize computer’s CPU and GPU
Event Focus
HPC

Important Event Dates

  • ENCCS OpenACC Bootcamp Application Deadline
  • ENCCS OpenACC Bootcamp Day 1
  • ENCCS OpenACC Bootcamp Day 2