OpenARC: Extensible OpenACC Compiler Framework for Directive-Based Accelerator Programming Study
|Title||OpenARC: Extensible OpenACC Compiler Framework for Directive-Based Accelerator Programming Study|
|Publication Type||Conference Paper|
|Year of Publication||2014|
|Authors||Lee, Seyong, and Vetter Jeffrey|
|Conference Name||WACCPD: Workshop on Accelerator Programming Using Directives in Conjunction with SC'14|
Directive-based, accelerator programming models such as OpenACC have arisen as an alternative solution to program emerging Scalable Heterogeneous Computing (SHC) platforms. However, the increased complexity in the SHC systems incurs several challenges in terms of portability and productivity. This paper presents an open-sourced OpenACC compiler, called OpenARC, which serves as an extensible research framework to address those issues in the directive-based accelerator programming. This paper explains important design strategies and key compiler transformation techniques needed to implement the reference OpenACC compiler. Moreover, this paper demonstrates the efficacy of OpenARC as a research framework for directive-based programming study, by proposing and implementing OpenACC extensions in the OpenARC framework to 1) support hybrid programming of the unified memory and separate memory and 2) exploit architecture-specific features in an abstract manner. Porting thirteen standard OpenACC programs and three extended OpenACC programs to CUDA GPUs shows that OpenARC performs similarly to a commercial OpenACC compiler, while it serves as a high-level research framework.