Published at 2024-04-21 | Last Update 2024-04-21
本文翻译自 2024 年 Meta/Facebook 的一篇文章: Building Meta’s GenAI Infrastructure。
2.4w H100
,分别用 RoCE/InfiniBand
网络;35w 张 H100
GPU,总算力相当于约 60w 张 H100
。由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。
以下是译文。
作为对未来人工智能的重要投资,Meta 打造了两个大规模 AI 集群,每个集群由 2.4w 张 GPU
组成,
本文分享其计算、网络、存储等设计细节。
Meta 很早就开始构建 AI 基础设施,但第一次对外分享是在 2022 年,介绍了我们的
Research SuperCluster
(RSC),它由 1.6w 个 A100
GPU 组成。
RSC 支撑了 Meta 第一代先进 AI 模型的开发,在训练 Llama/llama2
、
计算机视觉、NLP、语音识别、图像生成甚至编码等 AI 工作中发挥了重要作用。
精确数字是每个集群
24,576
张 H100 GPU。
我们的新一代 AI 集群充分吸收了 RSC 的成功和经验教训,这包括,
Meta 每天需要执行数以万亿计的 AI 任务,这就需要一个高度先进和灵活的基础设施。 我们自研了大部分硬件、软件和网络 fabric,使我们能进行端到端优化,确保数据中心的高效运行。
左侧:计算机柜,包括 GPU 服务器机框,置顶交换机,fabric 交换机等等;右侧:存储机柜。
Grand Teton
GPU 主机两个新集群都使用了 Grand Teton, 这是 Meta 开发的开放 GPU 硬件平台,我们已经将其贡献给了开放计算项目(OCP)。
从 2015 年的 Big Sur 平台开始, 我们就一直在开放设计我们的 GPU 硬件平台。
Grand Teton 实物图如下,
结合 Open Rack 电源和机架架构 等其他内部创新,我们能为 Meta 当前和未来应用程序快速量身定制新集群。
两个集群使用了不同的网络方案,但都是 400Gbps
接入。
基于 RoCE 网络,使用的交换机包括
TOR
)Wedge400
/ Arista 7800 ,自研模块化交换机 Minipack2。
使用 NVIDIA Quantum2 InfiniBand fabric。
两个方案作对比,使我们能够评估 RoCE/IB 在大规模训练中的适用性和可扩展性,
为设计和构建更大规模的集群提供了宝贵经验。
目前这两个不同组网类型的集群都能够运行大型生成式 AI 任务
(例如在 RoCE
集群上训练 Llama 3
),
而没有遇到网络瓶颈。
存储在 AI 训练中扮演着重要角色,然而相关的讨论确非常少。
最近的发展趋势可以看出,GenAI 任务越来越多模态,需要处理大量图像、视频和文本,因此对高性能存储的需求越来越强烈。 理想的存储方案除了提供良好的性能,还要做到低能耗。
我们 AI 集群的数据和 checkpoint 的存储方案:
这个解决方案使得
EB
级存储系统所需的灵活性和高吞吐。我们还与 Hammerspace 合作开发了一个并行网络文件系统(NFS), 它使工程师能够使用数千个 GPU 进行交互式调试, 因为代码改动能立即同步到环境中的所有节点。
Tectonic 分布式存储加上 Hammerspace,既能满足快速迭代,又不会限制规模。
无论是 Tectonic 还是 Hammerspace 方案,都基于
YV3 Sierra Point server platform,
使用了我们在市场上能够买到的最新高容量 E1.S SSD
。
除此之外,每个机架塞的服务器数量也进行了定制,以在服务器吞吐量、机架数量和能效之间取得一个平衡。
OCP 服务器就像乐高积木,使我们的存储层能够灵活扩展到未来更大 AI 集群的需求,而且不影响日常基础设施的使用和维护操作。
我们构建大规模 AI 集群的一个原则是,同时最大化性能和易用性,而不是为了一个而牺牲另一个。 这是训练最佳 AI 模型的重要基础。
测试系统设计的扩展性的最佳方法就是先构建出一个系统,然后不断优化它,并进行实际测试(模拟器有帮助,但作用有限)。 通过这个过程,我们比较了小集群和大集群的性能,定位瓶颈在哪里。 下图显示了当大量 GPU 相互通信时(at message sizes where roofline performance is expected)的 AllGather 性能(带宽归一化到 0-100),
small cluster performance (overall communication bandwidth and utilization) reaches 90%+ out of the box, but an unoptimized large cluster performance has very poor utilization, ranging from 10% to 90%. After we optimize the full system (software, network, etc.), we see large cluster performance return to the ideal 90%+ range.
与优化过的小型集群性能相比,我们的大集群一开始性能是比较差的。 为了解决这个问题,我们做了如下优化:
改进 job scheduler
,使其具备网络拓扑感知能力,这带来的好处:
结合 NVIDIA NCCL
,优化了网络路由策略,以实现最优的网络利用率。
以上两项优化使大集群的性能已经接近小集群。
除此之外,我们还
与训练框架和模型团队密切合作,不断改进基础设施。例如,
意识到可调试性(debuggability)是大规模训练的主要挑战之一。 在大规模情况下,定位到哪个 GPU 卡顿导致的整个训练作业变慢是非常困难的。 为此,我们正在构建 desync debug 或分布式 flight recorder 之类的工具,跟踪分布式训练的过程,以更快识别问题。
继续开发基础 AI 框架 PyTorch
,使其能支持数万甚至数十万 GPU 进行训练。
例如,我们已经定位到进程组初始化方面的几个瓶颈,将启动时间从有时的几小时减少到几分钟。
Meta 保持对 AI 软件和硬件开放创新的承诺,我们始终相信开源硬件和软件是帮助行业解决大规模问题的有用工具。 我们将
PyTorch
的最大和主要贡献者,继续推动这一 AI 软件框架的开发和普及。继续致力于 AI 研究社区的开放创新。
我们的 AI 工作建立在开放科学和协力合作的哲学之上。
本文介绍的两个 AI 训练集群是我们未来 AI 路线图的一部分。
预计到 2024 年底,Meta AI 基础设施建设将拥有 35w 张 H100
GPU,总算力相当于约 60w 张 H100
。
当前有效的方法可能不足以满足明天的需求,这也是为什么我们一直在各个方面不断评估和改进我们的基础设施, 包括物理硬件层、虚拟层、软件层以及更上面的业务层等等。 我们的目标是创建灵活可靠的系统,以支持日新月异的新模型和研究。