The OpenACC data model: Preliminary study on its major challenges and implementations
- NVIDIA, Santa Clara, CA (United States)
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
- Dell, Round Rock, TX (United States)
- Stony Brook Univ., NY (United States). Dept. of Chemistry
- Univ. of Delaware, Newark, DE (United States)
This paper describes how the OpenACC data model is implemented in current OpenACC compilers, ranging from research compilers (OpenUH and OpenARC) to a commercial compiler (the PGI OpenACC compiler). First, we summarize various memory architectures in today’s accelerator systems. We then describe details and issues in implementing the OpenACC data model in three different OpenACC compilers. This includes managing page tables, asynchronous data transfers, asynchronous memory allocate and free, host data construct, aliasing on a data directive, reusing device memory, partially present data, and adjacent data. We also discusses ongoing work to manage large, complex dynamic data structures. We measured the present table lookups, device memory allocation, pinned memory allocation, and managed memory in the three OpenACC compilers using eight OpenACC applications (seven from the SPEC ACCEL benchmark suite and a shock-hydrodynamics mini-application called LULESH).
- Research Organization:
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
- Sponsoring Organization:
- USDOE Office of Science (SC)
- Grant/Contract Number:
- AC05-00OR22725
- OSTI ID:
- 1474544
- Alternate ID(s):
- OSTI ID: 1703445
- Journal Information:
- Parallel Computing, Journal Name: Parallel Computing Journal Issue: C Vol. 78; ISSN 0167-8191
- Publisher:
- ElsevierCopyright Statement
- Country of Publication:
- United States
- Language:
- English
Cetus: A Source-to-Source Compiler Infrastructure for Multicores
|
journal | December 2009 |
Could supercomputing turn to signal processors (again)?
|
journal | October 2012 |
hiCUDA: High-Level GPGPU Programming
|
journal | January 2011 |
Similar Records
OpenARC: Extensible OpenACC Compiler Framework for Directive-Based Accelerator Programming Study
KokkACC: Enhancing Kokkos with OpenACC