按:本文含NV-H100计算集群真实数据,实测训练时:文件写入、训练期间、检查点写入三个主要阶段的存储系统IO/带宽特征,并讨论了基于异步写入扩展检查点写入带宽。
导入
NVIDIA:LLM集群存储IO行为-Fig-1
- 自2022年底ChatGPT聊天机器人出现以来,生成式AI已广为人知。
- 大型语言模型(LLM)应用是此类能力的核心。
- 模型在过去几年里变得越来越大、越来越复杂。
- LLM训练的计算、存储和IO模式更接近"HPC"而非单节点ML AI或推理工作负载。
- 需要具有性能存储的大规模性能平台。
- 需要在保持可扩展性的同时集成到更安全的环境中。
右图显示:2012年到2024年AI模型训练计算能力(PFLOPs)的增长趋势
NVIDIA:LLM集群存储IO行为-Fig-2
训练计算平台(EosDGXAI超级计算机的缩小版)
- H100SuperPOD部署
- 2023年11月TOP500排名第9(121.40PF)
- 576个NVIDIA DGX系统,每个配备八个H100 GPU(下文测试非全量算力)
- Quantum-2NDRInfiniBand网络,具有独立的计算(8-rail)和存储(2-rail)结构
存储系统
NVIDIA:LLM集群存储IO行为-Fig-3
DDN EXAScaler Lustre 存储平台的主要特点包括:
- 硬件配置:
- 使用12个DDN AI400X2存储设备,每个配备24个NVMe驱动器,提供高速数据访问。
- 每个设备由8个200Gb/s InfiniBand连接,确保高带宽网络连接。
2、存储架构:
- 采用Lustre文件系统(版本2.14.0),经过多项定制优化。
- 使用分布式命名空间(DNE)和自动轮询技术管理元数据目标(MDT)。
- 对象存储目标(OST)采用PFL默认条带化,优化数据分布。
3、性能特性:
- 峰值带宽达到约1TB/s,显示出极高的数据传输能力。
- 系统性能超出当前实验需求,不构成瓶颈。
4、高级功能:
- 支持PCC-RO(实现高速缓存),可通过用户标志为每个Slurm作业单独启用。
- 提供项目配额管理,有助于资源分配和控制。
- 支持子目录挂载,增强数据集管理和访问控制能力。
- 集成Kerberos认证,提升整体安全性。
NVIDIA:LLM集群存储IO行为-Fig-4
使用Megatron-LM框架进行大规模语言模型(LLM)训练的设置。主要特点包括:
1、开源框架:使用NVIDIA开发的Megatron-LM开源框架来训练和运行LLM模型。
2、模型规模增长:
- 之前的模型(LUG2021)有130亿参数。
- 新模型大幅扩展到3400亿参数,数据集规模达到8T。
3、研究重点:专注于训练工作负载,特别关注I/O性能在大规模模型训练中的变化。
4、并行化策略:
- 采用张量并行、流水线并行和数据并行的组合策略。
- 这种多维并行化方法使模型训练可扩展到10,000 GPU的规模。
5、性能和可扩展性:通过使用多种并行化技术,系统能够有效地处理超大规模模型,展示了在极端规模下的训练能力。
6、I/O演变研究:通过比较新旧模型设置,研究I/O模式和性能如何随模型规模增长而变化。
负载分析
NVIDIA:LLM集群存储IO行为-Fig-5
负载特征。
上图为GPU计算时负载(含训练和检查点写入);
下图是训练时存储读写带宽,后文详细展开分析。
NVIDIA:LLM集群存储IO行为-Fig-6
IO行为特征(区分3个阶段)
- 初始化读取阶段-仅一次
- 计算阶段-迭代GPU处理
- 检查点写入阶段-每N次计算迭代
三个关键阶段及其特征:
1、初始化读取阶段:
- 仅在训练开始时执行一次。
- 图表显示了一个短暂但显著的读取峰值,约为100 GB/s。
2、计算阶段:
- 涉及迭代的GPU处理。
- 图表中表现为较长的平稳期,I/O活动最小。
3、检查点写入阶段:
- 每N次计算迭代后执行。
- 图中显示为周期性的写入活动,峰值约为75 GB/s。
- 使用缓冲I/O来管理这些写入操作。
NVIDIA:LLM集群存储IO行为-Fig-7
聚焦初始化读取阶段的读IO行为
计算阶段的读取非常低:约3MB/s
I/O很小:< 4KB
随着节点数量增加,总读取量呈线性增长。
NVIDIA:LLM集群存储IO行为-Fig-8
聚焦检查点写入阶段的写IO行为。
写入阶段,GPU使用率极低,处于等待状态。
NVIDIA:LLM集群存储IO行为与鉴权机制-Fig-9
- 检查点大小为4.3TiB
- 检查点由少数节点完成(模型并行)。峰值75 GB/s(约12个节点)
- 每个客户端以约6GB/s的速度写入(可用写入能力为93GB/s)
- 检查点持续90秒
在这个模型版本中,峰值IO随模型并行度而扩展,而不是随节点数量扩展。
检查点异步写入
NVIDIA:LLM集群存储IO行为-Fig-10
并行检查点写入,提高效率。
- 通过人为模拟检查点,我们可以运行工作负载写入IO的完全并行版本
- 下面是在48个节点上进行10次检查点的示例
- 每次检查点持续16秒,峰值275GB/s(约4倍加速)
此时,峰值IO随模型大小和节点数量而扩展,潜在优化来自研究异步检查点。
这种并行检查点方法对LLM训练和存储系统设计有几个重要影响:
1. 显著减少了检查点操作的时间,可能大幅提高整体训练效率。
2. 存储系统需要能够支持更高的瞬时I/O带宽,以适应并行写入的需求。
3. 并行化策略改变了I/O负载分布,从集中在少数节点转变为分散到多个节点。
4. 异步检查点的潜力暗示了进一步优化的可能性,可能通过降低检查点对计算的干扰来提高效率。
5. 存储系统的设计需要考虑到更频繁、更短暂但强度更高的I/O峰值。如何实现并行/异步检查点方法?
在AI训练场景中实现并行/异步检查点(Checkpoint)写入是一个重要的性能优化策略。这种方法可以显著减少训练过程中的I/O等待时间,提高整体训练效率。以下是实现这一目标的关键步骤和考虑因素:
1、异步写入机制:
- 利用异步I/O操作,将检查点数据写入存储系统。
- 使用单独的线程或进程来处理检查点写入,避免阻塞主训练循环。
2、数据缓冲:
- 实现内存缓冲区,临时存储检查点数据。
- 当缓冲区达到一定大小或经过特定时间间隔时,触发异步写入操作。
3、并行写入:
- 将大型检查点文件分割成多个小块。
- 使用多线程或分布式系统并行写入这些数据块。
4、压缩优化:
- 在写入之前对检查点数据进行压缩,减少I/O负载。
- 选择平衡压缩率和CPU开销的算法,如LZ4或Snappy。
小结-LLM训练时IO行为
NVIDIA:LLM集群存储IO行为-Fig-11
1. 计算阶段的读取带宽非常低:
- 文件系统(FS)能力应专注于小IO(或其他工作量)。
2. 检查点可扩展性可以支持大的写入峰值:
- 这对文件系统提出了更高的需求。
3. 未来的检查点改进可能会再次改变IO模式:
- 需要依赖CPU和网络织物的有效并发性能。
---【本文完】---
公众号:王知鱼,专注数据存储、云计算趋势&产品方案。
PPT取自NVIDIA高级工程师Aurelien Degremont/Nathan Dauchy,在LUG24的汇报材料。
识别访问/下载材料👇