NVIDIA:LLM集群存储IO行为(实测数据)
三道杠No.1  2024-10-11 17:51  发布于中国

按:本文含NV-H100计算集群真实数据,实测训练时:文件写入、训练期间、检查点写入三个主要阶段的存储系统IO/带宽特征,并讨论了基于异步写入扩展检查点写入带宽。

导入

640.png

NVIDIA:LLM集群存储IO行为-Fig-1

  • 自2022年底ChatGPT聊天机器人出现以来,生成式AI已广为人知。

- 大型语言模型(LLM)应用是此类能力的核心。

- 模型在过去几年里变得越来越大、越来越复杂。

  • LLM训练的计算、存储和IO模式更接近"HPC"而非单节点ML AI或推理工作负载。

- 需要具有性能存储的大规模性能平台。

- 需要在保持可扩展性的同时集成到更安全的环境中。

右图显示:2012年到2024年AI模型训练计算能力(PFLOPs)的增长趋势

640.png

NVIDIA:LLM集群存储IO行为-Fig-2

训练计算平台(EosDGXAI超级计算机的缩小版)

  • H100SuperPOD部署
  • 2023年11月TOP500排名第9(121.40PF)
  • 576个NVIDIA DGX系统,每个配备八个H100 GPU(下文测试非全量算力)
  • Quantum-2NDRInfiniBand网络,具有独立的计算(8-rail)和存储(2-rail)结构

存储系统

640.png

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认证,提升整体安全性。

640.png

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模式和性能如何随模型规模增长而变化。

负载分析

640.png

NVIDIA:LLM集群存储IO行为-Fig-5

负载特征。

上图为GPU计算时负载(含训练和检查点写入);

下图是训练时存储读写带宽,后文详细展开分析。

640.png

NVIDIA:LLM集群存储IO行为-Fig-6

IO行为特征(区分3个阶段)

  • 初始化读取阶段-仅一次
  • 计算阶段-迭代GPU处理
  • 检查点写入阶段-每N次计算迭代

三个关键阶段及其特征:

1、初始化读取阶段:

  • 仅在训练开始时执行一次。
  • 图表显示了一个短暂但显著的读取峰值,约为100 GB/s。

2、计算阶段:

  • 涉及迭代的GPU处理。
  • 图表中表现为较长的平稳期,I/O活动最小。

3、检查点写入阶段:

  • 每N次计算迭代后执行。
  • 图中显示为周期性的写入活动,峰值约为75 GB/s。
  • 使用缓冲I/O来管理这些写入操作。

640.png

NVIDIA:LLM集群存储IO行为-Fig-7

聚焦初始化读取阶段的读IO行为

计算阶段的读取非常低:约3MB/s

I/O很小:< 4KB

随着节点数量增加,总读取量呈线性增长。

640.png

NVIDIA:LLM集群存储IO行为-Fig-8

聚焦检查点写入阶段的写IO行为。

写入阶段,GPU使用率极低,处于等待状态。

640.png

NVIDIA:LLM集群存储IO行为与鉴权机制-Fig-9

  • 检查点大小为4.3TiB
  • 检查点由少数节点完成(模型并行)。峰值75 GB/s(约12个节点)
  • 每个客户端以约6GB/s的速度写入(可用写入能力为93GB/s)
  • 检查点持续90秒

在这个模型版本中,峰值IO随模型并行度而扩展,而不是随节点数量扩展。

检查点异步写入

640.png

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行为

640.png

NVIDIA:LLM集群存储IO行为-Fig-11

1. 计算阶段的读取带宽非常低:

  • 文件系统(FS)能力应专注于小IO(或其他工作量)。

2. 检查点可扩展性可以支持大的写入峰值:

  • 这对文件系统提出了更高的需求。

3. 未来的检查点改进可能会再次改变IO模式:

  • 需要依赖CPU和网络织物的有效并发性能。

---【本文完】---

公众号:王知鱼,专注数据存储、云计算趋势&产品方案。

PPT取自NVIDIA高级工程师Aurelien Degremont/Nathan Dauchy,在LUG24的汇报材料。

识别访问/下载材料👇

640.png

全部回复(
回复
回复