Cargando…

Implementation of generic SoA data structure in the CMS software

GPU applications require a structure of array (SoA) layout for the data to achieve good memory access performance. During the development of the CMS Pixel reconstruction for GPUs, the Patatrack developers crafted various techniques to optimise the data placement in memory and its access inside GPU k...

Descripción completa

Detalles Bibliográficos
Autor principal: Cano, Eric
Lenguaje:eng
Publicado: 2023
Materias:
Acceso en línea:http://cds.cern.ch/record/2872252
_version_ 1780978593867759616
author Cano, Eric
author_facet Cano, Eric
author_sort Cano, Eric
collection CERN
description GPU applications require a structure of array (SoA) layout for the data to achieve good memory access performance. During the development of the CMS Pixel reconstruction for GPUs, the Patatrack developers crafted various techniques to optimise the data placement in memory and its access inside GPU kernels. The work presented here gathers, automates and extends those patterns, and offers a simplified and consistent programming interface.The work automates the creation of SoA structures, fulfilling technical requirements like cache line alignment, while optionally providing alignment and cache hinting to the compiler and range checking. Protection of read-only products of the CMS software framework (CMSSW) is also ensured with constant versions of the SoA. A compact description of the SoA is provided to minimize the size of data passed to GPU kernels. Finally, the user interface is designed to be as simple as possible, providing an AoS-like semantic allowing compact and readable notation in the code.The result of porting of CMSSW to SoA will be presented, along with performance measurements.
id cern-2872252
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2023
record_format invenio
spelling cern-28722522023-09-25T18:53:32Zhttp://cds.cern.ch/record/2872252engCano, EricImplementation of generic SoA data structure in the CMS softwareDetectors and Experimental TechniquesGPU applications require a structure of array (SoA) layout for the data to achieve good memory access performance. During the development of the CMS Pixel reconstruction for GPUs, the Patatrack developers crafted various techniques to optimise the data placement in memory and its access inside GPU kernels. The work presented here gathers, automates and extends those patterns, and offers a simplified and consistent programming interface.The work automates the creation of SoA structures, fulfilling technical requirements like cache line alignment, while optionally providing alignment and cache hinting to the compiler and range checking. Protection of read-only products of the CMS software framework (CMSSW) is also ensured with constant versions of the SoA. A compact description of the SoA is provided to minimize the size of data passed to GPU kernels. Finally, the user interface is designed to be as simple as possible, providing an AoS-like semantic allowing compact and readable notation in the code.The result of porting of CMSSW to SoA will be presented, along with performance measurements.CMS-CR-2023-040oai:cds.cern.ch:28722522023-03-16
spellingShingle Detectors and Experimental Techniques
Cano, Eric
Implementation of generic SoA data structure in the CMS software
title Implementation of generic SoA data structure in the CMS software
title_full Implementation of generic SoA data structure in the CMS software
title_fullStr Implementation of generic SoA data structure in the CMS software
title_full_unstemmed Implementation of generic SoA data structure in the CMS software
title_short Implementation of generic SoA data structure in the CMS software
title_sort implementation of generic soa data structure in the cms software
topic Detectors and Experimental Techniques
url http://cds.cern.ch/record/2872252
work_keys_str_mv AT canoeric implementationofgenericsoadatastructureinthecmssoftware