Cargando…

Updates on the Low-Level Abstraction of Memory Access

Choosing the best memory layout for each hardware architecture is increasingly important as more and more programs become memory bound. For portable codes that run across heterogeneous hardware architectures, the choice of the memory layout for data structures is ideally decoupled from the rest of a...

Descripción completa

Detalles Bibliográficos
Autor principal: Gruber, Bernhard Manfred
Lenguaje:eng
Publicado: 2023
Materias:
Acceso en línea:http://cds.cern.ch/record/2856522
_version_ 1780977514524442624
author Gruber, Bernhard Manfred
author_facet Gruber, Bernhard Manfred
author_sort Gruber, Bernhard Manfred
collection CERN
description Choosing the best memory layout for each hardware architecture is increasingly important as more and more programs become memory bound. For portable codes that run across heterogeneous hardware architectures, the choice of the memory layout for data structures is ideally decoupled from the rest of a program. The low-level abstraction of memory access (LLAMA) is a C++ library that provides a zero-runtime-overhead abstraction layer, underneath which memory mappings can be freely exchanged to customize data layouts, memory access and access instrumentation, focusing on multidimensional arrays of nested, structured data. After its scientific debut, several improvements and extensions have been added to LLAMA. This includes compile-time array extents for zero-memory-overhead views, support for computations during memory access, new mappings for bit-packing, switching types, byte-splitting, memory access instrumentation, and explicit SIMD support. This contribution provides an overview of recent developments in the LLAMA library.
id cern-2856522
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2023
record_format invenio
spelling cern-28565222023-06-29T04:00:00Zhttp://cds.cern.ch/record/2856522engGruber, Bernhard ManfredUpdates on the Low-Level Abstraction of Memory Accesscs.PFComputing and ComputersChoosing the best memory layout for each hardware architecture is increasingly important as more and more programs become memory bound. For portable codes that run across heterogeneous hardware architectures, the choice of the memory layout for data structures is ideally decoupled from the rest of a program. The low-level abstraction of memory access (LLAMA) is a C++ library that provides a zero-runtime-overhead abstraction layer, underneath which memory mappings can be freely exchanged to customize data layouts, memory access and access instrumentation, focusing on multidimensional arrays of nested, structured data. After its scientific debut, several improvements and extensions have been added to LLAMA. This includes compile-time array extents for zero-memory-overhead views, support for computations during memory access, new mappings for bit-packing, switching types, byte-splitting, memory access instrumentation, and explicit SIMD support. This contribution provides an overview of recent developments in the LLAMA library.arXiv:2302.08251oai:cds.cern.ch:28565222023-02-16
spellingShingle cs.PF
Computing and Computers
Gruber, Bernhard Manfred
Updates on the Low-Level Abstraction of Memory Access
title Updates on the Low-Level Abstraction of Memory Access
title_full Updates on the Low-Level Abstraction of Memory Access
title_fullStr Updates on the Low-Level Abstraction of Memory Access
title_full_unstemmed Updates on the Low-Level Abstraction of Memory Access
title_short Updates on the Low-Level Abstraction of Memory Access
title_sort updates on the low-level abstraction of memory access
topic cs.PF
Computing and Computers
url http://cds.cern.ch/record/2856522
work_keys_str_mv AT gruberbernhardmanfred updatesonthelowlevelabstractionofmemoryaccess