赞
踩
目录
在上一篇《聊聊GPU通信那些事》中,我们谈到了支持GPU通信的一些关键技术要点。
接下来,我们就来谈谈GPU集群网络的优化方法。
通过网络将更多GPU连接起来,构成一个GPU资源池,可以满足大规模、分布式AI训练任务的需要。因此,我们就针对高性能、大规模、高可用这3个目标分别展开讨论。
我们现在的AI训练任务绝大多数属于同步训练,即每个batch结束之后,所有GPU之间需要等待数据同步完成后,才能开始下一个batch。
从这个图可以看到,通信时长很大程度上取决于在整个通信过程中,最慢的那个环节。与单机不同,多机之间的网络带宽是比单机内部的带宽要低很多的。比如单机内部最新的NVLink 3.0带宽高达600GB/s;而多机之间的网络最新的InfiniBand NDR是400Gb/s ,HDR是200Gb/s。注意单位,一个是GB,一个是Gb,几乎差了一个数量级。
其次是复杂程度,单机内部的GPU互联,相对来说还是比较简单的,通过NVLink可以实现全连接结构。跨服务器走网络,特别是规模大了之后,网络结构就会变复杂,对硬件要求也更高。
所以,在性能方面的优化手段:
优化方法一:速率提升。网卡速率的提升对AI来说是一大利好,从40G到最新的400G,逐级跃升,数据传输的带宽瓶颈逐步被打开。需要注意的是,网卡并不是孤立的存在,需要服务器和网络架构上的配合。比如PCIe总线的支持,网络交换机Serdes支持。具体见下表。
优化方法二:数量提升。前期的GPU服务器通常都是少数几张网卡,CPU和GPU共用。现阶段,由于通信需求的提升,我们可以给CPU准备单独的1-2张网卡,给GPU准备额外的4-8张网卡。这样就可以成倍数提升单机接入带宽。同样的,增加网卡数量,也需要PCIe的支持和网络交换机支持。
在带宽得到保障之后,接下来就是考虑如何充分利用带宽。传统的TCP网络高度依赖CPU对报文的处理,这种方式几乎很难把所有带宽全部用满。因此,在AI环境中,要使用大规模集群训练,RD
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。