Comparison of Parallelisation Approaches, Languages, and Compilers for Unstructured Mesh Algorithms on GPUs
G. D. Balogh, I. Z. Reguly, G. R. Mudalige

TL;DR
This paper compares various GPU programming approaches, languages, and compilers for unstructured mesh algorithms, analyzing performance factors and providing insights into their relative efficiencies and maturity.
Contribution
It offers a comprehensive analysis of current GPU programming options, highlighting performance differences and compiler support for unstructured mesh computations.
Findings
Clang's CUDA compiler often outperforms nvcc.
Directive-based approaches face performance issues on complex kernels.
OpenMP 4 support is maturing in clang and XL, with around 10% slower performance than CUDA.
Abstract
Efficiently exploiting GPUs is increasingly essential in scientific computing, as many current and upcoming supercomputers are built using them. To facilitate this, there are a number of programming approaches, such as CUDA, OpenACC and OpenMP 4, supporting different programming languages (mainly C/C++ and Fortran). There are also several compiler suites (clang, nvcc, PGI, XL) each supporting different combinations of languages. In this study, we take a detailed look at some of the currently available options, and carry out a comprehensive analysis and comparison using computational loops and applications from the domain of unstructured mesh computations. Beyond runtimes and performance metrics (GB/s), we explore factors that influence performance such as register counts, occupancy, usage of different memory types, instruction counts, and algorithmic differences. Results of this work…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Graph Theory and Algorithms
