实测!高性能PCIe 5.0 SSD为AI训练贡献了啥?

如今,AI 的火热程度已经不需要解释。算力、算法、数据,构成驱动 AI 技术快速发展的三驾马车:

  • 算力越强,越能够处理更加复杂的训练模型,并加速训练进程;
  • 算法越先进,越能高效的从数据中学习并优化模型,实现更加精准的智能决策与预测;
  • 数据越充分,模型的泛化能力越强,而随着新的数据不断被注入,模型也将实现不断迭代,越发好用且智能。

完整的 AI 训练包括数据收集、数据预处理、数据标注、数据分割、模型设计、模型搭建、模型训练、模型评估、模型调优,最终部署等环节。GPU 作为整个模型训练的算力核心,因其成本高昂,系统架构和参数设置应以最大发挥 GPU 的使用频率为目标。

模型训练阶段,SSD 通常用于提供 GPU 所需的样本数据,并对 GPU 训练产生的中间结果、日志、临时文件等加以保存。随着数据量的爆炸式增长,高效的数据摄取和处理成为一项重大挑战。为探究 SSD 对模型训练带来的影响,本文将通过 DLIO Benchmark 测试软件进行验证。

由于本文篇幅较长,为方便阅读,这里先放结论

  • 数据加载环节,NVMe SSD 可以做到满载运行,以最大发挥 GPU 性能;
  • 单片 PBlaze7 7940 PCIe 5.0 SSD 可以在吞吐量较高的模型训练任务中,为多颗 GPU 配置带来优秀的 I/O 传输带宽,性能领先 PCIe 4.0 SSD 达 81%
  • 在本次测试中,单片 PBlaze7 7940 PCIe 5.0 SSD 可以让最多8颗 GPU 始终保持90%以上利用率
  • 相比 PCIe 4.0 SSD,单片 PBlaze7 7940 PCIe 5.0 SSD 可以让训练环节减少耗时 1,000秒
  • GPU 性能越强,部署数量越多,越需要更强的 SSD 和系统内存加以满足

以下是测试详情。

DLIO Benchmark 介绍

DLIO Benchmark 是行业里非常有名的,针对深度学习应用负载的 I/O 性能检测工具。它通过精确模拟训练过程中的 I/O 行为,帮助开发人员快速找到系统架构中的 I/O 瓶颈,并指导优化训练性能

在这里插入图片描述
如图所示,在硬件架构中,硬盘、系统内存、GPU 都不应存在瓶颈。数据供给不及时,将造成 GPU 等待;GPU 性能弱,数据请求也会相应减少。

DLIO Benchmark 的测试涵盖多种深度学习模型任务,如图像分类、自然语言处理、宇宙结构探究等等。通过这些测试,我们可以得到基于具体的硬件配置和运行参数,在不同深度学习框架,如 TensorFlow、PyTorch 等,在特定任务上的 I/O 性能表现。

DLIO Benchmark 内置了多个标准模型训练任务脚本,包括:

  • BERT,Bidirectional Encoder Representations from Transformers,由 Google 在2018年提出的预训练语言模型。它基于 Transformer 架构,能够同时从左到右和从右到左读取文本,从而更好地理解上下文。因其出色的性能和广泛的应用,在自然语言处理领域备受瞩目。
  • CosmoFlow 是一个高度可扩展的深度学习应用程序,它基于TensorFlow框架构建,通过将深度学习技术应用于数据密集型的宇宙学研究中,特别是处理大规模的三维宇宙学数据集,加深科学家对宇宙的理解。
  • ResNet-50,Residual Network 50 是一种深度残差网络模型,由微软实验室的何恺明等人在2015年提出,并在当年的 ILSVRC 图像分类竞赛中获得第一名。ResNet50网络在解决传统卷积神经网络(CNN)在堆叠到一定深度时出现的性能退化问题上取得了显著突破,成为了计算机视觉领域的重要基石。
  • UNet3D,或 3D UNet,是一种用于医学图像分析的深度学习网络,基于 PyTorch 框架构建。它是 UNet 架构的一个变体,以更好地适应三维医学图像数据(如CT或MRI扫描),有效提取图像中各种器官、组织和病变的轮廓和边缘信息,有助于医生进行疾病诊断和治疗。

测试使用的环境如下:

  • CPU:Intel Xeon 6448Y ×2,64 core 128 Thread
  • Memory:32GB ECC ×16,512GB Total
  • System:Ubuntu 22.04.2 LTS
  • 测试盘:PBlaze7 7940 7.68TB,PCIe 5.0 ×4,数量1
  • 对比盘:PBlaze6 6530 3.84TB,PCIe 4.0 ×4,数量1

