ValueError: No available memory for the cache blocks.

该报错通常出现在 vLLM 编译测试(例如 distributed-compile 的 CI 任务)中,当模型加载后可用 KV 缓存内存为负时触发。优先排查 GPU 显存是否不足,可尝试增大 --gpu-memory-utilization 参数(如 0.95),或升级 vLLM 到包含修复的版本。

快速结论:该报错通常出现在 vLLM 编译测试(例如 distributed-compile 的 CI 任务)中,当模型加载后可用 KV 缓存内存为负时触发。优先排查 GPU 显存是否不足,可尝试增大 --gpu-memory-utilization 参数(如 0.95),或升级 vLLM 到包含修复的版本。

适用环境:vLLM(CI 环境),PyTorch 2.13.0+cu130,Triton 3.7.1,NVIDIA L4 显卡,模型 BAAI/bge-multilingual-gemma2,max_model_len=2048,使用 VLLM_COMPILE + inductor 变体。

最快修复方案:该 CI 故障已由 PR #49749 修复。若遇到相同报错,请升级 vLLM 到包含该修复的版本(例如 commit 后的 main 分支)。若暂时无法升级,可尝试增大 --gpu-memory-utilization 至 0.95,但可能仍需进一步调低 max_model_len

注意事项:仅增大 --gpu-memory-utilization 不能保证完全解决,因为冷启动编译需要额外显存头空间;该方案未经长期验证,仅作为临时规避。

问题场景

在 vLLM 的 distributed-compile 或 RPC 测试中,运行测试用例 test_compile_correctness[test_setting3](模型 BAAI/bge-multilingual-gemma2TP=1, PP=1, bfloat16, max_model_len=2048)时触发。该失败出现在冷启动编译阶段的内存 profiling 环节,而非编译正确性验证。

报错原文

Model loading took 17.22 GiB memory
Available KV cache memory: -0.45 GiB
ValueError: No available memory for the cache blocks.

(本地重现时可用 KV 缓存内存约为 -0.46 GiB)

原因分析

可能原因:模型加载后已占满大部分显存,导致为 KV 缓存分配的内存预算为负。在 CI 环境中,默认 --gpu-memory-utilization 为 0.92,但冷启动编译(inductor 缓存未预热)时额外内存开销超出预算。近期 PyTorch/Triton 升级(PR #48155)被怀疑是环境变化因素,但尚未确认为根本原因。

环境排查

  • 确认 vLLM 版本是否在修复(PR #49749)之前。
  • 确认 PyTorch 版本(如 2.13.0+cu130)和 Triton 版本(如 3.7.1)。
  • 确认 GPU 型号及显存总量(如 NVIDIA L4 24 GiB)。
  • 检查当前 --gpu-memory-utilization 配置(默认 0.92)。

解决步骤

  1. 首选方案:升级 vLLM 到包含 PR #49749 修复的版本(例如拉取 main 最新 commit)。
  2. 临时规避(可能无法完全解决):
    a. 增大 --gpu-memory-utilization 参数,例如设置为 0.95 或更高(但需注意不能超过物理显存)。
    b. 降低 max_model_len(例如设为 1024 或 608),以减小 KV 缓存需求。
    c. 预热 inductor 缓存(重复运行一次测试),但该方法不适用于 CI 单次运行。
  3. 若修改参数后仍失败,使用 nvidia-smitorch.cuda.memory_summary() 检查实际显存占用,确认是否为持续回归。

验证方法

重新运行触发测试的命令,例如:

.venv/bin/python -m pytest -v -s 'tests/compile/fullgraph/test_basic_correctness.py::test_compile_correctness[test_setting3]'

若不再出现 ValueError: No available memory for the cache blocks. 且可用 KV 缓存内存为正数,则表示问题已解决。

参考来源

vllm-project/vllm #49672

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15228

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注