PHAST Library — Enabling Single-Source and High Performance Code for GPUs and Multi-cores

PHAST Library — Enabling Single-Source and High Performance Code for GPUs and Multi-cores
复制标题

PHAST 库 — 为 GPU 和多核启用单源高性能代码

DOI:
10.1109/hpcs.2017.109
复制
发表时间:
2017
期刊:
2017 International Conference on High Performance Computing & Simulation (HPCS)
影响因子:
--
通讯作者:
S. Bartolini
S. Bartolini
中科院分区:
--
文献类型:
--
作者:
Biagio Peccerillo;S. Bartolini

文献摘要

被引文献

相似文献

并行异构体系结构(如多核和GPU)的模拟在编程语言/框架领域提出了新的挑战。模拟器的应用程序需要以一种可以轻松适应特定架构的方式表达,有效地调整每个架构,同时防止由于不统一的手工优化而引入偏差。最常见的异构编程框架太低级,因此我们提出PHAST,一个面向多核和Nvidia GPU的高级异构C++库。它允许在高抽象级别上编写代码,以达到良好的性能,同时允许精细的参数调优,而不是屏蔽代码进行低级优化。我们在两种支持的架构上评估了DCT 8x8的PHAST。在多核上,我们发现PHAST实现比OpenCL(AMD供应商)实现快10倍左右,但比OpenCL(英特尔供应商)慢4倍左右,后者有效地利用了自动向量化。在Nvidia GPU上,PHAST代码的性能比CUDA SDK参考版本高出55.14%。
The simulation of parallel heterogeneous architectures such as multi-cores and GPUs sets new challenges in the programming language/framework domain. Applications for simulators need to be expressed in a way that can be easily adapted for the specific architectures, effectively tuned for on each of them while preventing from introducing biases due to non-uniform hand-made optimizations. The most common heterogeneous programming frameworks are too low-level, so we propose PHAST, a high-level heterogeneous C++ library targetable on multi-cores and Nvidia GPUs. It permits to write code at a high level of abstraction, to reach good performance while allowing for fine parameter tuning and not shielding code from low-level optimizations. We evaluate PHAST in the case of DCT8x8 on both supported architectures. On multi-cores, we found that PHAST implementation is around ten times faster than OpenCL (AMD vendor) implementation, but up to about 4x slower than OpenCL (Intel vendor) one, which effectively leverages auto-vectorization. On Nvidia GPUs, PHAST code performs up to 55.14% better than CUDA SDK reference version.