跳到主要内容

1 篇博文 含有标签「CUDA」

查看所有标签

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 到底支持到哪一版"这个问题的代码级答案。

三条结论先摆出来:

  1. V100 跑不了新版 vLLM,卡点不在编译产物,而在 Python 侧的 attention backend 门槛。 0.19.1 的 _C.abi3.so 里明明编进去了 sm_70,照样被 Python 层的 supports_compute_capability() 挡在候选之外——排查时别去 .so 的架构列表上找。
  2. 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 为证。
  3. 最阴的坑跟 V100 无关:pip install "xinference[all]" 会静默把 transformers 升到 5.x,把刚装好的 vLLM 0.10.0 弄坏——不报冲突、pip check 干净、vllm --version 通过,直到真正推理才炸。