Fundamentals of Accelerated Computing with OpenACC
Thursday, September 16, 2021 -
9:00 AM
Monday, September 13, 2021
Tuesday, September 14, 2021
Wednesday, September 15, 2021
Thursday, September 16, 2021
9:00 AM
Introduction
Introduction
9:00 AM - 9:15 AM
9:15 AM
Introduction to Parallel Programming
Introduction to Parallel Programming
9:15 AM - 10:05 AM
10:05 AM
Break
Break
10:05 AM - 10:25 AM
10:25 AM
Profiling with OpenACC
Profiling with OpenACC
10:25 AM - 11:15 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:15 AM
Break
Break
11:15 AM - 12:00 PM
12:00 PM
Introduction to OpenACC Directives
Introduction to OpenACC Directives
12:00 PM - 12:50 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:50 PM
Break
Break
12:50 PM - 1:00 PM
1:00 PM
GPU Programming with OpenACC
GPU Programming with OpenACC
1:00 PM - 1:50 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:50 PM
Break
Break
1:50 PM - 2:05 PM
2:05 PM
Data Management with OpenACC
Data Management with OpenACC
2:05 PM - 2:55 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:55 PM
Break
Break
2:55 PM - 3:05 PM
3:05 PM
Loop Optimizations with OpenACC
Loop Optimizations with OpenACC
3:05 PM - 3:55 PM
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
Break
Break
3:55 PM - 4:05 PM
4:05 PM
Final Review
Final Review
4:05 PM - 5:05 PM
> Review key learnings and answer questions. > Complete the assessment and earn a certificate. > Complete the workshop survey.