Fundamentals of Accelerated Computing with OpenACC
(Open ACC를 활용한 가속 컴퓨팅의 기초)
-
Duration
1day 8hous
-
Language
English
-
Tools, libraries, and frameworks
NVIDIA® Nsight™, OpenACC
Learning Objectives
This workshop covers the fundamental tools and techniques needed for accelerating C/C++ or Fortran applications to run on massively parallel GPUs with OpenACC. You will learn how to write code, configure code parallelization with OpenACC, optimize memory movements between the CPU and GPU accelerator, and implement the workflow that you have learned on a new task—accelerating a fully functional, but CPU-only, Laplace Heat Equation code for massive performance gains. At the end of the workshop, you will have access to additional resources for creating new GPU-accelerated applications on your own.
-
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.
-
Certificate
Upon successful completion of the assessment, participants will receive an NVIDIA DLI certificate to recognize their subject matter competency and support professional career growth.
-
Hardware Requirements
You’ll need a desktop or laptop computer capable of running the latest version of Chrome or Firefox. You’ll be provided with dedicated access to a fully configured, GPU-accelerated workstation in the cloud.
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:
-
01
Profile and optimize your CPU-only applications to identify hot spots for acceleration.
-
02
Use OpenACC directives to GPU-accelerate your codebase.
-
03
Optimize data movement between the CPU and GPU accelerator.
Introduction (15 mins) |
|
Introduction to Parallel Programming (50 mins) |
Learn about parallelism in a conceptual way, as well as how to express it with OpenACC.
Topics that will be covered are as follows:
|
Break (10 mins) | |
Profiling with OpenACC (50 mins) |
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:
|
Break (45 mins) | |
Introduction to OpenACC Directives (50 mins) |
Learn about the differences between GPUs and multicore CPUs, and manage memory
with CUDA Unified Memory. Topics that will be covered are as follows:
|
Break (10 mins) | |
Loop Optimizations with OpenACC (50 mins) |
Understand the various levels of parallelism on a GPU and learn ways to extract more
parallelism with OpenACC by optimizing loops in your code.
Topics that will be covered are as follows:
|
Break (10 mins) | |
Final Review (60 mins) |
|