查看原文
其他

如何利用 PCIe Fabrics 和 RAID 释放 GPUDirect Storage 的全部潜力

常华Andy Andy730 2024-03-16

Source: Tam Do, How PCIe Fabrics and RAID Can Unlock the Full Potential of GPUDirect Storage, June 22, 2022


按:本文是Microchip公司的解决方案解读,所以有厂商倾向的描述。


由于更快的 GPU 能够具有显著提升的计算容量,因此存储和 GPU 内存之间的数据路径瓶颈已变得难以实现最佳应用性能。在这方面,NVIDIA的Magnum IO GPUDirect Storage解决方案通过启用存储设备和GPU内存之间的直接路径,在解决此问题方面大有帮助。


但是,同样重要的是,要使用容错系统优化其功能,以确保在发生灾难性故障时备份关键数据。解决方案是通过 PCIe Fabrics连接逻辑 RAID 卷,这可以将 PCIe 4.0 规范下的数据速率提高到 26 GB/s。


要了解如何实现这些优势,首先需要检查解决方案的关键组件以及它们如何协同工作以提供结果。



Magnum IO GPUDirect Storage


Magnum IO GPUDirect Storage的主要优点是它能够消除性能的主要瓶颈之一:它不使用CPU中的系统内存将数据从存储加载到GPU中进行处理。数据通常被移动到主机的内存中并传输到GPU,依赖于CPU系统内存中称为bounce buffer的区域,在传输到GPU之前会创建数据的多个副本。


但是,该路由中的大量数据移动会引入延迟,降低 GPU 性能,并在主机中使用许多 CPU 周期。Magnum IO GPUDirect Storage 消除了访问 CPU 的必要,并消除了bounce buffer中的低效率(图 1)。


1. Magnum IO GPUDirect Storage 可卸载 CPU,从而从数据路径中 bounce buffering。


性能随着要传输的数据量而增加,随着AI、ML、DL 和其他数据密集型应用程序所需的大型分布式数据集呈指数级增长。当数据存储在本地或远程时,可以实现这些好处,从而允许比CPU内存中的页面缓存更快地访问PB级的远程存储。



优化 RAID 性能


解决方案中的下一个元素是包括 RAID 功能,以保持数据冗余和容错。尽管软件 RAID 可以提供数据冗余,但底层软件 RAID 引擎仍利用精简指令集计算机 (RISC) 体系结构进行奇偶校验等操作。


在比较高级 RAID 级别(如 RAID 5 和 6)的写入 I/O 延迟时,硬件 RAID 仍然比软件 RAID 快得多,因为专用处理器可用于这些操作和回写缓存。在流应用中,软件 RAID 的长 I/O 响应时间将数据堆积在缓存中。硬件 RAID 解决方案不会出现缓存数据堆积,并具有专用的备用电池,以防止在发生灾难性系统电源故障时丢失数据。


标准硬件 RAID 减轻了主机的奇偶校验管理负担,但大量数据在发送到 NVMe 驱动器之前仍必须通过 RAID 控制器,从而导致更复杂的数据路径。这个问题的解决方案是NVMe优化的硬件RAID,它提供了一个简化的数据路径,不受固件或片上RAID控制器的阻碍。它还使维护基于硬件的保护和加密服务成为可能。



PCIe Fabrics in the Mix


PCIe Gen 4 现在是存储子系统中的基本系统互连方式,但标准 PCIe 交换具有与前几代相同的基于树的基本层次结构。这意味着主机到主机的通信需要非透明桥接 (NTB) 来跨分区,这使得它变得复杂,尤其是在多主机多交换机配置中。


Microchip 的 PAX PCIe 高级结构交换机等解决方案有助于克服这些限制。它们支持冗余路径和环路,这在使用传统 PCIe 时是不可能实现的。


结构交换机具有两个离散域,即专用于每个物理主机的主机虚拟域,以及包含所有终结点和结构链接的结构域。来自主机域的事务被转换为结构域中的 ID 和地址,反之亦然,结构域中的流量采用非分层路由。这允许连接到交换机和端点的结构链路由系统中的所有主机共享。


在嵌入式 CPU 上运行的结构固件通过可配置数量的下游端口虚拟化符合 PCIe 标准的交换机。因此,交换机始终显示为具有直连端点的标准单层 PCIe 设备,而不管端点在结构中的位置如何。它可以实现此目的,因为结构交换机会拦截来自主机的所有配置平面流量(包括 PCIe 枚举进程),并选择最佳路径。因此,GPU 等端点可以绑定到域中的任何主机(图 2)。


2. 交换机固件虚拟化主机域,显示为每个主机的单层 PCIe 兼容交换机。


在以下示例(图 3)中,我们介绍了一个双主机 PCIe Fabrics引擎设置。在这里,我们可以看到,结构虚拟化允许每个主机查看一个透明的 PCIe 拓扑,其中包含一个上游端口、三个下行端口和三个连接到它们的端点,并正确枚举它们。


3. 双主机 PCIe Fabrics引擎。


图 3 中一个有趣的点是,我们有一个具有两个虚拟功能的单根 I/O 虚拟化 (SR-IOV) SSD。借助 Microchip 的 PCIe 高级结构交换机,同一硬盘的虚拟功能可以共享到不同的主机。


此 PAX 结构交换机解决方案还支持直接跨结构的跨域对等传输。因此,根端口拥塞得以降低,CPU 性能瓶颈可以进一步缓解(图 4)。


4. 通过结构路由的流量可减少端口拥塞。



性能优化


在探索了优化NVMe驱动器和GPU之间数据传输性能所涉及的所有组件之后,现在可以将它们组合在一起以达到所需的结果。说明此阶段的最佳方法是演示显示主机 CPU 及其根端口的各种步骤,以及导致最佳结果的各种配置(图 5)。


5. 实现 26 GB/s 的路径。


即使使用高性能 NVMe 控制器,PCI Gen 4 × 4 (4.5 Gb/s) 的最大数据速率也限制为 3.5 Gb/s,因为通过根端口的开销(图 5,顶部)。但是,通过 RAID(逻辑卷)同时聚合多个驱动器(图 5,右下角), SmartRAID 控制器可为四个 NVMe 驱动器和传统的 PCIe 对等路由(通过根端口)为每个驱动器创建两个 RAID 卷。这会将数据速率提高到 9.5 Gb/s。


但是,通过采用跨域对等(图 5,左下角),流量通过结构链路而不是根端口进行路由,从而可以使用 SmartROC 3200 RAID 控制器实现 26 Gb/s 的最高速度。在最后一种情况下,交换机提供一条直线数据路径,该路径不受固件负担,并且仍然保持 RAID 基于硬件的保护和加密服务,同时充分利用 GPUDirect 存储的全部潜力。



总结


高性能 PCIe Fabrics交换机(如 Microchip 的 PAX)允许对支持 SR-IOV 的驱动器进行多主机共享,以及对可在多个主机之间共享的 GPU 和 NVMe SSD 池进行动态分区。Microchip 的 PAX 结构交换机可以动态地将端点资源重新分配给任何需要它们的主机。


此解决方案还消除了对自定义驱动程序的需求,因为它使用 SmartROC 3200 RAID 控制器系列支持的 SmartPQI 驱动程序  。根据Microchip的说法,SmartROC 3200是目前唯一能够提供最高传输速率(26 GB/s)的控制器。它具有非常低的延迟,为主机提供多达16个PCIe Gen 4通道,并且向后兼容PCIe Gen 2。


结合Microchip基于Flashtec系列的NVMe SSD,PCIe和Magnum IO GPUDirect Storage的全部潜力可以在多主机系统中实现。总的来说,它们使构建一个强大的系统成为可能,该系统可以实时满足AI,ML,DL和其他高性能计算应用程序的需求。

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存