测试使用 UNet3D 脚本,模拟20,480个样本文件的训练过程。由于样本体积达到3TB,远超系统内存,系统会将它们分多个批次加载 —— 当 GPU 取走一批数据,SSD 需要在 GPU 完成这批数据的训练前将下一批数据写进内存,会比较考验 SSD 的读性能。

每一个模拟训练均执行5个 epoch,每个 epoch 结束重新加载训练样本集,对内存中已经缓存的近 500GB 数据进行更新。由于样本加载顺序随机,少量样本可能会命中缓存,带来小幅 I/O 性能提升。当然,如果系统内存“足够大”,可以包容全部样本数据,对 I/O 性能的提升将会非常明显,但成本也会大幅增加。

这里我们使用 DLIO Benchmark 软件分别模拟 1、2、4、6、8、16、32颗 GPU 的配置情况。

模型训练耗时
PBlaze7 7940 SSD 节省40% 以上测试时间!

通过模拟 AI 模型训练及其数据加载行为,我们可以统计出配置不同的 SSD、不同数量的 GPU,其训练环节的耗时差异,结果如下:

在这里插入图片描述

在 epoch=5 的情况下,通过配置单片 PBlaze7 7940 PCIe 5.0 SSD,可以在4颗或更多 GPU 的训练任务中,相比 PCIe 4.0 SSD 节省近1,000秒的时间。我们假设80个 epoch 为一次完整训练,节省时间则可以达到 16,000秒,并在80次完整训练下节省14.8天!

I/O 传输性能差异
单加速器可破3GB/s,最大可达10.98GB/s!

当加速器(GPU)数量设置为1时,由 PBlaze7 7940 PCIe 5.0 SSD 和 PBlaze6 6530 PCIe 4.0 SSD 构成的训练平台均可以**带来 3.1GB/s 的 I/O 性能。**根据平均样本文件体积 146MB、每个加速器一次加载样本数量32个,以及 V100 GPU 的计算环节代替参数,可得出加速器理论处理上限为 3400MB/s,远没有达到 SSD 和系统内存的读带宽。因此,我们可以继续增加加速器(GPU)的数量,在不增加服务器的情况下继续提升训练性能。

在这里插入图片描述

在配置4颗加速器的情况下,PBlaze7 7940 PCIe 5.0 SSD 训练平台可以提供 9.16GB/s 的 I/O 性能;在配置6颗加速器的情况下,CPU、内存开始出现长时间满载情况,I/O 性能收益也开始下降,最终 I/O 性能为 10.98GB/s

在这里插入图片描述

每秒样本处理数量和 I/O 性能测试结果一致,数值越大,意味着模型训练的速度越高。

在这里插入图片描述

加速器(GPU)的使用效率
单片PBlaze7 7940将8颗GPU使用率提升至90%

Accelerator Utilization 代表加速器(GPU)的利用效率,当加速器数量较少时,由 PBlaze7 7940 组建的训练平台可完全满足加速器对数据的请求,此时加速器利用率较高,达到 98.77%;当加速器数量较多时,每一个加速器获得的 I/O 传输带宽变少,使用效率也出现下降。

在这里插入图片描述

值得一提的是,尽管我们的测试仅使用了一片 PBlaze7 7940 PCIe 5.0 SSD,设定的每一个加速器对 I/O 性能的要求都很高,它仍然可以在8颗加速器的前提下,保证加速器的使用频率维持在 90% 以上!

消除缓存影响
PBlaze7 7940、PBlaze6 6530仍表现强势!

此外,我们还补充了 epoch = 1 时的 I/O 性能结果,此时,没有任何样本数据可以在缓存中再次命中,SSD 带来的 I/O 性能影响也将被放至最大。

在这里插入图片描述

相比较5个 epoch 的设定,此时 I/O 性能仅出现细微下滑,最大 I/O 传输带宽仍然可以达到 10.63GB/s

SSD 性能监测
数据加载环节,SSD 可全速运行,避免成为瓶颈

使用 iostat 工具可以观察每个训练过程中 SSD 的 I/O 情况。在样本数据加载阶段,SSD 几乎可以达到满速运行

在这里插入图片描述

