Compiler support for semi-manual AoS-to-SoA conversions with data views

Uloženo v:
Podrobná bibliografie
Vydáno v:arXiv.org (Sep 5, 2024), p. n/a
Hlavní autor: Radtke, Pawel K
Další autoři: Weinzierl, Tobias
Vydáno:
Cornell University Library, arXiv.org
Témata:
On-line přístup:Citation/Abstract
Full text outside of ProQuest
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!

MARC

LEADER 00000nab a2200000uu 4500
001 3058333888
003 UK-CbPIL
022 |a 2331-8422 
035 |a 3058333888 
045 0 |b d20240905 
100 1 |a Radtke, Pawel K 
245 1 |a Compiler support for semi-manual AoS-to-SoA conversions with data views 
260 |b Cornell University Library, arXiv.org  |c Sep 5, 2024 
513 |a Working Paper 
520 3 |a The C programming language and its cousins such as C++ stipulate the static storage of sets of structured data: Developers have to commit to one, invariant data model -- typically a structure-of-arrays (SoA) or an array-of-structs (AoS) -- unless they manually rearrange, i.e.~convert it throughout the computation. Whether AoS or SoA is favourable depends on the execution context and algorithm step. We propose a language extension based upon C++ attributes through which developers can guide the compiler what memory arrangements are to be used. The compiler can then automatically convert (parts of) the data into the format of choice prior to a calculation and convert results back afterwards. As all conversions are merely annotations, it is straightforward for the developer to experiment with different storage formats and to pick subsets of data that are subject to memory rearrangements. Our work implements the annotations within Clang and demonstrates their potential impact through a smoothed particle hydrodynamics (SPH) code. 
653 |a Structured data 
653 |a C++ (programming language) 
653 |a Algorithms 
653 |a Arrays 
653 |a Compilers 
653 |a Annotations 
653 |a Smooth particle hydrodynamics 
653 |a C (programming language) 
700 1 |a Weinzierl, Tobias 
773 0 |t arXiv.org  |g (Sep 5, 2024), p. n/a 
786 0 |d ProQuest  |t Engineering Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3058333888/abstract/embedded/6A8EOT78XXH2IG52?source=fedsrch 
856 4 0 |3 Full text outside of ProQuest  |u http://arxiv.org/abs/2405.12507