llm
resource_error
ai_generated
true
RuntimeError: OutOfMemoryError: Unable to allocate memory for KV cache block. Requested block size: 16, free blocks: 0
ID: llm/vllm-block-manager-out-of-memory
80%Fix Rate
85%Confidence
1Evidence
2024-01-10First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| vLLM 0.3.0 | active | — | — | — |
| vLLM 0.4.0 | active | — | — | — |
| vLLM 0.4.2 | active | — | — | — |
| CUDA 12.1 | active | — | — | — |
| CUDA 12.2 | active | — | — | — |
Root Cause
vLLM's PagedAttention block manager exhausts all available GPU memory for KV cache blocks due to insufficient gpu_memory_utilization setting or concurrent requests exceeding memory budget.
generic中文
vLLM的PagedAttention块管理器因gpu_memory_utilization设置不足或并发请求超出内存预算,耗尽了KV缓存块的所有可用GPU内存。
Official Documentation
https://vllm.readthedocs.io/en/latest/models/engine_args.htmlWorkarounds
-
90% success Reduce gpu_memory_utilization to 0.85 or lower and set --max-num-seqs appropriately: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --gpu-memory-utilization 0.80 --max-num-seqs 64
Reduce gpu_memory_utilization to 0.85 or lower and set --max-num-seqs appropriately: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --gpu-memory-utilization 0.80 --max-num-seqs 64
-
85% success Enable swap space via --swap-space to offload KV cache to CPU when GPU memory is tight: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --swap-space 16
Enable swap space via --swap-space to offload KV cache to CPU when GPU memory is tight: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --swap-space 16
中文步骤
将gpu_memory_utilization降低到0.85或更低,并适当设置--max-num-seqs: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --gpu-memory-utilization 0.80 --max-num-seqs 64
通过--swap-space启用交换空间,在GPU内存紧张时将KV缓存卸载到CPU: python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-2-7b-hf --swap-space 16
Dead Ends
Common approaches that don't work:
-
60% fail
Larger batch tokens consume more KV cache memory without freeing space; the error persists or worsens.
-
40% fail
Truncates all inputs, degrading model quality for long-context tasks; may still OOM if concurrent requests are high.