Register Efficient Dynamic Memory Allocator for GPUs

Title: Register Efficient Dynamic Memory Allocator for GPUs
by Marek Vinkler, Vlastimil Havran

In: Computer Graphics Forum, ISSN 1467-8659, IF=1.595 (year 2015), accepted in April 2015.
(Older version of the idea in proceedings of High-Performance Graphics 2014 conference, pages 19-27, Lyon, France, June 2014.
[PDF Online at Wiley Online] [PDF preprint], [BibTeX], [Presentation slides in PDF])

Allocation algorithm

Paper Abstract

We compare five existing dynamic memory allocators optimized for GPUs and show their strengths and weaknesses. In the measurements we use three generic evaluation tests proposed in the past and we add one with a real workload, where dynamic memory allocation is used in building the k-d tree data structure. Following the performance analysis we propose a new dynamic memory allocator and its variants that address the limitations of the existing dynamic memory allocators. The new dynamic memory allocator uses few resources and is targeted towards large and variably sized memory allocations on massively parallel hardware architectures.

Source Code

CMalloc (and variants) source code, testing code [Latest Source]

Version History

Version Date Description
1.2 [Source] Apr 7, 2015 Coalescing of requests inside warp.
1.1 [Source] Oct 24, 2014 Fragmentation measurement, added Halloc.
1.0 [Source] May 19, 2014 Initial Release.