企业宣传,产品推广,广告招商,广告投放联系seowdb

训练的万卡集群 LLM 阿里 HPN 针对大规模

一、背景

之前的文章中我们具体介绍了万卡 GPU 集群中的网络拓扑以及在万卡 GPU 集群中进行大规模 LLM 训练面对的挑战和解决方案;也进一步介绍了阿里云的集合通信调度框架 C4 和 C4 底层的阿里云新一代智算集群网络架构 HPN 7.0。不过上述 HPN 7.0 的相关介绍都是基于阿里官网或者之前的公开分享,最近阿里正式公布了 HPN 相应的 Paper,与我们之前了解到的稍有不同,此处进行相应补充。有关双上联、双平面介绍这里不再赘述。

对应的论文:​ ​​ ​

上面提到的几个介绍可以参考:

二、拓扑

如下图所示为我们之前介绍的拓扑方式(图片来自 Revolutionizing>

如下图 Figure 7 所示,在 HPN Paper 中的拓扑方式与我们之前看到的稍有不同(双上联、双平面等思路都是完全一样的),我们这里简单进行介绍:

后向网络:有收敛,使用每个节点 9 个 NIC 中的 NIC1-NIC9 这 8 个互联,主要用于大规模分布式训练,并且一个 GPU 连接一个 NIC。

前向网络:无收敛,使用每个节点 9 个 NIC 中的 NIC0 互联。为了支持更多的场景,比如训练/推理混部,模型传输,数据加载等场景。

一个 Segment 里面依然有 16 个 ToR 交换机,每个交换机 128 个 Gbps Port,但是有 60 连接 Spine 交换机,68 个连接节点的 NIC。

68 个 Gbps Port 可以对应 136 个 200Gbps NIC Port,也就是一个 Segment 里面 136 个节点,共 138*8=1104 个 GPU。

实际上 136 个节点中有 8 个是备份,以便节点故障(比如 GPU、网卡、硬盘、CPU 等)时可以快速替换。实际使用 128 个节点,共 1024 GPU,对应的网络收敛比为 (1024*)/(60**16)=1.067:1。

Pod:一个 Pod 中的 Segment 从 8 个变成 15 个,所以最多能支持 15*1024=15K GPU。

三、附录

3.1 单 Segment 千卡

如下图 Figure 6 所示,生产环境中 96.3% 的训练任务需要的 GPU 数都不超过 1024 GPU,也就是都可以放在 1 个 Segment 里,这样通信是非常高效的,不同 GPU 通信最多只用经过 1 跳即可:

3.2 多 Pod 互联

HPN 中在 Core 交换机上采用 15:1 的收敛比,也就是有额外 87.5% 的 Port 可以用于同一个 Pod 中的 Segment。所以同一个 Pod 的 Segment 从 8 个变成 15 个,GPU 数从 8192 增加到 15360,可以支持更多的任务在同一 Pod 内执行。同一个 Pod 内的 GPU 通信最多只用通过 3 跳即可,而如果是 3 Tier 网络,则最多可能需要 5 跳。

那么为什么没有直接搞成 2 Tier 网络呢?主要是还需考虑到技术的演进,模型在不断扩大,训练的数据也越来越多,相应需要的 GPU 也就越来越多,这就很难说是否未来的某一天需要超过 15K GPU 来训练大模型。与此同时,大模型训练通常会使用 DP(Data Parallelism)、TP(Tensor Parallelism)和 PP(Pipeline Parallelism)技术,而 PP 相对 DP 和 TP 的通信量要小得多,如下图 Table 3 所示(GPT-175B,TP=8,PP=8,DP=512),因此就可以考虑为其提供较低的通信带宽,比如跨 Pod。

3.3 大规模预训练对比

如下图 Figure 20 所示为作者原来使用的 DCN+ 集群拓扑,采用无收敛设计。一个 Segment 中只有 16 个节点,128 个 GPU,一个 Pod 只有 512 个 GPU:

作者用一个相同的 LLM 预训练任务进行了对比,该任务需要 2300+ GPU,共 288+ 个节点,训练几个月。在 DCN+ 中需要至少 5 个 Pod,19 个 Segment,而在 HPN 中只需要 3 个 Segment。如下图 Figure 15所示:

四、参考链接

本文转载自​​,作者:

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender