Massively Parallel GPU Memory Compaction
Tokyo Institute of Technology, Japan
ACM SIGPLAN International Symposium on Memory Management, 2019
@article{springer2019massively,
title={Massively Parallel GPU Memory Compaction},
author={Springer, Matthias and Masuhara, Hidehiko},
year={2019}
}
Memory fragmentation is a widely studied problem of dynamic memory allocators. It is well known that fragmentation can lead to premature out-of-memory errors and poor cache performance. With the recent emergence of dynamic memory allocators for SIMD accelerators, memory fragmentation is becoming an increasingly important problem on such architectures. Nevertheless, it has received little attention so far. Memorybound applications on SIMD architectures such as GPUs can experience an additional slowdown due to less efficient vector load/store instructions. We propose CompactGpu, an incremental, fully-parallel, in-place memory defragmentation system for GPUs. CompactGpu is an extension to the DynaSOAr dynamic memory allocator and defragments the heap in a fully parallel fashion by merging partly occupied memory blocks. We developed several implementation techniques for memory defragmentation that are efficient on SIMD/GPU architectures, such as finding defragmentation block candidates and fast pointer rewriting based on bitmaps. Benchmarks indicate that our implementation is very fast with typically higher performance gains than compaction overheads. It can also decrease the overall memory usage.
May 30, 2019 by hgpu