在GPU上对非结构网格算法的并行化方法、语言和编译器的比较
摘要:高效地利用GPU在科学计算中变得越来越重要,因为许多当前和即将到来的超级计算机都是使用它们构建的。为了促进这一点,有许多编程方法可供选择,如CUDA、OpenACC和OpenMP 4,支持不同的编程语言(主要是C/C++和Fortran)。还有几个编译器套件(clang、nvcc、PGI、XL),每个套件支持不同的语言组合。在这项研究中,我们详细研究了一些当前可用的选项,并使用来自非结构化网格计算领域的计算循环和应用程序进行了全面的分析和比较。除了运行时和性能指标(GB/s)之外,我们还探讨了影响性能的因素,如寄存器计数、占用率、不同内存类型的使用、指令计数和算法差异。这项工作的结果显示,clang的CUDA编译器经常优于NVIDIA的nvcc,在复杂内核上的基于指令的方法存在性能问题,并且在clang和XL中支持OpenMP 4的成熟度正在提高;目前比CUDA慢约10%。
作者:G. D. Balogh, I. Z. Reguly, G. R. Mudalige
论文ID:1711.01845
分类:Performance
分类简称:cs.PF
提交时间:2017-11-07