GPUDirect Storage产品应用大爆发 AI数据暴涨催生GPU高速I/O需求

来源:网界网 | 2023-12-22 23:36:46

HPC与AI的数据量持续攀升,促使Nvidia用于储存装置与GPU直连传输的GPUDirect Storage架构,在近2年来开始普遍获得储存厂商支持,成为储存设备搭配GPU应用的标准架构

无论AI或其他类型的高性能运算应用,所使用的资料集规模都在持续暴涨,也给GPU的I/O传输架构带来更大的压力,连带也促使Nvidia专门用于搭配GPU的高效率储存I/O架构——GPUDirect Storage(GDS),相关应用在这2年迅速增长,几乎成为储存厂商支持GPU应用的标准架构。

AI数据暴涨催生GPU高速I/O需求

随着生成式AI技术开始广泛应用,不仅给GPU的运算能力带来更大的挑战,也形成更庞大的I/O传输需求。

以当前最热门的大型语言模型为例,GPT-1的训练数据量不过5GB, GPT-2便增加到40GB,GPT-3更大幅攀升到45TB,而在训练过程中,光是储存1次训练状态的检查点,就需要2.45 TB。

这样庞大的数据集,已远远超过GPU服务器的系统内存与GPU内存容量,必须多次从存储设备中读取数据加载内存,才能让GPU完成训练工作。 更进一步,多数GPU服务器本身的储存装置,也无法容纳这样庞大的数据集,因而必须搭配外部储存设备,来存放AI训练数据集。

这也意味着,在AI训练过程中,将会在本地端/外部存储设备与GPU之间,产生庞大的数据传输流量,也让从储存装置到GPU之间的I/O传输效率,成为影响整个AI应用效率的关键环节。

显然的,无论GPU的运算能力再强大,如果I/O传输效率低落,在运算过程中,将会耗费大量时间在等待储存装置的加载资料,而无法充分发挥运算能力。

因而GPU必须搭配一套高效率的储存I/O架构,才能因应AI应用日益庞大的数据集传输处理需求,这也促使Nvidia推出GPUDirect Storage架构。

GPU系统的I/O瓶颈(以DGX-2为例)

 

 

在传统存取架构下,CPU与GPU之间的PCIe传输带宽,是GPU I/O路径的瓶颈所在。 以 Nvidia 的 DGX-2 为例,从上图可以看出,在传统传输路径下,CPU 到 PCIe 交换器的带宽,是其中最小的。 DGX-2的GPU连接PCIe交换器的带宽可达到100GB/s,内接的NVMe SSD则能汇聚出53 GB/s带宽,对外也能透过8组网络端口汇聚出超过90 GB/s的带宽,但CPU到PCIe交换器之间的带宽只有50GB/s,因而成为效能瓶颈。 图片来源/Nvidia

GPUDirect Storage的价值

GPUDirect Storage架构的目的,是让储存装置与GPU之间透过直接内存存取(DMA)方式传输数据,免去绕经主机CPU与系统内存带来的种种问题。

如同多数周边装置,GPU与储存装置之间的资料传输,传统上都必须透过主机CPU与系统内存的中介,储存装置的数据经由RAID卡(内部储存装置)或网路卡(外部储存设备)送到主机的PCIe总线,经由主机CPU复制到系统内存的回弹缓冲区(Bounce Buffer)暂存,再传送到GPU的存储器。 但这样的资料传输程序,也带来下列3个问题:

首先,是造成较大的延迟,数据路经必须经过多个环节的处理,才能加载GPU的内存。

其次,是传输带宽受限,无论储存装置拥有多高的传输效能,将数据加载GPU时,都会受到从CPU到GPU之间的PCIe连接带宽制约。 以Nvidia的DGX-2平台为例,本身的NVMe SSD可透过RAID 0汇聚出53GB/s的传输带宽,也能透过汇聚8个InfiniBand/100GbE网络端口,获得80到100 GB/s以上的外部传输带宽,但是将数据从本机NVMe SSD或外部储存设备传送到GPU时,都会被CPU到GPU之间的PCIe带宽给绑住,最多只有48到50 GB/ s,无法充分发挥储存设备的传输能力。

