我在昨天的撰文《
VMware
分层内存愿景:
NVMe
与
CXL Accelerator
方案
》中,刚发过
SNIA 2024 Compute, Memory, and
Storage Summit
的资料,今天这篇我也是整理自这次会议中的一个演讲。
链接:
https://pan.baidu.com/s/1vdGW-AZ2hUaJO1TxROTNsQ?pwd=auy7
提取码:auy7
主题
《
Storage
Requirements for AI
:
Training
and Checkpointing
》的分享人是来自
Dell
存储
CTO
部门的
John Cardente
。
AI
的繁荣正在推动对
GPU
的惊人需求,这导致需要最大限度地提高它们的利用率
。
最大化
GPU
利用率需要平衡计算、网络和存储性能
。
上图中的“东
-西向”网络是GPU服务器节电之间的互连;而“南-北向”网络是连接到存储,用来读取训练数据,写入模型相关的内容。
存储在整个人工智能生命周期中扮演着重要角色
。
在数据准备——训练和调优——推理这
3个阶段,本次讨论聚焦在第二阶段。
AI
模型训练使用训练数据批量更新权重,并设置定期检查点(
checkpoint
)以进行恢复
。
关于训练读取性能需求的信息有限;
GPU
基准测试(具体是
MLCommons
的
MLPerf Training benchmark
)提供了一种估算的方法
。
训练数据存储的读取带宽需求差异很大;这取决于模型的计算约束和输入大小
。
在上表列出的应用类型中,
GPT3 LLM大语言模型
的175B参数量、305GB的C4数据集都是最大的,但它需要的训练数据读带宽却很小(可能是平均值?)。原因应该是他的数据对象输入大小只有8K字节,使用32个H100 GPU的模型吞吐量(每秒训练样本数)只有19.5K,在这一环节中可以看作是偏
计算密集型
。
相比之下,
3D U-Net
三维图像分
割
的模型参数量只有19M,训练数据集也只有27GB,但输入大小(每个图像)达到92MB,并且每秒训练样本数为463,所以训练数据读带宽需求高达41.6GB/s。
另一种比较典型的
Resnet-50图像分类
,模型参数量也不大,输入大小中等,但每秒训练样本数较高达到55K,所以训练数据读带宽也达到41.6GB/s。
示例:由
DLIO
基准测试模拟的
ResNet-50
训
练
。
通过
NFS
(文件存储)
读取训练数据会产生连续的顺序
IO
流,
IO
大小在
64KB
到
256KB
之间,且与批量大小无关
。
通过
S3
(对象存储)
读取相同的