Marionette: Data Structure Description and Management for Heterogeneous Computing

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Fernandes, Nuno dos Santos, Tomás, Pedro, Roma, Nuno, Winklmeier, Frank, Conde-Muíño, Patricia
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_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