Marionette: Data Structure Description and Management for Heterogeneous Computing

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: Fernandes, Nuno dos Santos, Tomás, Pedro, Roma, Nuno, Winklmeier, Frank, Conde-Muíño, Patricia
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866915604014825472
author Fernandes, Nuno dos Santos
Tomás, Pedro
Roma, Nuno
Winklmeier, Frank
Conde-Muíño, Patricia
author_facet Fernandes, Nuno dos Santos
Tomás, Pedro
Roma, Nuno
Winklmeier, Frank
Conde-Muíño, Patricia
contents Adapting large, object-oriented C++ codebases for hardware acceleration might be extremely challenging, particularly when targeting heterogeneous platforms such as GPUs. Marionette is a C++17 library designed to address this by enabling flexible, efficient, and portable data structure definitions. It decouples data layout from the description of the interface, supports multiple memory management strategies, and provides efficient data transfers and conversions across devices, all of this with minimal runtime overhead due to the compile-time nature of its abstractions. By allowing interfaces to be augmented with arbitrary functions, Marionette maintains compatibility with existing code and offers a streamlined interface that supports both straightforward and advanced use cases. This paper outlines its design, usage, and performance, including a CUDA-based case study demonstrating its efficiency and flexibility.
format Preprint
id arxiv_https___arxiv_org_abs_2511_04853
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Marionette: Data Structure Description and Management for Heterogeneous Computing
Fernandes, Nuno dos Santos
Tomás, Pedro
Roma, Nuno
Winklmeier, Frank
Conde-Muíño, Patricia
Distributed, Parallel, and Cluster Computing
Adapting large, object-oriented C++ codebases for hardware acceleration might be extremely challenging, particularly when targeting heterogeneous platforms such as GPUs. Marionette is a C++17 library designed to address this by enabling flexible, efficient, and portable data structure definitions. It decouples data layout from the description of the interface, supports multiple memory management strategies, and provides efficient data transfers and conversions across devices, all of this with minimal runtime overhead due to the compile-time nature of its abstractions. By allowing interfaces to be augmented with arbitrary functions, Marionette maintains compatibility with existing code and offers a streamlined interface that supports both straightforward and advanced use cases. This paper outlines its design, usage, and performance, including a CUDA-based case study demonstrating its efficiency and flexibility.
title Marionette: Data Structure Description and Management for Heterogeneous Computing
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2511.04853