Fundamentals of Accelerated Computing with OpenACC
Tuesday, November 21, 2023 -
9:00 AM
Monday, November 20, 2023
Tuesday, November 21, 2023
9:00 AM
Welcome and Introduction
Welcome and Introduction
9:00 AM - 9:15 AM
- Meet the instructor. - Create an account at courses.nvidia.com/join
9:15 AM
Introduction to Parallel Programming
Introduction to Parallel Programming
9:15 AM - 10:05 AM
Learn about parallelism in a conceptual way, as well as how to express it with OpenACC. Topics that will be covered are as follows: - Introduction to parallelism - The goals of OpenACC - Basic parallelization of code using OpenACC
10:05 AM
Break
Break
10:05 AM - 10:15 AM
10:15 AM
Profiling with OpenACC
Profiling with OpenACC
10:15 AM - 11:05 AM
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:05 AM
Break
Break
11:05 AM - 11:50 AM
11:50 AM
Introduction to OpenACC Directives
Introduction to OpenACC Directives
11:50 AM - 12:40 PM
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:40 PM
Break
Break
12:40 PM - 12:50 PM
12:50 PM
GPU Programming with OpenACC
GPU Programming with OpenACC
12:50 PM - 1:40 PM
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:40 PM
Break
Break
1:40 PM - 1:55 PM
1:55 PM
Data Management with OpenACC
Data Management with OpenACC
1:55 PM - 2:45 PM
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:45 PM
Break
Break
2:45 PM - 2:55 PM
2:55 PM
Loop Optimizations with OpenACC
Loop Optimizations with OpenACC
2:55 PM - 3:45 PM
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: - Seq/Auto clause - Independent clause - Reduction clause - Collapse clause - Tile clause - Gang, Worker, Vector
3:45 PM
Break
Break
3:45 PM - 3:55 PM
3:55 PM
Final Review
Final Review
3:55 PM - 4:55 PM
- Review key learnings and answer questions. - Complete the assessment and earn a certificate. - Complete the workshop survey.