Experience with the alpaka performance portability library in the CMS software
To achieve better computational efficiency and exploit a wider range of computing resources, the CMS software framework (CMSSW) has been extended to offload part of the physics reconstruction to NVIDIA GPUs. To support additional back-ends, as well to avoid the need to write, validate and maintain a separate implementation of the reconstruction algorithms for each back-end, CMS has adopted the alpaka performance portability library. Alpaka (Abstraction Library for Parallel Kernel Acceleration) is a header-only C++ library that provides performance portability across different back-ends, abstracting the underlying levels of parallelism. It supports serial and parallel execution on CPUs, and extremely parallel execution on NVIDIA, AMD and Intel GPUs. This contribution will show how alpaka is used in the CMS software to develop and maintain a single code base; to use different toolchains to build the code for each supported back-end, and link them into a single application; to seamlessly select the best backend at runtime, and implement portable reconstruction algorithms that run efficiently on CPUs and GPUs from different vendors. It will describe the validation and deployment of the alpaka-based implementation in the CMS High Level Trigger, and highlight how it achieves near-native performance.
Authors
- Patrycja Górniak
- Antonı́n Dvořák (ORCID: https://orcid.org/0000-0002-0611-491X)
- Philipp Brummer (ORCID: https://orcid.org/0000-0002-3857-3504)
- Wassef Karimeh
- E. Cano
- F. Meijers (ORCID: https://orcid.org/0000-0002-6530-3657)
- Christian Deldicque
- Guillermo Izquierdo Moreno
- W. Redjeb (ORCID: https://orcid.org/0000-0001-9794-8292)
- J. Hegeman (ORCID: https://orcid.org/0000-0002-2938-2263)
- T. Jayakumar
- T. James (ORCID: https://orcid.org/0000-0002-3727-0202)
- Marc Dobson (ORCID: https://orcid.org/0009-0007-5021-3230)
- G. Gomez Ceballos (ORCID: https://orcid.org/0000-0003-1683-9460)
- Cristina Vazquez Velez
- P. Zejdl (ORCID: https://orcid.org/0000-0001-9554-7815)
- Theodoros Rizopoulos
- K. Long (ORCID: https://orcid.org/0000-0003-0664-1653)
- R. D. Krawczyk (ORCID: https://orcid.org/0000-0001-8664-4787)
- Wei Li (ORCID: https://orcid.org/0000-0001-9583-9199)
- Christoph M. E. Paus
- M. J. Kortelainen (ORCID: https://orcid.org/0000-0003-2675-1606)
- Srećko Morović (ORCID: https://orcid.org/0000-0003-0956-4665)
- Antra Gaile (ORCID: https://orcid.org/0000-0003-1350-3523)
- M. Pieri (ORCID: https://orcid.org/0000-0003-3303-6301)
- Emilio Meschi
- Dainius Šimelevičius
- Andrea Bocci
- Sergio Cittolin
- Frank Glege
- Dinyar Sebastian Rabady
- Dominique Gigi
- Hannes Sakulin
- L. Orsini
- A. Rácz
- J. G. Branson (ORCID: https://orcid.org/0009-0009-5683-4614)
- Christoph Schwick
- P. Tzanis (ORCID: https://orcid.org/0000-0001-6828-1599)
- U. Behrens
- Georgiana-Lavinia Darlea
- Andrea Petrucci (ORCID: https://orcid.org/0000-0003-2524-8355)
- Jaafar Alawieh
- Miguel Bacharov Durasov
- Babatunde John Odetayo
- Jan Andrzej Bugajski
- Albert Corominas I Mariscot
- Christos Emmanouil
- Kareen Arutjunjan
Institutions
- Fermi National Accelerator Laboratory (US)
- Vilnius University (LT)
- University of California San Diego (US)
- IIT@MIT (US)
- University of Benin (NG)
- European Organization for Nuclear Research (CH)
- Rice University (US)
- RWTH Aachen University (DE)
Publication Details
- Journal
- EPJ Web of Conferences
- Published
- 2025-01-01
- DOI
- https://doi.org/10.1051/epjconf/202533701141
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- U.S. Department of Energy
- Bundesministerium für Bildung und Forschung
- China Scholarship Council
- Office of Science
- High Energy Physics