Forum

提示 CUDA out of memo...
 
Notifications
Clear all

提示 CUDA out of memory(显存不足)怎么办?

1 帖子
1 Users
0 Reactions
13 查看
(@pandaadmin)
会员 Admin
已加入: 6 天 前
帖子: 161
Topic starter   [#15]

【官方常见问题精选】欢迎在下方补充你的经验或追问。

这是最常见的报错。显存主要被三部分占用:模型权重、上下文缓存(KV cache)、运行时开销。按下面的顺序处理:

  • 换更低的量化:比如从 Q8 换成 Q5_K_M 或 Q4_K_M,体积会明显减小。
  • 换更小的模型:例如从 14B 换到 7B~8B。
  • 减小上下文长度:-c(llama.cpp)或 num_ctx(Ollama)调小,KV cache 随之减少。
  • 减小批处理大小:如 llama.cpp 的 -b、-ub 参数。
  • 部分层放 CPU:降低 -ngl(GPU 层数),让一部分层在内存里运行,不会再报错,但速度会下降。Ollama 通常会自动分配。
  • 量化 KV cache:llama.cpp 支持相关选项,可以进一步节省显存,效果请自行验证。
  • 释放显存:关闭占用显卡的其他程序(浏览器硬件加速、游戏、其他推理进程)。用 nvidia-smi 查看占用。
  • Windows 用户:系统和桌面本身会占用一部分显存,实际可用比标称少。

在 vLLM 里还要留意 --gpu-memory-utilization 与 --max-model-len 两个参数:前者控制预留比例,后者限制最大上下文,调小后常能解决启动失败。

求助时请提供:显卡型号与显存、模型名与量化、上下文长度、使用的工具及版本、完整的报错信息。



   
引用
Share: