前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >NVIDIA:LLM集群存储IO行为(实测数据)

NVIDIA:LLM集群存储IO行为(实测数据)

作者头像
数据存储前沿技术
发布2025-02-11 18:13:40
发布2025-02-11 18:13:40
1080
举报

按:本文含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

训练计算平台( Eos DGX AI 超级计算机的缩小版)

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

存储系统

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个阶段)

  • • 初始化读取阶段 - 仅一次
  • • 计算阶段 - 迭代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.3 TiB
  • • 检查点由少数节点完成(模型并行)。峰值75 GB/s(约12个节点)
  • • 每个客户端以约6 GB/s的速度写入(可用写入能力为93 GB/s)
  • • 检查点持续90秒

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

检查点异步写入

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

并行检查点写入,提高效率。

  • • 通过人为模拟检查点,我们可以运行工作负载写入IO的完全并行版本
  • • 下面是在48个节点上进行10次检查点的示例
  • • 每次检查点持续16秒,峰值275 GB/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和网络织物的有效并发性能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小结-LLM训练时IO行为
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档