创新//内存//存储

用于人工智能训练的存储:微米上的MLPerf存储® 9400 NVMe™SSD

约翰·马齐、韦斯·瓦斯克著 - 2023-08-17

分析 & 表征:AI工作负载与MLPerf存储 

为人工智能工作负载测试存储是一项具有挑战性的任务,因为运行实际训练可能需要专业的硬件,这些硬件可能很昂贵,而且可以快速更改. 这就是MLPerf帮助测试AI工作负载的存储的地方.

为什么MLPerf? 

MLCommons 产生了许多专注于扩展AI加速器性能的AI工作负载基准. 他们最近利用这一专业知识专注于人工智能的存储,并建立了一个强调人工智能训练存储的基准. 这个基准测试的目标是以与真正的AI训练过程相同的方式执行I/O, 提供更大的数据集来限制文件系统缓存和/或将训练硬件(gpu和其他加速器)与存储测试解耦的影响.1

MLPerf Storage使用深度学习I/O (DLIO)基准, 它使用相同的数据加载器作为真正的人工智能训练工作负载(pytorch, tensorflow, etc.)将数据从存储器移动到CPU内存. In DLIO, 加速器是用休眠时间和批大小来定义的, 在哪里,睡眠时间是从正在模拟的加速器中运行的实际工作负载计算的. 可以通过添加运行DLIO的客户机并为每个客户机的多个仿真加速器使用消息传递接口(MPI)来扩展/扩展工作负载. 

MLPerf通过定义一组配置来表示提交给MLPerf Training的结果. 目前, 实现的模型是BERT(自然语言处理)和Unet3D (3D医学成像), 结果以每秒的样本数和支持的加速器数量报告. 要通过测试,必须保持至少90%的加速器利用率.

Unet3D分析 

虽然MLPerf实现了BERT和Unet3D, 我们的分析重点是Unet3D, 因为BERT基准测试不会过多地强调存储I/O. Unet3D是一种3D医学成像模型,可以通过手动注释将大型图像文件读取到加速器内存中,并生成密集的体积分割. 从存储的角度来看, 这看起来像是从训练数据集中随机读取大文件. 我们的测试着眼于使用7的1个加速器和15个加速器的结果.68TB Micron 9400 PPO NVMe固态硬盘. 

首先,我们将检查设备上随时间变化的吞吐量. 在图1中, 一个加速器的测量结果大多在0到600MB/s之间, 一些峰值为1,600 MB/s. 这些峰值对应于在开始计算之前的一个epoch开始时填充的预取缓冲区. 在图2中, 我们看到15个加速器, 工作负载仍然爆发,但达到设备支持的最大吞吐量. 但是,由于工作负载的突发,总平均吞吐量比最大值低15-20%.





接下来,我们将查看相同工作负载的队列深度(QD). 只有一个加速器, 当有15个加速器时,QD不会超过10(图3), QD在早期达到145左右的峰值, 但在测试的剩余时间内稳定在120左右及以下(图4). 然而,这些时间序列图表并没有向我们展示整个画面.





当将I/ o百分比视为给定的QD时, 我们看到单个加速器是这样的, 几乎50%的I/ o是队列上的第一个事务(QD 0),几乎50%是第二个事务(QD 1)。, 如图5所示.



有15个加速器, 大多数交易发生在量子点80到110之间, 但很大一部分发生在量子点10以下(图6). 这种行为表明,工作负载中存在空闲时间,而这些时间本应显示始终如一的高吞吐量.



从这些结果中,我们可以看到,从存储的角度来看,工作负载是非常重要的. 另外, 随机大块传输和空闲时间与大传输爆发和MLPerf Storage混合是一种工具,通过再现这些实际工作负载,它将非常有助于对各种模型的存储进行基准测试.

参考链接 

http://mlcommons.org/en/groups/research-storage/ 

mlcommons/storage: MLPerf存储基准测试套件 

Unet3D - 1606.06650.pdf (arxiv.org)

1. See: http://mlcommons.org/en/groups/research-storage/ 了解更多信息.

约翰Mazzie

约翰Mazzie

约翰于2008年毕业于西弗吉尼亚大学,获得硕士学位,主修无线通信. 2011年,约翰搬到德克萨斯州奥斯汀,在戴尔的存储部门工作. 在戴尔,约翰负责MD3系列存储阵列的开发和维护工作. John于2016年加入美光,在奥斯汀的存储解决方案工程团队工作, 他在哪里研究卡桑德拉, MongoDB, and Ceph.

温迪Lee-Kadlec

韦斯Vaske

韦斯Vaske是德克萨斯州奥斯汀市美光数据中心工作负载工程团队的高级技术人员. 他分析企业工作负载,以了解Flash和DRAM设备对应用程序的性能影响,并为内部设计提供“真实的”工作负载表征 & 开发团队. Wes的重点是人工智能应用和开发跟踪和系统观察的工具.

+