第3,主机CPU必须参与管理整个数据传输作业,导致CPU相当大的负荷。

而有了GPUDirect Storage,则能让储存装置与GPU之间以DMA或RDMA方式直连存取,一举解决前述3个问题。

首先,存储设备的数据只需经由PCIe交换机,就能加载GPU内存,大幅减少了延迟。

其二,数据传输无须经由CPU,因而也不会受到CPU与GPU之间的带宽所限制,可大幅提高数据传输带宽。

其三,由于CPU不参与数据传输作业,大幅减轻CPU负荷。

Nvidia宣称,透过GPUDirect Storage可获得2到8倍的数据传输带宽提升,并降低3.8倍的存取延迟,而多家储存厂商实测,也证实了这样的效能提升表现。

当GPUDirect Storage应用于内接存储设备时,美光以其9400 NVMe SSD的实测显示,比起传统I/O路径,启用GPUDirect Storage可提升6.4倍的传输率,以及7.3倍的响应速度。

而GPUDirect Storage应用于外部储存设备时,VAST Data提出的实测数据也显示,VAST Data储存平台通过8个InfiniBand端口将数据加载DGX-2时,采用传统传输路径只能达到33GB/s带宽,CPU利用率则高达99%; 而改用GPUDirect Storage传输数据,将能获得超过94 GB/s的持续传输带宽,CPU利用率则只有15%,效益极为显著。

GPUDirect Storage的基本概念

在运作方式上,GPUDirect Storage便是绕过CPU与内存的中介,让储存装置与GPU透过直接内存存取(DMA)互连,从而减少延迟,并提高传输带宽。

在左边的传统传输架构中,从NVMe SSD传给GPU的数据,需要经过PCIe交换器、CPU与系统内存的中介,一共需要4个步骤才能完成。 而在GPUDirect Storage架构下,NVMe SSD只须经由PCIe交换器就能直接将数据传给GPU,只需2个步骤就能完成,大幅减少了延迟。 图片来源/Micron

GPUDirect Storage的部署运作

要启用GPUDirect Storage,必须同时有软硬件的配合。

在软件方面,GPU服务器必须安装英伟达的GDS软件包,目前这是属于CUDA SDK套件一部分。 在安装GDS软件套件之前,还须安装Nvidia的MLNX_OFED与nvidia-fs.ko这2个软件组件。 前述软件组件目前都只支持Ubuntu、RHEL、Rocky Linux等Linux系统,所以,GPUDirect Storage目前只能在这些操作系统平台运作。

在硬件方面,要启用GPUDirect Storage,则需要GPU与储存装置等两方面的兼容与支持。

在GPU方面,只有较新款的数据中心等级与Quadro桌上型等级GPU平台,可以运行GPUDirect Storage(详见Nvidia网站公布的清单)。

而在储存装置方面,目前已有超过15家储存厂商,宣布支持GPUDirect Storage架构,产品包含外部储存设备与内接SSD装置,外部储存装置是以特定的分布式档案系统或修改的NFS来与GPU平台连接,内接SSD则是透过修改的EXT4档案系统。 我们接下来便将介绍这些存储厂商与产品。

支持GPUDirect Storage的存储产品

一方面,高效能运算所面对的数据量持续增加,确实日益需要高效存储I/O架构才能因应; 另一方面,GPUDirect Storage提升I/O传输效能的表现,的确十分突出; 最后,Nvidia在整个GPU应用领域当中,具有市场垄断地位,也促使GPUDirect Storage几乎成为当前储存设备搭配GPU的传输架构标准,受到主流储存厂商支持。

