Presentation

Optimizing CRK-HACC for Performance Portability Using SYCL
DescriptionIn this talk, we discuss the development of the SYCL implementation of CRK-HACC, an extreme-scale cosmological simulation code with physics for resolving gas hydrodynamics. We describe our CUDA-to-SYCL migration pipeline for producing function objects and detail how we achieved a high level of “performance portability” across GPUs from AMD, Intel, and NVIDIA, requiring us to develop an abstraction for multiple “shuffle” operations: the sycl::select_from_group function from SYCL 2020, a shuffle operation emulated via work-group local memory, and a highly specialized shuffle operation implemented for Intel GPUs in assembly (vISA). To facilitate code maintainability we also created abstractions for host-side code that is shared across HIP, SYCL, and CUDA. We believe our techniques will generalize well to other application domains and provide a balance of maintainability and performance portability.
TimeTuesday, June 417:30 - 18:00 CEST
LocationHG E 1.2
Event Type
Minisymposium
Domains
Engineering
Computational Methods and Applied Mathematics