Speaker
Description
In recent years, we have seen a rapid increase in the variety of computational architectures, featuring GPUs from multiple vendors, a trend that will likely continue in the future with the rise of possibly new accelerators. The High Energy Physics (HEP) community employs a wide variety of algorithms for accelerators which are mostly vendor-specific, but there is a compelling demand to expand the target capabilities of these tools via single-source cross-platform performance-portable abstraction layers, such as SYCL.
In this talk, we present GenVectorX, a SYCL-based multi-platform extension of the GenVector package of ROOT, that provides classes and functionalities to represent and manipulate particle events. This tool is intended for general usage, but it specifically targets HEP experiments data processing. Moreover, we discuss results showing that the SYCL-based implementation exhibits comparable performance and scalability as the CUDA implementation when targeting NVIDIA GPUs.
Significance
In this presentation, we detail the migration of a large, complex, C++ code base to both SYCL and CUDA, providing guidance and insights regarding the analogies and differences between the two frameworks for other developers interested in migrating their own codes. We provide a detailed performance analysis of the migrated SYCL code on different platforms and architectures. Moreover, we compute and compare the performance portability and code divergence of GenVectorX, to explore the trade-offs between maintaining a single source code and specializing small regions of code for specific targets.