@inproceedings{4e207c35a45845beb55df4babf2e8ec2,
title = "Are dynamic memory managers on GPUs slow? - a survey and benchmarks.",
abstract = "Dynamic memory management on GPUs is generally understood to be a challenging topic. On current GPUs, hundreds of thousands of threads might concurrently allocate new memory or free previously allocated memory. This leads to problems with thread contention, synchronization overhead and fragmentation. Various approaches have been proposed in the last ten years and we set out to evaluate them on a level playing field on modern hardware to answer the question, if dynamic memory managers are as slow as commonly thought of. In this survey paper, we provide a consistent framework to evaluate all publicly available memory managers in a large set of scenarios. We summarize each approach and thoroughly evaluate allocation performance (thread-based as well as warp-based), and look at performance scaling, fragmentation and real-world performance considering a synthetic workload as well as updating dynamic graphs. We discuss the strengths and weaknesses of each approach and provide guidelines for the respective best usage scenario. We provide a unified interface to integrate any of the tested memory managers into an application and switch between them for benchmarking purposes. Given our results, we can dispel some of the dread associated with dynamic memory managers on the GPU.",
keywords = "analysis, benchmarks, bulksemaphore, CUDA, GPU, halloc, memory management, ouroboros, ScatterAlloc, survey, XMalloc",
author = "Martin Winter and Mathias Parger and Daniel Mlakar and Markus Steinberger",
note = "DBLP's bibliographic metadata records provided through http://dblp.org/search/publ/api are distributed under a Creative Commons CC0 1.0 Universal Public Domain Dedication. Although the bibliographic metadata records are provided consistent with CC0 1.0 Dedication, the content described by the metadata records is not. Content may be subject to copyright, rights of privacy, rights of publicity and other restrictions.; 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming : PPoPP 2021 ; Conference date: 27-02-2021 Through 03-03-2021",
year = "2021",
month = feb,
day = "17",
doi = "10.1145/3437801.3441612",
language = "English",
series = "Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP",
publisher = "Association of Computing Machinery",
pages = "219--233",
booktitle = "PPoPP 2021 - Proceedings of the 2021 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming",
address = "United States",
}