Improving Locality of Unstructured Mesh Algorithms on GPUs
Faculty of Information Technology and Bionics, Pazmany Peter Catholic University, Hungary
arXiv:1802.03749 [cs.MS], (11 Feb 2018)
@article{sulyok2018improving,
title={Improving Locality of Unstructured Mesh Algorithms on GPUs},
author={Sulyok, Andras Attila and Balogh, Gabor Daniel and Reguly, Istvan Zoltan and Mudalige, Gihan R.},
year={2018},
month={feb},
archivePrefix={"arXiv"},
primaryClass={cs.MS}
}
To most efficiently utilize modern parallel architectures, the memory access patterns of algorithms must make heavy use of the cache architecture: successively accessed data must be close in memory (spatial locality) and one piece of data must be reused as many times as possible (temporal locality). In this work we analyse the performance of unstructured mesh algorithms on GPUs, specifically the use of the shared memory and two-layered colouring to cache the data. We also look at different block layouts to analyse the trade-off between data reuse and the amount of synchronisation. We developed a standalone library that can transparently reorder the operations done and data accessed by a kernel, without modifications to the algorithm by the user. Using this, we performed measurements on relevant scientific kernels from different applications, such as Airfoil, Volna, Bookleaf, Lulesh and miniAero; using Nvidia Pascal and Volta GPUs. We observed significant speedups (1.2-2.5x).
February 15, 2018 by hgpu