Developing an OpenMP Runtime for UVM-Capable GPUs
Author/Presenters
Event Type
Workshop
Compiler Analysis and Optimization
Compilers
Debugging
Parallel Programming Languages, Libraries, Models
and Notations
Program Transformation
SIGHPC Workshop
TimeMonday, November 13th5:07pm -
5:14pm
Location710
DescriptionWith the emergence of new hardware architectures,
programming models such as OpenMP must consider new
design choices. In the GPU programming space, Unified
Virtual Memory (UVM) is one of the new technologies that
warrant such considerations. In particular, the new UVM
capabilities supported by the Nvidia Pascal architecture
introduce new optimization opportunities. While
on-demand paging offered by a UVM-based system
simplifies kernel programming, it can hamper performance
due to excessive page faults at runtime. Accordingly, we
have developed an OpenMP runtime that optimizes the data
communication and kernel execution for UVM-capable
systems. The runtime evaluates the different design
choices by leveraging cost models that determine the
communication and computation cost, given the
application and hardware characteristics. Specifically,
we employ static and dynamic analysis to identify
application data access patterns that feed into the
performance cost models. Our preliminary results
demonstrate that the developed optimizations can provide
significantly improved performance for OpenMP
applications.




