vLLM 在 Tesla V100 上能跑到哪个版本?—— 3090 + V100 混合机器的安装复盘
· 阅读需 20 分钟
这台机器上插着 1 张 RTX 3090(cc 8.6)和 2 张 Tesla V100(cc 7.0)。原以为"装个 vLLM、起个 xinference"是半天的事,实际从 05-02 折腾到 05-05,最后拆成两套互不干扰的 conda 环境才稳下来。
写这篇时我把当时的结论重新核了一遍,其中一条被实测推翻了:无论是当时的记录、还是社区里常见的说法,都是"新版 vLLM 在 V100 上根本起不来"。今天在同一台机器、同一张卡上实测:0.19.1 能起,也能出字——只是 V100 上的默认后端从 xformers 换成了 TRITON_ATTN,比 0.10.0 慢约 25%。所以这篇分两半:这台机器上真实发生了什么,以及"V100 到底支持到哪一版"这个问题的代码级答案。
三条结论先摆出来:
- V100 跑不了新版 vLLM,卡点不在编译产物,而在 Python 侧的 attention backend 门槛。 0.19.1 的
_C.abi3.so里明明编进去了sm_70,照样被 Python 层的supports_compute_capability()挡在候选之外——排查时别去.so的架构列表上找。 - V100 的可用区间不是"只有 0.10.0",而是 0.10.0 ~ 0.19.x。 0.10.0 会自动降级到 xformers(最省心,也实测最快);0.19.x 会自动降级到
TRITON_ATTN(能跑,慢一些)。真正断掉这条路的是 0.20.0 起官方构建删掉了sm_70,有 PR diff 为证。 - 最阴的坑跟 V100 无关:
pip install "xinference[all]"会静默把 transformers 升到 5.x,把刚装好的 vLLM 0.10.0 弄坏——不报冲突、pip check干净、vllm --version通过,直到真正推理才炸。
