Misc. bug: Performance from sycl with server-intel on Qwen 3.6 dropped from 32t/s to 25t/s after update server-intel-b9159

用户通过 Docker Compose 部署 ghcr.io/ggml-org/llama.cpp:server-intel 镜像,使用 SYCL 后端在 Intel Arc Pro B50 显卡上运行 Qwen 3.6 35B 模型(Q4_K_XL_MTP 量化)。镜像从 server-intel

Misc. bug: Performance from sycl with server-intel on Qwen 3.6 dropped from 32t/s to 25t/s after update server-intel-b9159

Misc. bug: Performance from sycl with server-intel on Qwen 3.6 dropped from 32t/s to 25t/s after update server-intel-b9159

快速结论:在 Intel Arc 显卡(如 Arc Pro B50)上使用 Docker 镜像 `server-intel-b9159` 运行 Qwen 3.6 模型时,推理性能从 32.8 t/s 下降至 25.8 t/s(约 21% 性能损失)。优先排查 Docker 镜像中 Intel GPU 驱动栈版本,特别是 `libze-intel-gpu1` 的版本是否被回退。

问题场景

用户通过 Docker Compose 部署 ghcr.io/ggml-org/llama.cpp:server-intel 镜像,使用 SYCL 后端在 Intel Arc Pro B50 显卡上运行 Qwen 3.6 35B 模型(Q4_K_XL_MTP 量化)。镜像从 server-intel-b9144 更新到 server-intel-b9159 后,推理吞吐量出现明显下降。

报错原文

# 无显式报错,仅是性能退化
# b9144: 32.8 t/s
# b9159: 25.8 t/s

原因分析

经过代码审查和二分调试,确认性能下降不是由 llama.cpp 源码变更引起,而是由 Docker 构建过程中的提交 0f45f1a35(”docker: revert stable version of intel compute-runtime”)导致。该提交将 Intel GPU 驱动栈中的关键包降级:

  • libze-intel-gpu1 从 26.14.37833.4 降至 25.40.35563.10
  • intel-igc-core / intel-igc-opencl 从 2.32.7 降至 2.20.5
  • intel-opencl-icd 从 26.14.37833.4 降至 25.40.35563.10
  • libigdgmm12 从 22.9.0 降至 22.8.2

通过选择性重装包测试,确定 libze-intel-gpu1 从 25.40 升至 26.14 是恢复性能的关键(需同时升级 IGC 以满足依赖关系,但 IGC 本身对性能无明显影响)。

注意: 此回退是由于较新驱动在双 GPU 场景下存在回归问题(#21747),且 Intel compute-runtime 的 issue #921 和 XE 内核驱动问题(#8022)仍在修复中。

环境排查

  • 确认使用的 Docker 镜像标签(b9144 vs b9159)
  • 确认显卡型号(Intel Arc Pro B50 / Battlemage)
  • 确认 Docker 环境变量:ONEAPI_DEVICE_SELECTOR=level_zero:0GGML_SYCL_ENABLE_FLASH_ATTN=1
  • 检查 GPU 驱动包版本(通过 dpkg -l | grep intel-
  • 验证是否为单 GPU 环境(此问题主要影响单显卡用户)

解决步骤

  1. 对于单 GPU 用户(优先尝试): 在 Docker Compose 中添加自定义 entrypoint,启动时动态升级 libze-intel-gpu1 和 IGC 版本:
entrypoint:
  - /bin/sh
  - -c
  - |
    INTEL_LIB=$(find /opt/intel/oneapi/compiler -name "libsvml.so" 2>/dev/null | head -1 | xargs -r dirname)
    export LD_LIBRARY_PATH=/app:${INTEL_LIB}:${LD_LIBRARY_PATH:-}
    IGC=v2.32.7
    IGC_FULL=2_2.32.7+21184
    NEO=26.14.37833.4
    NEO_FULL=26.14.37833.4-0
    mkdir -p /tmp/neo && cd /tmp/neo
    wget -q https://github.com/intel/intel-graphics-compiler/releases/download/$IGC/intel-igc-core-${IGC_FULL}_amd64.deb
    wget -q https://github.com/intel/intel-graphics-compiler/releases/download/$IGC/intel-igc-opencl-${IGC_FULL}_amd64.deb
    wget -q https://github.com/intel/compute-runtime/releases/download/$NEO/libze-intel-gpu1_${NEO_FULL}_amd64.deb
    dpkg --force-overwrite -i *.deb
    exec /app/llama-server "$@"
  - --
command: >
  --model /models/Qwen3.6-35B-A3B-UD-Q4_K_XL_MTP.gguf
  --host 0.0.0.0
  --port 8081
  --ctx-size 131072
  --threads 8
  --no-mmap
  --temp 0.6
  --top-p 0.95
  --top-k 20
  --min-p 0.0
  --presence-penalty 0.0
  --repeat-penalty 1.0
  --n-predict 32768
  1. 等待官方修复: 跟踪 ggml-org/llama.cpp 仓库中 .devops/intel.Dockerfile 的更新,等待重新将 libze-intel-gpu1 和 IGC 版本提升至 26.14 / 2.32.7(或更高兼容版本)。
  2. 临时降级镜像: 如果问题紧急且不需要多 GPU 支持,可暂时回退到 server-intel-b9144 镜像。

验证方法

启动容器后,通过查看启动日志中是否出现 build_info: b9159-... 确认使用的镜像。通过 docker exec 进入容器执行 dpkg -l | grep libze-intel-gpu1 确认驱动版本为 26.14。运行推理请求,对比更新前后的 tokens/s 吞吐量是否恢复到 32 t/s 左右。

参考来源

ggml-org/llama.cpp #23160
关联 Issue:#21747(双 GPU 回归)
上游跟踪:intel/compute-runtime #921XE Kernel #8022

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 9201

发表回复

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