The Large Hadron Collider (LHC) at CERN will see an upgraded hardware configuration which will bring a new era of physics data taking and related computational challenges. To this end, it is necessary to exploit the ever increasing variety of computational architectures, featuring GPUs from multiple vendors and new accelerators. Performance portable frameworks, like SYCL, allow to offload the computational work on non-CPU resources, while retaining their performance, without the need to maintain different implementations of the same code. The High Energy Physics (HEP) community employs a wide variety of algorithms and tools for accelerators, but it still lacks a streamlined coherent approach that can target many use cases without compromising the usability aspect. In this paper, we present our efforts in creating GenVectorX, a C++ package that provides classes and functionalities to represent and manipulate particle events using the SYCL programming model. The SYCL-based implementation exhibits comparable performance and scalability as the CUDA implementation when targeting NVIDIA GPUs.
翻译:欧洲核子研究中心(CERN)的大型强子对撞机(LHC)将迎来硬件配置升级,这将开启物理数据采集的新纪元,并带来相关的计算挑战。为此,必须充分利用日益多样化的计算架构,包括来自不同供应商的GPU及新型加速器。性能可移植框架(如SYCL)允许将计算任务卸载至非CPU资源,同时保持性能,无需维护同一代码的不同实现。高能物理(HEP)社区已采用多种算法和工具用于加速器,但仍缺乏一种兼顾广泛用例且不牺牲可用性的统一化方法。本文介绍了我们创建GenVectorX的成果——一款基于SYCL编程模型提供粒子事件表示与操作类及功能的C++包。当面向NVIDIA GPU时,基于SYCL的实现展现出与CUDA实现相当的性能与可扩展性。