
为什么多卡跑不满先看懂拓扑再调参在 AMD Instinct 集群上跑大模型最让人头疼的往往不是环境配不通而是明明八张卡都识别到了吞吐量却上不去。很多时候问题就出在“通信”这两个字上。AMD 的多卡互联依赖 Infinity Fabric这和 NVIDIA 的 NVLink 逻辑类似但软件栈完全不同。如果你直接套用 NCCL 的经验去配置 RCCLROCm Communication Collectives Library大概率会踩坑。今天就来聊聊在多卡并行场景下如何通过优化 RCCL 配置和系统拓扑把卡间通信的延迟压到最低让算力真正线性扩展。摸清家底PCIe 拓扑与 Infinity Fabric动手改配置前必须先搞清楚机器内部的“路况”。在 AMD 平台上GPU 之间的通信效率高度依赖于它们是否位于同一个 PCIe 根复合体Root Complex下或者是否通过高速的 Infinity Fabric 直连。如果数据被迫绕道 CPU 甚至经过低速以太网延迟会瞬间爆炸。推荐使用rocm-smi --showtopo命令来查看拓扑结构。你会看到一张矩阵图其中标记为NV#或XGMI在 AMD 文档中常指代 Infinity Fabric 链接的连接才是高速通道。理想状态下参与张量并行Tensor Parallelism的 GPU 应该彼此之间都是直连状态。如果发现某些卡之间的跳数Hop Count过多说明它们可能分散在不同的 NUMA 节点上这时候就需要在启动策略上做文章了。RCCL 核心配置让通信走对路RCCL 是 NCCL 在 ROCm 生态中的对应物负责处理多卡间的集合通信。默认情况下RCCL 会自动探测拓扑但在复杂的集群环境中自动探测未必最优。我们需要通过环境变量显式引导它。首先确保启用了正确的传输后端。在纯 GPU 直连的场景下强制使用 XGMI 链路通常能获得最佳性能exportNCCL_ALGORingexportNCCL_NET_GDR_LEVEL3exportRCCL_ENABLE_XGMI1这里NCCL_NET_GDR_LEVEL3允许 RDMA 直接访问显存减少 CPU 拷贝开销。而RCCL_ENABLE_XGMI1则是告诉 RCCL 优先利用 AMD 的高速互联技术。如果在日志中看到通信走的是PCIe而不是XGMI那就要回头检查拓扑或者驱动版本了。另外针对大规模集群有时需要调整超时时间以防误判exportNCCL_TIMEOUT3600拒绝资源争抢numactl 绑核实战多卡并行时每个 GPU 通常对应一个推理进程。如果这些进程随意调度 CPU 核心很容易出现多个进程争抢同一个物理核的情况导致上下文切换频繁通信延迟抖动。解决这个问题的利器是numactl。我们需要将每个进程绑定到其对应的 NUMA 节点上。假设我们有 8 张卡分布在两个 CPU Socket 上每路 4 张卡。启动脚本可以这样写# 启动 8 个进程分别绑定到对应的 NUMA 节点foriin{0..7};do# 假设前 4 张卡在 node 0后 4 张在 node 1if[$i-lt4];thennuma_node0elsenuma_node1finumactl--cpunodebind$numa_node--membind$numa_node\python-mvllm.entrypoints.api_server\--model${MODEL_PATH}\--tensor-parallel-size8\--devicecuda\donewait注意在 ROCm 环境下虽然设备标识可能仍显示为cuda为了兼容 PyTorch 接口但底层实际调用的是 HIP。通过--cpunodebind和--membind我们确保了计算进程只访问本地内存和本地 CPU 缓存极大降低了跨 socket 通信的延迟。验证线性扩展从理论到实测配置完成后必须通过基准测试来验证效果。可以使用 vLLM 自带的benchmark_serving.py脚本模拟高并发请求。重点观察两个指标每秒请求数RPS和每秒生成 Token 数。在一次实际的 MI300X 八路测试中未做绑核优化前随着并发数增加吞吐量在达到一定阈值后开始持平甚至下降曲线明显弯曲。这是因为通信瓶颈和 CPU 争抢限制了整体性能。而在应用了上述 RCCL 优化和numactl绑核策略后吞吐量曲线呈现出漂亮的线性增长。当并发数翻倍时系统处理能力也几乎翻倍直到接近硬件带宽的理论上限。这种线性扩展能力对于大规模集群部署至关重要。它意味着你可以放心地增加显卡数量来应对更大的模型或更高的流量而不必担心通信开销吃掉大部分收益。最后提醒一点生产环境中还要配合监控工具如 DCGM Exporter 适配版实时观察 RCCL 的通信耗时。如果发现某次迭代的 AllReduce 操作耗时异常大概率是拓扑感知出了问题需要及时介入排查。只有把底层通信链路理顺了上层的大模型推理才能真正跑得飞起。200小时GPU算力已就位快来领取https://marketing.csdn.net/questions/Q2604140858304426315?utm_sourceAIpaper