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...
Autor principal: | |
---|---|
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 |