核心内容
1. PyTorch ↔ nvcc ↔ CUDA Toolkit
- 编译时必须完全匹配(锁 ABI)
nvcc是 CUDA Toolkit 的编译器,PyTorch 在编译 CUDA 扩展时必须使用与安装时一致的 CUDA Toolkit 版本,否则会导致 ABI 不兼容
2. vLLM ↔ torch
- vLLM 是 PyTorch 的底层 CUDA 扩展
- 编译 + 运行都依赖 PyTorch 的内部 API/ABI
- 必须精确绑定 torch 版本,不能随意升级或降级
3. 运行时只看驱动
- 运行时 CUDA 兼容性由 NVIDIA 驱动决定
- 驱动版本只要 ≥ 编译时的 CUDA 版本 即可向后兼容
4. --no-build-isolation 的作用
- 禁用隔离构建环境:阻止 pip 在构建时创建临时环境并自动下载依赖
- 强制复用当前环境:确保 vLLM 编译时直接链接当前已安装的 torch 和 CUDA Toolkit
- 避免版本漂移:防止 pip 自动拉取不同版本的构建依赖导致 ABI 不匹配,保证编译与运行环境的一致性