Academic Journal

Annotation‐Guided AoS‐to‐SoA Conversions and GPU Offloading With Data Views in C++.

Λεπτομέρειες βιβλιογραφικής εγγραφής
Τίτλος: Annotation‐Guided AoS‐to‐SoA Conversions and GPU Offloading With Data Views in C++.
Συγγραφείς: Radtke, Pawel K., Weinzierl, Tobias
Πηγή: Concurrency & Computation: Practice & Experience; 9/25/2025, Vol. 37 Issue 21/22, p1-23, 23p
Θεματικοί όροι: C++, Annotations, Data structures, Mathematical optimization, Compilers (Computer programs)
Περίληψη: The C++ programming language provides classes and structs as fundamental modeling entities. Consequently, C++ code tends to favor array‐of‐structs (AoS) for encoding data sequences, even though structure‐of‐arrays (SoA) yields better performance for some calculations. We propose a C++ language extension based on attributes that allows developers to guide the compiler in selecting memory arrangements, that is, to select the optimal choice between AoS and SoA dynamically depending on both the execution context and algorithm step. The compiler can then automatically convert data into the preferred format prior to the calculations and convert results back afterward. The compiler handles all the complexity of determining which data to convert and how to manage data transformations. Our implementation realizes the compiler‐extension for the new annotations in Clang and demonstrates their effectiveness through a smoothed particle hydrodynamics (SPH) code, which we evaluate on an Intel CPU, an ARM CPU, and a Grace‐Hopper GPU. While the separation of concerns between data structure and operators is elegant and provides performance improvements, the new annotations do not eliminate the need for performance engineering. Instead, they challenge conventional performance wisdom and necessitate rethinking approaches how to write efficient implementations. [ABSTRACT FROM AUTHOR]
Copyright of Concurrency & Computation: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Βάση Δεδομένων: Complementary Index
FullText Links:
  – Type: other
Text:
  Availability: 0
Header DbId: edb
DbLabel: Complementary Index
An: 187503438
RelevancyScore: 1023
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 1023.08825683594
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Annotation‐Guided AoS‐to‐SoA Conversions and GPU Offloading With Data Views in C++.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Radtke%2C+Pawel+K%2E%22">Radtke, Pawel K.</searchLink><br /><searchLink fieldCode="AR" term="%22Weinzierl%2C+Tobias%22">Weinzierl, Tobias</searchLink>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: Concurrency & Computation: Practice & Experience; 9/25/2025, Vol. 37 Issue 21/22, p1-23, 23p
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22C%2B%2B%22">C++</searchLink><br /><searchLink fieldCode="DE" term="%22Annotations%22">Annotations</searchLink><br /><searchLink fieldCode="DE" term="%22Data+structures%22">Data structures</searchLink><br /><searchLink fieldCode="DE" term="%22Mathematical+optimization%22">Mathematical optimization</searchLink><br /><searchLink fieldCode="DE" term="%22Compilers+%28Computer+programs%29%22">Compilers (Computer programs)</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The C++ programming language provides classes and structs as fundamental modeling entities. Consequently, C++ code tends to favor array‐of‐structs (AoS) for encoding data sequences, even though structure‐of‐arrays (SoA) yields better performance for some calculations. We propose a C++ language extension based on attributes that allows developers to guide the compiler in selecting memory arrangements, that is, to select the optimal choice between AoS and SoA dynamically depending on both the execution context and algorithm step. The compiler can then automatically convert data into the preferred format prior to the calculations and convert results back afterward. The compiler handles all the complexity of determining which data to convert and how to manage data transformations. Our implementation realizes the compiler‐extension for the new annotations in Clang and demonstrates their effectiveness through a smoothed particle hydrodynamics (SPH) code, which we evaluate on an Intel CPU, an ARM CPU, and a Grace‐Hopper GPU. While the separation of concerns between data structure and operators is elegant and provides performance improvements, the new annotations do not eliminate the need for performance engineering. Instead, they challenge conventional performance wisdom and necessitate rethinking approaches how to write efficient implementations. [ABSTRACT FROM AUTHOR]
– Name: Abstract
  Label:
  Group: Ab
  Data: <i>Copyright of Concurrency & Computation: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=187503438
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1002/cpe.70199
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 23
        StartPage: 1
    Subjects:
      – SubjectFull: C++
        Type: general
      – SubjectFull: Annotations
        Type: general
      – SubjectFull: Data structures
        Type: general
      – SubjectFull: Mathematical optimization
        Type: general
      – SubjectFull: Compilers (Computer programs)
        Type: general
    Titles:
      – TitleFull: Annotation‐Guided AoS‐to‐SoA Conversions and GPU Offloading With Data Views in C++.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Radtke, Pawel K.
      – PersonEntity:
          Name:
            NameFull: Weinzierl, Tobias
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 25
              M: 09
              Text: 9/25/2025
              Type: published
              Y: 2025
          Identifiers:
            – Type: issn-print
              Value: 15320626
          Numbering:
            – Type: volume
              Value: 37
            – Type: issue
              Value: 21/22
          Titles:
            – TitleFull: Concurrency & Computation: Practice & Experience
              Type: main
ResultId 1