SSD 读延迟如下所示,在最大性能输出情况下,PBlaze7 7940 PCIe 5.0 SSD 延迟相较于 PCIe 4.0 SSD,低了50%以上!

在这里插入图片描述

全文总结:

在 AI 训练硬件架构的精密布局中,确保每一个环节都不成为性能瓶颈,是实现高效 AI 训练的核心要义。NVMe SSD 以其极低的延迟、高吞吐量和卓越的读写性能,为 AI 训练过程中的海量数据读写需求提供了强有力的支撑,成为加速 AI 训练进程的重要一环。

而随着 AI 模型规模和复杂度的不断提升,对于计算资源和存储容量的需求也随之剧增。在这样的背景下,拥有更强单片性能的企业级 PCIe 5.0 NVMe SSD 显得尤为关键,它不仅能够提供更大的存储容量,以容纳日益庞大的数据集和模型参数,更能在高负载下保持稳定的高性能输出,为复杂模型、大模型的训练提供持久而强大的支持

可以预见,随着技术的不断进步和成本的逐步降低,在未来 AI 硬件生态中,NVMe SSD 将扮演越来越重要的角色,成为推动 AI 训练效率革命的重要力量,并促使系统架构师和开发者在构建 AI 训练平台时,更加注重存储系统的优化与升级,以确保整个硬件架构能够充分发挥出每一环节的潜力。

作为国内技术实力领先的企业级 NVMe SSD 厂商,忆恒创源也将不断打磨其技术,不断推出有着更高性能、更大容量、更高能效比的 NVMe SSD 产品,为推动人工智能技术的快速发展和广泛应用持续贡献力量!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element-plus的el-table自定义表头筛选查询

文章目录 一、效果二、代码1.代码可直接复制使用 三、问题1.使用el-popover完成筛选框 一、效果 二、代码 1.代码可直接复制使用 <template><div class"page-view" click"handleClickOutside"><el-button click"resetFilters"&…

云服务器2核2G配置可以干嘛?2C2G用来做什么合适?

最便宜的服务器2核2G配置可以做什么&#xff1f;可用来搭建Web网站服务器、小程序服务器、APP后端服务器、图床、开发测试环境、小型电子商务网站及文件存储等使用场景。服务器百科网fwqbk.com举例说明&#xff1a; 搭建个人博客&#xff1a;使用开源WordPress等博客程序系统&…

git使用、git与idea结合、gitee、gitlab

本文章基于黑马程序javase模块中的"git"部分 先言:git在集成idea中,不同版本的idea中页面显示不同,操作时更注重基于选项的文字;git基于命令操作参考文档实现即可,idea工具继承使用重点掌握 1.git概述 git是目前世界上最先进的分布式文件版本控制系统 分布式:将…

照片怎么改大小kb?分享5个改小图片的工具

夏日炎炎&#xff0c;正是出游拍照的大好时节&#xff0c;然而随之而来的问题也让人头疼——手机里的美照越来越多&#xff0c;存储空间却越来越紧张。 不仅如此&#xff0c;上传至社交媒体时&#xff0c;大尺寸的照片常常让加载速度慢如蜗牛&#xff0c;影响了分享的乐趣。 …

[Spring Boot]Protobuf解析MQTT消息体

简述 本文主要针对在MQTT场景下&#xff0c;使用Protobuf协议解析MQTT的消息体 Protobuf下载 官方下载 https://github.com/protocolbuffers/protobuf/releases网盘下载 链接&#xff1a;https://pan.baidu.com/s/1Uz7CZuOSwa8VCDl-6r2xzw?pwdanan 提取码&#xff1a;an…

【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

&#x1f4e2;博客主页&#xff1a;肩匣与橘 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由肩匣与橘编写&#xff0c;首发于CSDN&#x1f649; &#x1f4e2;生活依旧是美好而又温柔的&#xff0c;你也…

mysql + Oracle

eg627. 变更性别 Salary 表&#xff1a; ----------------------- | Column Name | Type | ----------------------- | id | int | | name | varchar | | sex | ENUM | | salary | int | ----------------------- id 是这个表…

小程序-4(自定义组件:数据、属性、数据监听器、生命周期函数、插槽、父子通信、behaviors)

目录 1.组件的创建和引用 局部引用组件 全局引用组件 组件和页面的区别 组件样式隔离 ​编辑 组件样式隔离的注意点 修改组件的样式隔离选项 data数据 methods方法 properties属性 data和properties属性的区别 使用setData修改properties的值 2.数据监听器 什么…

