- AutorIn
- Bernhard Manfred Gruber
- Titel
- Design of a data layout and memory access abstraction layer for heterogeneous architectures
- Zitierfähige Url:
- https://nbn-resolving.org/urn:nbn:de:bsz:14-qucosa2-989028
- Erstveröffentlichung
- 2025
- Datum der Einreichung
- 20.08.2024
- Datum der Verteidigung
- 17.04.2025
- Abstract (DE)
- Effiziente parallele Programme hängen zunehmend von arbeitsspeicherbezogenen Optimierungen sowie der Berücksichtigung des internen Aufbaus der Zielhardware ab. Dies ist eine besondere Herausforderung für portable Programme, die für den Einsatz auf einer Vielzahl von Architekturen konzipiert sind, da zum einen ein einheitlicher Quellcode erstrebenswert ist, im Idealfall aber auch die volle Kontrolle über zielarchitekturspezifische Optimierungen erhalten bleiben soll. Arbeitsspeicherbezogene Optimierungen sind vielfältig und erfordern im Regelfall die volle Kontrolle über das Datenlayout, den Speicherzugriff, das Speicherformat, das Allozieren und Verwalten sowie die Auswahl des konkret genutzten Speichers. Diese Aspekte werden idealerweise von Programm und Datenstrukturen entkoppelt, und in einer kohärenten und mehraufwandsfreien Abstraktionsschicht vereinigt. Mehrdimensionale Felder verschachtelter Strukturen bilden die Grundlage des Entwurfs von Datenstrukturen. Durch deren Abstraktion als indizierbare Räume können portable Programme gegen eine generische Schnittstelle geschrieben werden. Die low-level abstraction of memory access (LLAMA) implementiert dieses Konzept als C++-Abstraktionsbibliothek, mit deren Verwendung jeder leistungsrelevante Aspekt unter minimalem Aufwand angepasst werden kann, ohne Änderungung des Anwendercodes zu erfordern. LLAMA verursacht im Großteil der analysierten Programme, einschließlich Produktivsoftware, keinen Mehraufwand bei der Ausführung. Im Allgemeinen ist der erzeugte Maschinencode gleichwertig zu manuellen Umsetzungen von Datenlayouts und SIMD-Programmen, während LLAMA-Code gleichzeitig auf alle relevanten modernen Hardwarearchitekturen portabel ist. Die von LLAMA bereitgestellte Abstraktion bietet eine solide Grundlage für systematische Speicheroptimierung, einschließlich Instrumentierung, Leistungsprofilerstellung und schnellem Testen verschiedener Datenlayouts.
- Abstract (EN)
- Efficient parallel programs increasingly rely on memory-related optimizations and on respect for the target hardware’s internal structure. This presents a challenge for portable codes running on a variety of architectures. A single-source approach is highly desirable while, ideally, retaining full control over target specific optimizations. Memory-related optimizations are manifold, and generally require full control over data layout, memory access, storage format, memory allocation, and physical memory location. These aspects are ideally decoupled from a program and its data structures, and unified into a coherent zero-overhead abstraction layer. By abstracting multidimensional arrays of nested structures, the foundation of data structure design, as indexable spaces, portable programs can be written against a generic interface. The low-level abstraction of memory access (LLAMA) implements this concept as a C++ abstraction library, underneath which every performance relevant aspect can be customized with minimal effort and without needing any change to user code. LLAMA shows no overhead in most analyzed code bases, including real-world software, and generally produces machine code equivalent to manual data layout or SIMD implementations, while running portably on all relevant contemporary hardware architectures. The abstraction provided by LLAMA provides a solid foundation for systematic optimization, including instrumentation, profiling, and rapid data layout exploration. LLAMA shows that a unification of existing memory optimization approaches is entirely possible, while making no compromises on the portability of code and supported hardware platforms, providing a novel tool for the development of high-performance C++ applications in a heterogeneous environment.
- Verweis
- LLAMA: The low-level abstraction for memory access
Link: https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.3077
DOI: 10.1002/spe.3077 - Update on the Low-Level Abstraction of Memory Access
DOI: 10.48550/arXiv.2302.08251 - Challenges and opportunities integrating LLAMA inro AdePT
DOI: 10.48550/arXiv.2302.08252 - Performance Portability With alpaka
- Freie Schlagwörter (EN)
- memory layout, data layout, struct of arrays, abstraction layer, GPU
- Klassifikation (DDC)
- 004
- Klassifikation (RVK)
- ST 175
- ST 170
- GutachterIn
- Prof. Dr. Dirk Pleiter
- Prof. Dr. Ivo Sbalzarini
- BetreuerIn Hochschule / Universität
- Dr. Guilherme Amadio
- Dr. Jakob Blomer
- Dr. Michael Bussmann
- Den akademischen Grad verleihende / prüfende Institution
- Technische Universität Dresden, Dresden
- Förder- / Projektangaben
- Bundesministerium für Bildung und Forschung Wolfgang Gentner Programme
ID: 13E18CHA - Center of Advanced Systems Understanding
- Sächsischen Staatsministerium für Wissenschaft, Kultur und Tourismus
- Version / Begutachtungsstatus
- publizierte Version / Verlagsversion
- URN Qucosa
- urn:nbn:de:bsz:14-qucosa2-989028
- Veröffentlichungsdatum Qucosa
- 20.10.2025
- Dokumenttyp
- Dissertation
- Sprache des Dokumentes
- Englisch
- Lizenz / Rechtehinweis
CC BY 4.0