Translating OpenMP Device Constructs to OpenCL using Unnecessary Data Transfer Elimination
Center for Manycore Programming, Department of Computer Science and Engineering, Seoul National University, Seoul 08826, Korea
International Conference for High Performance Computing, Networking, Storage and Analysis (SC ’16), 2016
@inproceedings{Kim:2016:TOD:3014904.3014973,
author={Kim, Junghyun and Lee, Yong-Jun and Park, Jungho and Lee, Jaejin},
title={Translating OpenMP Device Constructs to OpenCL Using Unnecessary Data Transfer Elimination},
booktitle={Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
series={SC ’16},
year={2016},
isbn={978-1-4673-8815-3},
location={Salt Lake City, Utah},
pages={51:1–51:12},
articleno={51},
numpages={12},
url={http://dl.acm.org/citation.cfm?id=3014904.3014973},
acmid={3014973},
publisher={IEEE Press},
address={Piscataway, NJ, USA}
}
In this paper, we propose a framework that translates OpenMP 4.0 accelerator directives to OpenCL. By translating an OpenMP program to an OpenCL program, the program can be executed on any hardware platform that supports OpenCL. We also propose a run-time optimization technique that automatically eliminates unnecessary data transfers between the host and the target accelerator. It exploits the page-fault mechanism to detect if a copy of the memory object already resides in the accelerator and the copy has not been modified by the host. To evaluate the framework, we develop 17 OpenMP 4.0 benchmark applications in two versions: basic and hand-tuned. By evaluating them on three different GPUs with the original OpenCL and OpenMP programs, we show the effectiveness of the framework. To show the practicality of the framework, we compare the performance of generated OpenCL programs with that of equivalent OpenACC programs compiled by the commercial PGI compiler.
December 14, 2016 by hgpu