RuntimeError: Failed to infer device type` and torch warns `XPU device count is zero!`.

这个报错通常发生在使用 vLLM 官方 docker/Dockerfile.xpu 构建的镜像(如 v0.25.1)时,镜像内 LD_LIBRARY_PATH 缺少 /opt/venv/lib ,导致动态链接器找不到 SYCL/UR 库,torch 检测不到 XPU 设备。优先排查 LD_LIBRA

快速结论:这个报错通常发生在使用 vLLM 官方 docker/Dockerfile.xpu 构建的镜像(如 v0.25.1)时,镜像内 LD_LIBRARY_PATH 缺少 /opt/venv/lib,导致动态链接器找不到 SYCL/UR 库,torch 检测不到 XPU 设备。优先排查 LD_LIBRARY_PATH 是否包含 /opt/venv/lib,或直接使用包含 torch 2.13 的 nightly 镜像。

适用环境:vLLM v0.25.1(源码构建,docker/Dockerfile.xpu 未修改);宿主机 Ubuntu;kernel 7.0(xe 驱动);2× Intel Arc Pro B70(Battlemage G31);Docker 通过 --device /dev/dri 透传设备;容器内 Python 3.12。

最快修复方案:升级到包含 torch 2.13 的 vLLM XPU nightly 镜像(评论已确认该版本无需 /opt/venv/lib workaround 即可正常启动并服务)。如果必须停留在 torch 2.12 栈,验证过的替代方法是在启动容器时用 -e LD_LIBRARY_PATH=/opt/venv/lib:<原镜像内置值> 覆盖环境变量。

注意事项:评论中提到 nightly 镜像可能尚未更新完毕,需要等待 3~5 小时;针对 torch 2.12 的 PR #48634 未被合并,但作为 workaround 仍然有效,只是不是官方推荐路径。

问题场景

用户使用未修改的 docker/Dockerfile.xpu 在 tag v0.25.1 下构建镜像,并通过 Docker 的 --device /dev/dri 将 Intel Arc Pro B70 显卡传入容器。运行 vLLM 时,torch 报告 XPU 设备数为 0,vLLM 因无法推断设备类型而退出。

报错原文

RuntimeError: Failed to infer device type, please set the environment variable `VLLM_LOGGING_LEVEL=DEBUG` ...
/opt/venv/lib/python3.12/site-packages/torch/xpu/__init__.py:74: UserWarning: XPU device count is zero!

原因分析

根本原因是镜像内烘焙的 LD_LIBRARY_PATH 没有包含 /opt/venv/lib。容器中 intel-sycl-rtintel-cmplr-lib-ur wheel 包会把 libsycl.so* 和 UR adapter 库安装到 /opt/venv/lib,但缺失该路径导致动态加载器无法找到这些库。Issue 中的二分定位显示:Level-Zero 通过 ctypes 枚举正常(能找到 1 个 driver),但 SYCL/UR 枚举得到 0 devices,说明问题发生在 UR 层,而不是内核驱动或 Level-Zero loader。

环境排查</h3

参考来源

vllm-project/vllm #48625

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 16310

发表回复

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