Stellar Mergers with HPX-Kokkos and SYCL: Methods of using an Asynchronous Many-Task Runtime System with SYCL
arXiv:2303.08058 · doi:10.1145/3585341.3585354
Abstract
Ranging from NVIDIA GPUs to AMD GPUs and Intel GPUs: Given the heterogeneity of available accelerator cards within current supercomputers, portability is a key aspect for modern HPC applications. In Octo-Tiger, we rely on Kokkos and its various execution spaces for portable compute kernels. In turn, we use HPX to coordinate kernel launches, CPU tasks, and communication. This combination allows us to have a fine interleaving between portable CPU/GPU computations and communication, enabling scalability on various supercomputers. However, for HPX and Kokkos to work together optimally, we need to be able to treat Kokkos kernels as HPX tasks. Otherwise, instead of integrating asynchronous Kokkos kernel launches into HPX's task graph, we would have to actively wait for them with fence commands, which wastes CPU time better spent otherwise. Using an integration layer called HPX-Kokkos, treating Kokkos kernels as tasks already works for some Kokkos execution spaces (like the CUDA one), but not for others (like the SYCL one). In this work, we started making Octo-Tiger and HPX itself compatible with SYCL. To do so, we introduce numerous software changes, most notably an HPX-SYCL integration. This integration allows us to treat SYCL events as HPX tasks, which in turn allows us to better integrate Kokkos by extending the support of HPX-Kokkos to also fully support Kokkos' SYCL execution space. We show two ways to implement this HPX-SYCL integration and test them using Octo-Tiger and its Kokkos kernels, on both an NVIDIA A100 and an AMD MI100. We find modest, yet noticeable, speedups by enabling this integration, even when just running simple single-node scenarios with Octo-Tiger where communication and CPU utilization are not yet an issue.
References in corpus (4)
- A Very Fast And Angular Momentum Conserving Tree Code
- From Merging Frameworks to Merging Stars: Experiences using HPX, Kokkos and SIMD Types
- Quantifying Overheads in Charm++ and HPX using Task Bench
- From Task-Based GPU Work Aggregation to Stellar Mergers: Turning Fine-Grained CPU Tasks into Portable GPU Kernels
Cited by in corpus (7)
- Preparing for HPC on RISC-V: Examining Vectorization and Distributed Performance of an Astrophyiscs Application with HPX and Kokkos
- Evaluating HPX and Kokkos on RISC-V using an Astrophysics Application Octo-Tiger
- Simulating Stellar Merger using HPX/Kokkos on A64FX on Supercomputer Fugaku
- Hydrodynamic simulations of WD-WD mergers and the origin of RCB stars
- Experiences Porting Distributed Applications to Asynchronous Tasks: A Multidimensional FFT Case-study
- Visualizing the mass transfer flow in direct-impact accretion
- HPX with Spack and Singularity Containers: Evaluating Overheads for HPX/Kokkos using an astrophysics application