快速结论:该报错发生在使用 Intel SYCL 后端(GPU)处理超长提示词(约 95K tokens)时,GPU 在进度约 60% 处突然停止工作,触发 i915 驱动的 Fence expiration time out。优先排查 Linux 内核 i915 驱动的超时限制,并尝试调整 batch 参数或加载 xe 驱动。
问题场景
用户在 llama.cpp 的 llama-server 中,使用 SYCL 后端(Intel Iris Xe Graphics)加载 Gemma 4 26B 量化模型(Q4_K_XL GGUF),处理约 95K 令牌的提示词。GPU 在约 60% 处(56982 tokens)突然无工作负载,而 CPU 单线程仍保持 100% 占用。Docker 环境为基础(ghcr.io/ggml-org/llama.cpp:full-intel),使用 i915 驱动。
报错原文
Fence expiration time out i915-0000:00:02.0:llama-server[81887]:28592c!
Fence expiration time out i915-0000:00:02.0:llama-server[81887]:285946!
Fence expiration time out i915-0000:00:02.0:llama-server[81887]:285944!
原因分析
可能原因:i915 内核驱动的 GPU 请求超时机制(fence expiration timeout)被触发。当 SYCL 后端提交的 GPU 计算任务执行时间超过默认超时限制时,驱动会中止该任务,导致 llama.cpp 在处理大量 prompt token 时突然挂起。在超长序列处理中,单次 GPU 计算时间可能超出 i915 的默认超时阈值。
环境排查
- 确认 Linux 内核版本及 i915 驱动版本(使用
dmesg | grep i915查看) - 确认 GPU 型号(报错中为 Intel Alder Lake-P GT2 [Iris Xe Graphics])
- 确认 Docker 环境是否正确传递了 GPU 设备(
/dev/dri权限) - 确认 SYCL 后端版本(llama.cpp 9870,IntelLLVM 2025.3.3)
- 确认可用内存是否充足(用户报告剩余约 13GB RAM)
解决步骤
- 可优先尝试:减少 batch 大小。将
LLAMA_ARG_BATCH从默认值改为 512(或更低至 256),将LLAMA_ARG_UBATCH改为 128。用户通过此调整成功越过 60% 进度点。 - 或者:尝试使用
xe驱动(Intel 现代 GPU 驱动)替代 i915,但注意xe驱动下可能出现VM worker error: -12错误,不一定完全可靠。 - 或者:修改内核启动参数,禁 i915 驱动超时限制。在 GRUB 或系统内核参数中添加:
i915.request_timeout_ms=0 i915.enable_hangcheck=0。用户确认此方法可解决问题。
验证方法
重新运行相同的超长提示词(>60K tokens),检查 journalctl 或 dmesg 中是否不再出现 “Fence expiration time out” 报错,同时确认 GPU 能保持工作负载直至 prompt 处理完成(进度超过 60% 且没有挂起)。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


