A Source-to-Source OpenACC Compiler for CUDA
A Source-to-Source OpenACC Compiler for CUDA
复制标题
用于 CUDA 的源到源 OpenACC 编译器
DOI:
--
复制
发表时间:
2013
期刊:
影响因子:
--
通讯作者:
M. Sato
中科院分区:
文献类型:
--
作者:
Akihiro Tabuchi;M. Nakao;M. Sato
OpenACC is a new directive-based programming interface for accelerators such as GPGPU. OpenACC allows the programmer to express the offloading of data and computations to accelerators to simplify the porting process for legacy CPU-based applications. In this paper, we present the design and implementation of an open-source OpenACC compiler that translates C code with OpenACC directives to C code with the CUDA API, which is the most widely used GPU programming environment provided for NVIDIA GPU. We adopt a source-to-source approach using the Omni compiler infrastructure for source code analysis and translations. Our approach leaves detailed machine-specific code optimization to the mature NVIDIA CUDA compiler. An experimental evaluation of the implementation shows that some parallel benchmark codes compiled by our compiler achieve speeds up to 31 times greater than those of CPUs, and that it is competitive with commercial implementations. However, the results also indicate the optimization of OpenACC programs has several problems, such as assigning iterations to GPU threads.