昇思25天学习打卡营第19天|MindNLP ChatGLM-6B StreamChat

文章目录 昇思MindSpore应用实践ChatGML-6B简介基于MindNLP的ChatGLM-6B StreamChat Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 ChatGML-6B简介 ChatGLM-6B 是由清华大学和智谱AI联合研发的产品&#xff0c;是一个开源的、支持…

数据结构——线性表(循环链表)

一、循环链表定义 将单链表中终端结点的指针端由空指针改为指向头结点&#xff0c;就使整个单链表形成一 个环&#xff0c;这种头尾相接的单链表称为单循环链表&#xff0c;简称循环链表(circular linked list)。 循环链表解决了一个很麻烦的问题。如何从当中一 个结点出发&am…

IO多路复用-poll的使用详解【C语言】

1.什么是poll poll 是一种用于监控多个文件描述符状态的系统调用&#xff0c;它可以等待多个文件描述符上的事件发生。它与 select 和 epoll 类似&#xff0c;但在某些场景下使用更为方便。 poll的机制与select类似&#xff0c;与select在本质上没有多大差别&#xff0c;使用…

xinput1-3.dll文件丢失找不到的修复方法

在电脑使用过程中&#xff0c;遇到“xinput1-3.dll丢失”或“找不到xinput1-3.dll”这类错误提示&#xff0c;可能会导致某些游戏或应用程序无法正常运行。以下是修复步骤&#xff0c;帮助您快速找回缺失的dll文件。 一、xinput1-3.dll的作用 xinput1-3.dll是Microsoft Direct…

Android APP 基于RecyclerView框架工程(知识体系积累)

说明&#xff1a;这个简单的基于RecyclerView的框架作用在于自己可以将平时积累的一些有效demo整合起来&#xff08;比如音视频编解码的、opengles的以及其他也去方向的、随着项目增多&#xff0c;工程量的增加&#xff0c;后期想高效的分析和查找并不容易&#xff09;&#xf…

1.Fabric框架

要了解Fabric&#xff0c;首先要知道Hyperledger开源项目。 2015年12月&#xff0c;由开源世界的旗舰组织Linux基金会牵头&#xff0c;30家初始企业成员共同宣布Hyperledger联合项目成立。Hyperledger 超级账本&#xff0c;是首个面向企业应用场景的分布式账本平台&#xff0c…

【每日一练】python编写一个简易计算器

程序代码: #循环语句&#xff0c;条件为真所以循环执行 while True: #定义两个数的变量和运算符号 num1 float(input("第一个数:")) num2 float(input("第一个数:")) syminput("选择运算符 - * /&#xff1a;") #判断运算符号 …

Camera Raw:评级和标签

在 Camera Raw 中&#xff0c;评级 Rating和标签 Label功能为摄影师和图像编辑者提供了一种高效的图像组织和管理方法。通过这些功能&#xff0c;用户可以轻松地对照片进行分类、标记和筛选&#xff0c;以便在大量图像中快速找到需要的照片。 ◆ ◆ ◆ 设置星级 Set Rating 星…

Inconsistent Query Results Based on Output Fields Selection in Milvus Dashboard

题意&#xff1a;在Milvus仪表盘中基于输出字段选择的不一致查询结果 问题背景&#xff1a; Im experiencing an issue with the Milvus dashboard where the search results change based on the selected output fields. Im working on a RAG project using text data conv…

【Java面向对象】二进制I/O

文章目录 1.二进制文件2.二进制 I/O 类2.1 FileInputStream 和 FileOutputStream2.2 FilterInputStream和 FilterOutputStream2.3 DatalnputStream 和 DataOutputStream2.4 BufferedInputStream 和 BufferedOutputStream2.5 ObjectInputStream 和 ObjectOutputStream 2.6 Seria…

防御保护课-防火墙接口配置实验

一、实验拓扑 &#xff08;我做实验用的图如下&#xff09; 二、实验要求 1.防火墙向下使用子接口分别对应生产区和办公区 2.所有分区设备可以ping通网关 三、实验思路 配IP&#xff1b; 划分vlan并配置vlan&#xff1b; 配置路由和安全策略。 四、实验配置 1、画图并…

开源模型应用落地-FastAPI-助力模型交互-进阶篇-RequestDataclasses(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理&#xff0c;使应用程序能够处理各种不同的请求场景&#xff0c;提高应用程序的灵活性和可扩展性。 在数据验证和转换方面&#xff0c;高级用法提供了更精细和准确的控制&#…