微信扫码
与创始人交个朋友
我要投稿
最新公布网络方案的
是红衣教主麾下的360智算中心
最新在 GitHub 上开源的360智脑7B
可以支持 360K (约 50 万字)的文本长度
这也成为了目前国产开源模型中文本长度之最
2 张存储网卡(负责带内管理、访问存储)
2张存储网卡采用的是25Gb/s的网卡,通过PCIe直连CPU,主要有2个用途,第一个是带内管理,如ssh登录、监控采集等,第二个是访问分布式存储,如读取训练数据、写Checkpoint等。大语言模型训练过程中,对于文本类数据读取量级要求并不高,且一般都会采用异步加载的方式,此时25Gb/s的网卡带宽可以满足需求。
但是模型训练过程中保存checkPoint时,会有瞬时大量写流量,此时25Gb/s的网卡会成为瓶颈,阻塞训练的正常进行。为了平衡成本与性能的问题,我们内部采用了软硬件结合的方案,首先两张网卡采取bond4的网卡绑定方式,可以将整体带宽提高到50Gb/s,虽然牺牲了一定的容错能力,但是极大提高了网络的吞吐量。另外我们也在训练框架层做了2个方面的优化,第一个优化是通过分布式的方式存储checkpoint,将整个模型的checkpoint部分分别在不同的节点上保存以减少网卡的压力。第二个优化是多阶段异步保存,第一个阶段将模型与优化器从显存拷贝到内存,不阻塞模型的训练,第二个阶段将内存中的模型拷贝到分布式存储,其中第一个阶段结束后就可以继续训练了,第二个阶段可以在后台异步进行。软件层的优化主要是在基于网卡受限的场景下,通过减少checkpoint保存时间最大化GPU有效训练时长,最后经过验证,智脑7B的模型保存时间从最开始的383s降低到5s,性能提升约70倍。
4 张 IB 网卡
我们内部采用的是4张200Gb/s 的Mellanox CX6网卡,采用200Gb/s网卡的原因是同主机GPU与相邻的网卡之间通过PCIe Gen4 Switch芯片通信,PCIe Gen4 x16的通信带宽是单向32GB/s,网卡的通信性能是200Gb/s = 25GB/s,接近PCIe的通信性能,如果采用400Gb/s的CX7网卡,此时受限于PCIe Gen4的带宽,CX7的网卡性能很难发挥出来。NVIDIA推荐的单台A100配备8张CX6网卡,我们经过验证和调研,Megatron-LM在32台A100节点上跑7.5B模型的时候,4张网卡单次迭代时间是2张网卡一半,但是8张网卡相比于4张网卡提升非常小,因此为了节约成本,我们采用了4网卡的方案。硬件拓扑为每块PCIe Gen4 Switch配备一张网卡,与之相邻的2块A800可以启用GPU Direct RDMA通信,可以通过nvidia-smi topo -m佐证查看,经过实际验证,开启了GDR后大模型训练速度最高可以提升50%。
6 块 NVSwitch 芯片
8块GPU通过6块NVSwitch芯片全互联,在A100中每块GPU与每块NVSwitch芯片由2条双向25GB/s的NVLink3连接,所以每块GPU共有12条双向25GB/s的lane,即12x25x2 = 600GB/s。A800在NVLink这里做了阉割,只有8条,所以变成了8x25x2 = 400GB/s,很多人都担心在大规模分布式训练时A800的NVLink会成为瓶颈,我们经过多次内部验证,至少在跑千卡训练任务时,NVLink并不是瓶颈。
Scale Out网络:
借鉴NVIDIA DGX-SuperPod-A100架构,如上图所示为SuperPod的一组基本单元 SuperPod SU(Scalable Unit),每个SU包含200台A800以及4台Leaf交换机,这20台节点间的同号网卡之间通过单台Leaf即可直接通信。
上图中展示的是 200 台 A800 的网络架构,即10组SU的组合,其中 Leaf 层和 Spine 层采用全互联架构,这种架构下,即使出现极端情况Spine交换机只剩下一台存活,整个集群仍能正常通信。但是Leaf交换机或者Leaf交换机与节点间的线缆、光模块等出现异常,会影响正常训练。
不同GPU的通信路径如下:
同一个Node内的GPU通过NVLink通信。 同一个SU内不同Node的挂在同号网卡下的GPU可以通过Leaf交换机通信,即同轨通信,现在大模型训练的通信基本都为同轨通信,通信路径为HCA -> Leaf -> HCA。 同一个SU内不同Node的挂在不同号网卡下的GPU需要跨Spine通信,即跨轨通信,这种通信方式在大模型训练中非常少,通信路径为HCA -> Leaf -> Spine -> Leaf -> HCA。 不同SU的GPU需要跨Spine通信,通信路径为HCA -> Leaf -> Spine -> Leaf -> HCA。 当前的网络架构上限是200台A800主机,如果此时想要支持更多的GPU,需要将2层的架构升级为3层,即在Spine层之上再增加一层 Core Compute Switch,来支持更大规模的GPU集群。
360智算中心在RoCE V2和IB这两种主流的高性能网络方案都有落地。
A800共有6张网卡,其中以太网卡lan0、lan1做bond4后作为主机的管理平面网络,做南北向通信,IB网卡lan2~lan5作为主机的数据平面网络,做东西向通信。
主网络插件VPC负责维护整个k8s集群管理平面的网络,对应每个pod中的eth0网络接口。第三方网络插件multus cni、macvlan等主要负责维护整个k8s集群数据平面的网络,对应每个pod中的net1~net4网络接口。
network-operator是NVIDIA推出的专门用来在k8s集群中启用RDMA网络的解决方案,包含以下核心组件:
mofed:Mellanox网卡驱动,推荐将网卡驱动直接部署到物理机上,不通过network-operator的容器化方式部署,这样可以提高整个系统的稳定性,否则当network-operator出现异常时,会导致宿主机失联,只能通过BMC方式连入主机。
rdma-shared-device-plugin:将服务器上的mlx网卡以k8s扩展资源的形式暴漏出来,供业务申请使用。
Secondary CNI:在k8s集群中建立第二个网络平面,以支持分布式训练多机多卡的网络通信。
Multus-cni:k8s环境中的容器多网络方案,能够attach多个网络接口到pod中,是meta类的cni插件,能够和第三方插件搭配使用并且不会产生冲突。 container-networking-plugins:包含多个cni插件,主要利用macvlan插件,为pod中申请的mlx资源创建新的mac地址以便从新地址转发流量。 whereabouts:负责在集群范围内对挂载到pod中的mlx网卡分配对应的ip地址
相比RoCE v2网络,IB网络有以下区别:
除了IB网卡外,还需要专门的IB交换机支持,通过UFM来统一管理IB网络。
在k8s集群中不需要通过第三方网络组件建立第二网络平面,此时可以不需要再配置Macvlan。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-08-13
2024-04-26
2024-08-21
2024-07-09
2024-06-13
2024-08-04
2024-04-11
2024-07-18
2024-07-01