在Nvidia的GPUDirect Storage网页相关公告,目前特别列出14家支持GPUDirect Storage开发测试的储存厂商,包括DDN、Dell、HPE、Hitachi、IBM、Kioxia、Liqid、Micron、NetApp、Samsung.ScaleFlux、Supermicro、VAST Data、Weka。 其中,有DDN、Dell、HPE、Hitachi Vantara、IBM与NetApp,都是传统一线储存设备大厂,同时,还有VAST Data、Weka等新兴分布式储存平台厂商,以及Kioxia、Samsung与ScaleFlux等NVMe SSD储存装置供应商。

而在Nvidia的GPUDirect Storage操作文件的系统支持矩阵列表,也列出支持GPUDirect Storage的储存平台,包括:HPE Ezmeral、HPE Cray ClusterStor、NetApp ONTAP与搭配BeeGFS的EF平台、IBM Spectrum Scale(已更名为Storage Scale)、DDN EXAScaler、VAST Data的Universal Storage、Weka的WekaFS,Dell的PowerScale,Hitachi Vantara的HCSF等。 大致涵盖当前市场上常见的分布式存储平台与NAS平台。

除了前述列入Nvidia支持列表中的平台外,还有其他厂商发布支持GPUDirect Storage的消息,包括Pure Storage的FlashBlade,华为的OceanStor A310,以及PEAK:AIO的软件定义NAS平台等。

其中DDN、Dell、IBM、华为、VAST Data、Weka、PEAK:AIO等厂商,近期也纷纷发布的存储产品运行GPUDirect Storage的实测结果,根据他们得到的数据,透过GPUDirect Storage直连传输,可以让外部储存设备以80、90 GB/s以上的带宽,向GPU服务器传输数据。

目前夺得最高GPUDirect Storage传输速度纪录的厂商,应该是PEAK:AIO,他们透过HPE的ProLiant DL380 Gen11服务器来运行PEAK:AIO软件平台,并以200GbE/HDR端口分别透过RDMA NFS与NVMe-oF协议连接Nvidia DGX A100 GPU平台时,单一节点便拥有162 GB/s与202 GB/ s传输率。 第二名是IBM运行Spectrum Scale平台(现已更名为Storage Scale)的ESS3500,单一节点拥有126 GB/s传输率,第三名则是DDN AI400X2(运行EXAScaler平台),以119 GB/s紧追其后。

上述都是属于外部存储平台,支持的是远程GPUDirect Storage应用。 而在内接储存装置方面,目前Micron的9400 NVMeSSD,以及ScaleFlux的CSD 2000运算储存装置,都可支持内接形式的GPUDirect Storage直连传输应用。

典型的GPUDirect Storage应用架构

 

 

这是NetApp的GPUDirect Storage实测架构,为了汇聚更大的传输吞吐率,一共使用了4台AFF A800储存阵列,透过100/200GbE网络连接2台DGX A100与2台Nvidia DGX-1服务器。 每台A800储存阵列,DGX A100与DGX-1都有400Gb的对外带宽。 在使用2组、4组、8组A800控制器的情况下,通过GPUDirect Storage分别可得到45.6 GB/s、86.5 GB/s与171 GB/s的传输率,显示能够此架构可以随着节点数量而提供线性增长的效能。 图片来源/NetApp

存储设备支持AI应用的必备架构

自 Nvidia 于 2019 年中发布GPUDirect Storage 技术架构后,2020 年起开始获得存储厂商的支持,接着在 2021 到 2023 年之间,支持的厂商迅速增加,尤其是所有主要的一线储存设备大厂,都已经支持这套传输架构。

到了现在,我们甚至可以这样认为,考虑到Nvidia GPU在AI应用中的关键地位,以及GPUDirect Storage所提供的效能表现,任何想要支持AI应用的储存设备,都必须支持这套传输架构,才能具备足够的竞争力。

相关阅读

每日精选