按:本文含NV-H100计算集群真实数据,实测训练时:文件写入、训练期间、检查点写入三个主要阶段的存储系统IO/带宽特征,并讨论了基于异步写入扩展检查点写入带宽。
导入
NVIDIA:LLM集群存储IO行为-Fig-1
右图显示:2012年到2024年AI模型训练计算能力(PFLOPs)的增长趋势
NVIDIA:LLM集群存储IO行为-Fig-2
训练计算平台( Eos DGX AI 超级计算机的缩小版)
存储系统
NVIDIA:LLM集群存储IO行为-Fig-3
DDN EXAScaler Lustre 存储平台的主要特点包括:
1. 硬件配置:
• 使用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个阶段)
三个关键阶段及其特征:
1. 初始化读取阶段:
• 仅在训练开始时执行一次。
• 图表显示了一个短暂但显著的读取峰值,约为100 GB/s。
2. 计算阶段:
• 涉及迭代的GPU处理。
• 图表中表现为较长的平稳期,I/O活动最小。
3. 检查点写入阶段:
• 每N次计算迭代后执行。
• 图中显示为周期性的写入活动,峰值约为75 GB/s。
• 使用缓冲I/O来管理这些写入操作。
NVIDIA:LLM集群存储IO行为-Fig-7
聚焦初始化读取阶段的读IO行为
NVIDIA:LLM集群存储IO行为-Fig-8
聚焦检查点写入阶段的写IO行为。
写入阶段,GPU使用率极低,处于等待状态。
NVIDIA:LLM集群存储IO行为与鉴权机制-Fig-9
在这个模型版本中,峰值IO随模型并行度而扩展,而不是随节点数量扩展。
检查点异步写入
NVIDIA:LLM集群存储IO行为-Fig-10
并行检查点写入,提高效率。
此时,峰值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。
NVIDIA:LLM集群存储IO行为-Fig-11
1. 计算阶段的读取带宽非常低:
• 文件系统(FS)能力应专注于小IO(或其他工作量)。
2. 检查点可扩展性可以支持大的写入峰值:
• 这对文件系统提出了更高的需求。
3. 未来的检查点改进可能会再次改变IO模式:
• 需要依赖CPU和网络织物的有效并发性能。