5090单卡部署大模型没有什么问题,但是如果使用TP多卡并行的话,目前vllm最新镜像v0.10.1里还是用的nccl 2.26.2 这个版本的nccl是不支持张量并行TP的。如果用PP流水线并行的话会面临这GPU运算时间气泡导致性能降低。 所以这是一个不能绕过去的问题。 为了解决这个问题,如果我们直接使用代码的话,其实就是这两句代码
pip uninstall nvidia-nccl-cu12
pip install nvidia-nccl-cu12==2.26.2.post1
换一个包就解决了,但是如果在vllm里的话,要么我们就等新版本,要么我们就自己打一个镜像。 新建一个Dockerfile 内容是:
FROM vllm/vllm-openai:latest
RUN python3 -m pip uninstall nvidia-nccl-cu12 -y && python3 -m pip install nvidia-nccl-cu12==2.26.2.post1
运行命令:
docker build -t vllm-openai-nccl .
然后后面使用docker命令
docker run --gpus all -e NCCL_P2P_DISABLE=1 --ipc host vllm-openai-nccl --model Qwen/Qwen3-Coder-30B-A3B-Instruct --tensor-parallel-size 4
这样就可以张量并行了。 参考资料: https://github.com/vllm-project/vllm/issues/20862