28105

Managing heterogeneous device memory using C++17 memory resources

S.N. Swatman, A. Krasznahorkay, P. Gessinger
European Organization for Nuclear Research, Meyrin, Switzerland
Journal of Physics: Conference Series, 2438, 012050, 2023

@inproceedings{swatman2023managing,

   title={Managing heterogeneous device memory using C++ 17 memory resources},

   author={Swatman, SN and Krasznahorkay, A and Gessinger, P},

   booktitle={Journal of Physics: Conference Series},

   volume={2438},

   number={1},

   pages={012050},

   year={2023},

   organization={IOP Publishing}

}

Programmers using the C++ programming language are increasingly taught to manage memory implicitly through containers provided by the C++ standard library. However, heterogeneous programming platforms often require explicit allocation and deallocation of memory. This discrepancy in memory management strategies can be daunting and problematic for C++ developers who are not already familiar with heterogeneous programming. The C++17 standard introduces the concept of memory resources, which allow the user to control how standard library containers allocate memory; we believe that this addition to the C++17 standard is a powerful tool towards the unification of memory management for heterogeneous systems with best-practice C++ development. In this paper, we present vecmem, a library of memory resources which allows efficient and user-friendly allocation of memory on CUDA, HIP, and SYCL devices through standard C++ containers. We investigate the design and use cases of such a library, the potential performance gains over naive memory allocation, and the limitations of this memory allocation model.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: