Offloading Computation to a GPU with OpenMP
Konu özeti
-
Skill Level: Intermediate
Language: English
Workload: 45 minutes total
Topic: Offloading Computations to GPU via OpenMP
Overview: This course provides an in-depth understanding of offloading computations to GPUs using OpenMP, focusing on key constructs and techniques for efficient parallel programming.
Course Description: The course covers the execution model of OpenMP, emphasizing hierarchical parallelism, thread teams, and the distinction between team and parallel constructs. Students learn how to distribute workloads using worksharing directives, manage data mapping between host and device, and minimize unnecessary data transfers through effective use of map, target data, and target enter/exit data constructs. Hands-on examples, such as vector and matrix addition, demonstrate how to leverage these constructs for real-world applications. By the end, participants will be proficient in offloading computational tasks on GPUs using OpenMP.
Course Contents:
Part 1: CPUs, GPUs and computing Pi with CUDA
Part 2: OpenMP reminder: Computing Pi
Part 3: Computing Pi on the GPU via OpenMP
Part 4: More details on Offloading
Who Should Enroll: Anyone who wishes to use their GPU through OpenMP
Prerequisite: Familiarity with C++ and OpenMP
Tools, libraries, frameworks used: OpenMP, g++
Learning Objectives: By participating in this course, you will learn:
how to use your GPU with OpenMP,
how to optimize the offloading process.
About the instructor(s): Kamer Kaya is an Associate Professor at the Faculty of Engineering and Natural Sciences at Sabancı University. His research areas include high-performance computing, machine learning on sparse data, and graph algorithms.