快速结论:这个报错通常发生在使用 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-rt 和 intel-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
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


