Implementing the OpenACC Data Model
- The Portland Group
- ORNL
- Dell
- University of Delaware
- University of Houston, Texas
Programming accelerators today usually requires managing separate virtual and physical memories, such as allocating space in and copying data between host and device memories. The OpenACC API provides data directives and clauses to control this behavior where it is required. This paper describes how the data model is supported in current OpenACC implementations, ranging from research compilers (OpenUH and OpenARC) to a commercial compiler (the PGI OpenACC compiler). This includes implementation of the data directives and clauses, testing whether the data is already present on the device, OpenCL support, managing asynchronous data transfers and memory allocations, handling aliased data, reusing device memory, managing partially present data, and support for shared memory between host and device. Lastly, it also discusses on-going work to manage large, complex dynamic data structures.
- Research Organization:
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- AC05-00OR22725
- OSTI ID:
- 1399548
- Resource Relation:
- Conference: The Seventh International Workshop on Accelerators and Hybrid Exascale Systems (AsHES) in conjunction with 31st IEEE International Parallel and Distributed Processing Symposium (IPDPS) - Orlando, Florida, United States of America - 5/29/2017 8:00:00 AM-5/29/2017 8:00:00 AM
- Country of Publication:
- United States
- Language:
- English
Similar Records
OpenARC: Extensible OpenACC Compiler Framework for Directive-Based Accelerator Programming Study
CCAMP: OpenMP and OpenACC Interoperable Framework