TCP和RDMA的对比?为什么AI训练需要RDMA?
TCP:内核协议栈、需多次拷贝(用户态↔内核↔网卡)、CPU 参与每包处理,延迟与 CPU 占用较高,但通用、易部署。RDMA(Remote Direct Memory Access):零拷贝、内核旁路,网卡直接读写本端/对端用户态内存,CPU 仅投递/回收描述符,低延迟、高带宽、低 CPU,需专用网卡(InfiniBand 或 RoCE)与驱动。
分布式训练中 all-reduce 等集合通信带宽敏感、延迟敏感,且数据量大、持续时间长。TCP 的拷贝与协议栈开销会占大量 CPU、成为瓶颈;RDMA 把数据从 GPU/内存直接经网卡到对端内存,减少 CPU 与拷贝,提高通信效率,缩短每 step 时间。多机多卡训练里,通信常是瓶颈,RDMA 能显著提升扩展性与吞吐。
RDMA 需硬件与网络支持(IB 或 RoCE、PFC/ECN 等);部署与排障复杂。TCP 无特殊硬件、易运维。小规模或无 RDMA 环境可用 TCP + 优化(如 GPU Direct RDMA 的替代方案);大规模训练集群普遍采用 RDMA。
| 返回模块 | 返回总览 |