MACC: An OpenACC Transpiler for Automatic Multi-GPU Use

MACC: An OpenACC Transpiler for Automatic Multi-GPU Use
复制标题

DOI:
10.1007/978-3-319-69953-0_7
复制
发表时间:
2018-03
期刊:
--
影响因子:
--
通讯作者:
Kazuaki Matsumura;M. Sato;T. Boku;Artur Podobas;S. Matsuoka
Kazuaki Matsumura;M. Sato;T. Boku;Artur Podobas;S. Matsuoka
中科院分区:
其他
文献类型:
--
作者:
Kazuaki Matsumura;M. Sato;T. Boku;Artur Podobas;S. Matsuoka

文献摘要

相似文献

图形处理单元(GPU)在最先进的超级计算机中执行大部分计算。对这些GPU进行编程通常使用编程模型来辅助,例如(除其他外)直接驱动的OpenACC。不幸的是,OpenACC(和其他类似的模型)无法自动定位和分配多个GPU上的工作,这降低了生产力,并迫使程序员进行不必要的手工劳动。我们提出了一种方法,使OpenACC应用程序的目标多GPU。GPU分发、数据传输和GPU间通信(包括现代GPU到GPU的链接)由我们的编译器自动透明地处理,无需用户干预,也无需更改程序代码。我们的方法利用现有的OpenMP和OpenACC后端,确保轻松集成到现有的HPC基础设施。从经验上讲,我们量化的性能增益和损失,在我们的数据一致性方法相比,类似的方法,也表明,我们的方法可以与手写的MPI代码的性能竞争。
Graphics Processing Units (GPUs) perform the majority of computations in state-of-the-art supercomputers. Programming these GPUs is often assisted using a programming model such as (amongst others) the directive-driven OpenACC. Unfortunately, OpenACC (and other similar models) are incapable of automatically targeting and distributing work across several GPUs, which decreases productivity and forces needless manual labor upon programmers. We propose a method that enables OpenACC applications to target multi-GPU. Workload distribution, data transfer and inter-GPU communication (including modern GPU-to-GPU links) are automatically and transparently handled by our compiler with no user intervention and no changes to the program code. Our method leverages existing OpenMP and OpenACC backends, ensuring easy integration into existing HPC infrastructure. Empirically we quantify performance gains and losses in our data coherence method compared to similar approaches, and also show that our approach can compete with the performance of hand-written MPI code.