一、多卡并行方式
多卡并行方式,分为张量并行(Tensor Parallelism)和数据并行(Data Parallelism)。
- 张量并行是将模型的不同层分布到不同GPU上。
- 而数据并行是每个GPU处理不同的输入数据。
VLLM多卡并行主要依赖 张量并行(Tensor Parallelism) 实现模型分布式推理。因此我们采用这种方案。
二、关键配置参数与策略
参数 | 作用说明 | 推荐值 |
---|---|---|
CUDA_VISIBLE_DEVICES | 为当前进程划定可使用的GPU范围 | 0,1,2,3 根据GPU显卡数量设定 |
–tensor-parallel-size | 指定GPU并行数量(需与CUDA_VISIBLE_DEVICES数量一致) | 2/4/8(根据模型规模调整) |
–gpu-memory-utilization | 显存利用率阈值(0.9~0.95为高负载场景推荐) | 0.7~0.95 |
–max-model-len | 最大输入长度(需根据GPU显存动态调整) | 4096~16384 |
示例:
CUDA_VISIBLE_DEVICES=0,1,2,3 \
vllm serve /path/to/model \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9
三、 高级优化策略(可选)
(1)通信优化
NCCL配置:
- 确保NCCL版本≥2.14(支持自动拓扑检测)
- 设置环境变量提升带宽:
export NCCL_ALGO=Tree
export NCCL_SOCKET_IFNAME=eth0 # 指定高速网络接口
硬件拓扑适配:
- 优先使用NVLink互联的GPU组(通过nvidia-smi topo -m查看连接方式)
- 避免跨PCIe Switch的GPU分配(延迟增加30%+)
(2)显存管理
- 大模型低显存 启用–swap-space 16G(利用主机内存扩展交换空间)
- 长序列推理 降低–gpu-memory-utilization至0.7~0.8,避免OOM
- 动态批处理 默认启用(无需配置),通过–max-num-seqs 256控制并发量