We discuss three SYCL realisations of a simple Finite Volume scheme over multiple Cartesian patches. The realisation flavours differ in the way how they map the compute steps onto loops and tasks: We compare an implementation that is exclusively using a sequence of for-loops to a version that uses nested parallelism, and finally benchmark these against a version modelling the calculations as task graph. Our work proposes realisation idioms to realise these flavours within SYCL. The results suggest that a mixture of classic task and data parallelism performs if we map this hybrid onto a solely data-parallel SYCL implementation, taking into account SYCL specifics and the problem size.
Cite
@article{arxiv.2306.16731,
title = {SYCL compute kernels for ExaHyPE},
author = {Chung Ming Loi and Heinrich Bockhorst and Tobias Weinzierl},
journal= {arXiv preprint arXiv:2306.16731},
year = {2025}
}