Abstract

Programming for a diverse set of compute accelerators in addition to the CPU is a challenge. Maintaining separate source code for each architecture would require lots of effort, and development of new algorithms would be daunting if it had to be repeated many times. Fortunately there are several portability technologies on the market such as Alpaka, Kokkos, and SYCL. These technologies aim to improve the developer’s productivity by making it possible to use the same source code for many different architectures. In this paper we use heterogeneous pixel reconstruction code from the CMS experiment at the CERNL LHC as a realistic use case of a GPU-targeting HEP reconstruction software, and report experience from prototyping a portable version of it using Kokkos. The development was done in a standalone program that attempts to model many of the complexities of a HEP data processing framework such as CMSSW. We also compare the achieved event processing throughput to the original CUDA code and a CPU version of it.

Highlights

  • Graphics processing units (GPUs) are being used in scientific computing because of their cost and power efficiency in solving data-parallel problems

  • We have tested Serial, Threads, CUDA, and HIP execution spaces of Kokkos, and we focus on several aspects in how Kokkos would fit into a framework like CMSSW

  • The pixel reconstruction algorithms are organized in five modules, depicted in Figure 1, that communicate the intermediate data in the GPU memory through the CMSSW event data

Read more

Summary

Introduction

Graphics processing units (GPUs) are being used in scientific computing because of their cost and power efficiency in solving data-parallel problems. Many technologies for fully portable code between CPUs and compute accelerators have emerged to ease the development and maintenance burden of heterogeneous applications. These technologies include C++ libraries, such as Alpaka [1,2,3], Kokkos [4], and RAJA [5, 6]; SYCL [7] that can be implemented as libraries such as triSYCL [8] and hipSYCL [9] or as specific compilers such as ComputeCpp [10] by Codeplay and DPC++ [11] by Intel; compiler pragma based solutions such as OpenMP [12] and.

Patatrack Heterogeneous Pixel Reconstruction
Kokkos
Impact on building
Impact on code
Performance comparison
Findings
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call