2021 · 22 citations · 13 references
ComputingComputer EngineeringComputer ScienceComputer GraphicsOperating SystemsParallel ComputingCompute Resource ManagementHardware AccelerationMemory ManagementParallel Memory ManagementParallel Performance AnalysisParallel Runtime SystemsAllocation Performance AssessmentDynamic Memory AllocationGpu Runtime SystemsLevel Playing FieldReal-world Performance EvaluationSynchronizationSynchronization OverheadWorkload Characterization
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.
13
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe et al. · ACM SIGPLAN Notices · 2000 · 449 citations · Full text
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe et al. · 2000 · 217 citations · Full text