Eval bug: [SYCL] Fence expiration time out – Sudden hang at exact same point in prompt processing

用户在 llama.cpp 的 llama-server 中,使用 SYCL 后端 (Intel Iris Xe Graphics)加载 Gemma 4 26B 量化模型(Q4_K_XL GGUF),处理约 95K 令牌的提示词。GPU 在约 60% 处(56982 tokens)突然无工作负载,而

快速结论:该报错发生在使用 Intel SYCL 后端(GPU)处理超长提示词(约 95K tokens)时,GPU 在进度约 60% 处突然停止工作,触发 i915 驱动的 Fence expiration time out。优先排查 Linux 内核 i915 驱动的超时限制,并尝试调整 batch 参数或加载 xe 驱动。

问题场景

用户在 llama.cppllama-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)

解决步骤

  1. 可优先尝试:减少 batch 大小。将 LLAMA_ARG_BATCH 从默认值改为 512(或更低至 256),将 LLAMA_ARG_UBATCH 改为 128。用户通过此调整成功越过 60% 进度点。
  2. 或者:尝试使用 xe 驱动(Intel 现代 GPU 驱动)替代 i915,但注意 xe 驱动下可能出现 VM worker error: -12 错误,不一定完全可靠。
  3. 或者:修改内核启动参数,禁 i915 驱动超时限制。在 GRUB 或系统内核参数中添加:
    i915.request_timeout_ms=0 i915.enable_hangcheck=0。用户确认此方法可解决问题。

验证方法

重新运行相同的超长提示词(>60K tokens),检查 journalctldmesg 中是否不再出现 “Fence expiration time out” 报错,同时确认 GPU 能保持工作负载直至 prompt 处理完成(进度超过 60% 且没有挂起)。

参考来源

ggml-org/llama.cpp #25350

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 16453

发表回复

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