Ember: Making Unified Virtual Memory Practical for Discrete-Memory GPUs
Senad-Leandro Lemes Galera, Michail Georgoulakis Misegiannis, Ferdinand Gruber, Jana Giceva, Dimitrios Stavrakakis
Abstract
GPU working sets have outgrown GPU memory, so applications must oversubscribe it, keeping only hot data on the GPU. NVIDIA's Unified Virtual Memory (UVM) supports oversubscription, but its performance degrades once data exceeds the GPU's memory. This stems from its fault-driven data placement, wasting interconnect bandwidth, and underutilizing the GPU. This raises the question: can UVM oversubscription become practical on stock GPUs, exploiting GPU memory speed and minimizing wasted interconnect bandwidth, without placement hints, profiling runs, or application changes? To this end, we present Ember, a UVM management framework for oversubscribed workloads. Ember introduces a hybrid address space; allocations start as mapped into host memory, omitting data migration. Ember's counter-driven region promotion uses GPU's hardware counters to fetch hot regions to the GPU, its decay-based eager reclamation proactively evicts cold regions in batches, while via online region re-placement, Ember tracks the hot set at runtime. We implement Ember within NVIDIA's open-source UVM driver for unmodified applications and as a userspace variant on stock CUDA. At 1.5x oversubscription, it is 6.8-10.6x faster than UVM on six applications across three PCIe GPUs, and generates LLM tokens 4.7-16x faster at sizes where manual placement cannot run at all. Without a profiling run, it beats a profile-guided alternative by 2.1x on kernel time.
Create a lesson
Related papers
Characterizing CPU-GPU Memory Sharing over Unified Memory Architecture
Jinrong Yang, Zimeng Wang, Rong Chen et al.
PredictIO: Decoupling Workload Prediction from OS-Controlled Storage Prefetching
Jun Lu, Yancan Mao, Zhenya Ma et al.
Mole: Tier-Specific Hotness Profiling Driven Memory Tiering for Multi-Tiered Memory Systems
Mingyang Liu, Congming Gao, Xufeng Yang et al.
Behind a Simple Read: Understanding Work and Waiting in the Linux I/O Stack
Yang Shen, Kai Lu, Min Xie et al.
No More Translation at Runtime: LLM-Empowered Static Binary Translation
Zhibo Liu, Huaijin Wang, Wai Kin Wong et al.
RetainZ: Reclaim-Time-Aware Placement for AI Checkpoints on Zoned SSDs
Minxing Chu, Ruoxi Yang