使用vllm ray 在多机多卡上部署推理服务

使用vllm ray 在多机多卡上部署推理服务,有几点疑问:

1、节点数量 有没有要求?例如 必须偶数?

2、GPU卡数量有没有要求?例如 必须是1,2,4,8…?

3、如果节点间有多条网络链路:以太+IB,如何指定多节点的通信(怎么指定以太、怎么指定IB)?指定IB对GPU卡有没有要求?

  1. 节点数量没有必须为偶数的要求,但建议每个节点的环境(模型路径、Python包等)保持一致,且节点间需能互相通信。
  2. GPU卡数没有必须为2、4、8等幂次的要求,但 tensor_parallel_size 参数需能被模型层数整除,否则会报错。通常建议每节点GPU数一致,便于资源分配和性能优化。
  3. 多条网络链路(如以太网+IB)时,推荐使用高带宽低延迟的IB。可通过设置 NCCL_SOCKET_IFNAME=ib0(或实际IB网卡名)指定IB通信,或 NCCL_SOCKET_IFNAME=eth0 指定以太网。IB对GPU没有特殊要求,但需确保所有节点的IB网卡和驱动配置正确,且NCCL能识别。详细配置见官方文档

需要更详细的操作步骤或配置示例吗?

Sources:

VLLM_HOST_IP、GLOO_SOCKET_IFNAME、NCCL_SOCKET_IFNAME、NCCL_IB_DISABLE、NCCL_DEBUG 这几个参数分别表示什么含义,有什么关联

VLLM_HOST_IP 用于指定 vLLM 节点的通信 IP,GLOO_SOCKET_IFNAME 和 NCCL_SOCKET_IFNAME 分别指定 GLOO 和 NCCL 通信所用的网络接口(如 eth0、ib0),NCCL_IB_DISABLE 控制是否禁用 InfiniBand(0 表示启用,1 表示禁用),NCCL_DEBUG 用于设置 NCCL 的日志级别(如 INFO、TRACE),便于调试网络通信问题。这些参数主要用于分布式部署时网络通信的配置,确保各节点间高效、正确地通信。详细说明

它们之间的关联在于:VLLM_HOST_IP 决定节点间通信的 IP,GLOO/NCCL_SOCKET_IFNAME 决定具体用哪个网卡,NCCL_IB_DISABLE 控制是否用 IB 网络,NCCL_DEBUG 用于调试上述通信过程。合理配置这些参数有助于提升分布式推理的稳定性和性能。

Sources:

1、如果VLLM_HOST_IP指定的是IB网络的IP,那么GLOO_SOCKET_IFNAME 和 NCCL_SOCKET_IFNAME 就 需要指定ib口(如ib0)? 且 NCCL_IB_DISABLE 需要设置为0 (启用)? 这3组是联动的,需要保持对应?如果不对应会出现什么问题?

2、GLOO_SOCKET_IFNAME 和 NCCL_SOCKET_IFNAME 的值是保持一致的吗?

  1. 是的,如果 VLLM_HOST_IP 指定为 IB 网络的 IP,则 GLOO_SOCKET_IFNAME 和 NCCL_SOCKET_IFNAME 也应指定为对应的 IB 网卡(如 ib0),NCCL_IB_DISABLE 需设为 0(启用 IB)。这三组参数需保持对应,否则可能导致节点间无法通过 IB 正常通信,出现连接失败或性能低下等问题。官方说明

  2. GLOO_SOCKET_IFNAME 和 NCCL_SOCKET_IFNAME 的值建议保持一致,除非你有特殊需求(如分别用不同网卡做 GLOO 和 NCCL 通信)。通常统一为 ib0 或 eth0 更易于排查和维护。相关讨论

Sources: