English
 
Help Privacy Policy Disclaimer
  Advanced SearchBrowse

Item

ITEM ACTIONSEXPORT
  A portable C++ library for memory and compute abstraction on multi-core CPUs and GPUs.

Incardona, P., Gupta, A., Yaskovets, S., & Sbalzarini, I. F. (2023). A portable C++ library for memory and compute abstraction on multi-core CPUs and GPUs. Concurrency and Computation: Practice and Experience, 35(25): e7870, pp. 1-15. doi:10.1002/cpe.7870.

Item is

Files

show Files

Locators

show
hide
Description:
-
OA-Status:

Creators

show
hide
 Creators:
Incardona, Pietro1, Author           
Gupta, Aryaman1, Author
Yaskovets, Serhii1, Author
Sbalzarini, Ivo F.1, Author           
Affiliations:
1Max Planck Institute for Molecular Cell Biology and Genetics, Max Planck Society, ou_2340692              

Content

show
hide
Free keywords: -
 Abstract: We present a C++ library for transparent memory and compute abstraction across CPU and GPU architectures. Our library combines generic data structures like vectors, multi-dimensional arrays, maps, graphs, and sparse grids with basic generic algorithms like arbitrary-dimensional convolutions, copying, merging, sorting, prefix sum, reductions, neighbor search, and filtering. The memory layout of the data structures is adapted at compile time using C++ tuples with optional memory double-mapping between host and device and the capability of using memory managed by external libraries with no data copying. We combine this transparent memory layout with generic thread-parallel algorithms under two alternative common interfaces: a CUDA-like kernel interface and a lambda-function interface. We quantify the memory and compute performance and portability of our implementation using micro-benchmarks, showing that the abstractions introduce negligible performance overhead, and we compare performance against the current state of the art in a real-world scientific application from computational fluid mechanics.

Details

show
hide
Language(s):
 Dates: 2023-07-05
 Publication Status: Issued
 Pages: -
 Publishing info: -
 Table of Contents: -
 Rev. Type: -
 Identifiers: DOI: 10.1002/cpe.7870
Other: cbg-8585
 Degree: -

Event

show

Legal Case

show

Project information

show

Source 1

show
hide
Title: Concurrency and Computation: Practice and Experience
  Other : Concurrency Computat. Pract. Exper.
Source Genre: Journal
 Creator(s):
Affiliations:
Publ. Info: -
Pages: - Volume / Issue: 35 (25) Sequence Number: e7870 Start / End Page: 1 - 15 Identifier: -