Jenga: Effective Memory Management for Serving LLM with Heterogeneity
Chen Zhang, Kuntai Du, Shu Liu, Woosuk Kwon, Xiangxi Mo, Yufeng Wang, Xiaoxuan Liu, Kaichao You, Zhuohan Li, Mingsheng Long, Jidong Zhai, Joseph Gonzalez, Ion Stoica
TL;DR
Jenga tackles the memory-efficiency bottleneck in batched LLM serving caused by heterogeneous embeddings and diverse token-dependency patterns. It introduces a two-level memory allocator that uses an $LCM$-based large-page layout and per-type small-page allocators, together with a prefix-subset evictor and customizable layer-specific caching policies. The approach reduces memory fragmentation and enables flexible caching strategies, achieving up to $79.6\%$ improvement in memory utilization and up to $4.92\times$ throughput improvements on diverse models and GPUs, while preserving latency. The work demonstrates practical impact by integrating with vLLM and enabling efficient serving of vision-language models, speculative decoding, and multi-model workloads without kernel changes.
Abstract
Large language models (LLMs) are widely used but expensive to run, especially as inference workloads grow. To lower costs, maximizing the request batch size by managing GPU memory efficiently is crucial. While PagedAttention has recently been proposed to improve the efficiency of memory management, we find that the growing heterogeneity in the embeddings dimensions, attention, and access patterns of modern LLM architectures introduces new challenges for memory allocation. In this paper, we present Jenga, a novel memory allocation framework for heterogeneous embeddings in LLMs. Jenga tackles two key challenges: (1) minimizing memory fragmentation when managing embeddings of different sizes, and (2) enabling flexible caching and eviction policies tailored to the specific token-dependency patterns of various layers. Jenga employs a two-level memory allocator, leveraging the least common multiple (LCM) of embedding sizes to optimize memory usage and providing APIs to express layer-specific caching logic to enhance memory reuse. We implemente Jenga on vLLM, a state-of-the-art LLM inference engine, and evaluate it with diverse LLMs, datasets, and GPU configurations. Evaluations show that Jenga improves GPU memory utilization by up to 79.6%, and increases serving throughput by up to 4.92x (1.80x on average).
