llama.cpp显存不足

failed to allocate buffer for kv cache 报错

报错原文

failed to allocate buffer for kv cache

是什么意思

权重已经加载成功,但按你要求的上下文长度,已经没有空间放 KV 缓存。后面通常还会跟一行 "failed to initialize the context"。

为什么会出现

  • 上下文(-c,或 Ollama 的 num_ctx)太长,权重剩下的显存装不下。

怎么解决

  1. 调低 -c。上下文长度页列出了常见显卡上常见模型能开多长;任意组合都可以用计算器算出最长上下文。
  2. 用 -ctk q8_0 -ctv q8_0 量化缓存(Ollama 用 OLLAMA_KV_CACHE_TYPE=q8_0),大约能多装一倍上下文。
  3. 或者换更小的量化档位,给缓存留出更多空间。

改参数之前,先核对大小

大多数显存报错其实是大小问题。把模型、量化档位、上下文和你的显卡填进显存计算器:如果那里是红色,什么参数都没法让它装下。

相关报错

核对来源

报错原文于 2026-10-26 从源码中读取核对。