Lessons Learned Migrating CUDA to SYCL: A HEP Case Study with ROOT RDataFrame

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Chen, Jolly, Dessole, Monica, Varbanescu, Ana Lucia
Natura: Preprint
Pubblicazione: 2024
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866912176989536256
author Chen, Jolly
Dessole, Monica
Varbanescu, Ana Lucia
author_facet Chen, Jolly
Dessole, Monica
Varbanescu, Ana Lucia
contents The world's largest particle accelerator, located at CERN, produces petabytes of data that need to be analysed efficiently, to study the fundamental structures of our universe. ROOT is an open-source C++ data analysis framework, developed for this purpose. Its high-level data analysis interface, RDataFrame, currently only supports CPU parallelism. Given the increasing heterogeneity in computing facilities, it becomes crucial to efficiently support GPGPUs to take advantage of the available resources. SYCL allows for a single-source implementation, which enables support for different architectures. In this paper, we describe a CUDA implementation and the migration process to SYCL, focusing on a core high energy physics operation in RDataFrame -- histogramming. We detail the challenges that we faced when integrating SYCL into a large and complex code base. Furthermore, we perform an extensive comparative performance analysis of two SYCL compilers, AdaptiveCpp and DPC++, and the reference CUDA implementation. We highlight the performance bottlenecks that we encountered, and the methodology used to detect these. Based on our findings, we provide actionable insights for developers of SYCL applications.
format Preprint
id arxiv_https___arxiv_org_abs_2401_13310
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Lessons Learned Migrating CUDA to SYCL: A HEP Case Study with ROOT RDataFrame
Chen, Jolly
Dessole, Monica
Varbanescu, Ana Lucia
Distributed, Parallel, and Cluster Computing
The world's largest particle accelerator, located at CERN, produces petabytes of data that need to be analysed efficiently, to study the fundamental structures of our universe. ROOT is an open-source C++ data analysis framework, developed for this purpose. Its high-level data analysis interface, RDataFrame, currently only supports CPU parallelism. Given the increasing heterogeneity in computing facilities, it becomes crucial to efficiently support GPGPUs to take advantage of the available resources. SYCL allows for a single-source implementation, which enables support for different architectures. In this paper, we describe a CUDA implementation and the migration process to SYCL, focusing on a core high energy physics operation in RDataFrame -- histogramming. We detail the challenges that we faced when integrating SYCL into a large and complex code base. Furthermore, we perform an extensive comparative performance analysis of two SYCL compilers, AdaptiveCpp and DPC++, and the reference CUDA implementation. We highlight the performance bottlenecks that we encountered, and the methodology used to detect these. Based on our findings, we provide actionable insights for developers of SYCL applications.
title Lessons Learned Migrating CUDA to SYCL: A HEP Case Study with ROOT RDataFrame
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2401.13310