[业界/制造] GDS:新架构BaM—GPU绕过CPU直接访问存储

[复制链接]
查看11 | 回复0 | 昨天 21:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在GDS系统中,整个流程仍由CPU触发,数据块则能直接进入GPU RAM,
但元数据等关键操作会使用CPU RAM,虽然从而提高效率。所以,仍然离不开CPU的调度和处理。
  
而NVIDIA一直期望的完全绕过CPU,随着GPU技术的不断发展,英伟达有了心的进展。提出新架构BaM,发表论文《GPU-Initiated On-Demand High-Throughput Storage Access in the BaM System Architecture》 213128472ab4bf.png

论文的核心:
(1)提出以GPU为中心的系统架构BaM——GPU 线程可按需访问内存或存储设备中的数据,且无需依赖 CPU 来发起这些访问;
(2)引入一个用户级GPU库——包含一个高度并发的提交/完成队列,位于GPU内存中,实现对存储设备的按需、高吞吐量的细粒度访问;
(3)提供高吞吐量、可扩展的软件定义缓存以及软件应用程序接口(API),以便程序员利用数据局部性并为其应用程序控制数据布局;
(4)构建并评估一种针对 GPU 的原型设计,使其能够以经济高效的方式访问海量存储数据。
BaM架构  BaM的设计目标是为GPU线程提供高效的存储访问抽象,以便其能够按需、细粒度且高吞吐量地访问存储设备,同时提升存储访问性能。为此,如下图所示,BaM在GPU内存中配置了专门的存储I/O队列和缓冲区,并借助GPU的内存映射功能,将存储DB reg映射到GPU地址空间。
213129c4fd8335.png   
BaM提供bam::array高级编程抽象,使程序员能够轻松地将 BaM 集成到现有的GPU应用程序中。应用程序可以调用BaM的API将 bam::array 映射到存储设备上的数据。
21312972943368.png
图 2 展示了 GPU 线程如何使用BaM访问数据:
①GPU线程通过bam::array抽象访问数据;
②确定所访问数据的偏移量(即缓存行);
③如果同一个warp中的多个线程访问同一缓存行,可以合并访问请求;
④对于每个被访问的唯一缓存行,单个线程会代表其余线程探测该缓存行的元数据,从而提高缓存访问效率。
  • 缓存命中场景:若访问命中缓存,线程可直接读取GPU内存中的数据。
  • 缓存未命中场景:若访问未命中缓存,线程需要从底层内存获取数据。BaM 的软件缓存通过两种方式优化底层内存的带宽利用率:

    • (1)消除对底层内存的冗余请求;

    • (2)允许用户根据应用需求配置缓存。

⑤若数据存储在存储系统或设备中,GPU线程会进入BaM I/O栈来准备存储I/O请求
⑥将CMD请求入队到提交队列SQ;
⑦等待存储控制器发布相应的完成条目;
  • BaM 的I/O栈通过利用GPU强大的线程级并行性,分摊与存储提交/完成协议相关的软件开销,并支持低延迟批量处理多个提交/完成(SQ/CQ)队列条目,以最小化昂贵的DB Reg更新成本,并减少存储协议中关键部分的规模。
  • 存储控制器在接收到门铃更新(A)后,会获取对应的 SQ 条目(B),处理命令(C),并在 SSD 和 GPU 内存之间传输数据(D)。传输完成后,存储控制器会在 CQ 中发布完成条目(E)。

⑧完成条目发布后,线程会更新缓存状态;
⑨更新 SQ/CQ 状态,
然后即可访问从存储设备获取到 GPU 内存中的数据。

与传统GDS对比
  与传统的存储数据访问模式(GDS)相比,BaM带来了显著的变革,使GPU线程能够直接访问存储,从而实现了细粒度的计算与I/O重叠。这一设计理念带来了多方面的优势。
  • 首先,减少CPU-GPU同步开销,以及GPU内核的启动频率,从而消除了每次数据访问时CPU的启动和调度需求。
  • 其次,降低I/O放大开销,由于CPU调度通常以大块数据任务为单位,而非GPU实际所需的随机数据,BaM中GPU线程仅在需要时才获取,因此有效避免了IO放大问题。
  • 最后,简化编程并隐藏延迟,过去,为了处理不同规模的数据,开发人员可能需要计算应用层面的复杂数据分块和分割策略;而Bam允许程序员通过数组抽象自然地访问数据,并利用GPU线程在大规模数据集上的并行性来隐藏存储访问延迟,从而简化了编程逻辑。

2131297606f497.png

BaM与NVIDIA GDS的性能对比  BaM与NVIDIA GDS的性能对比显示:当访问粒度小于32KB时,受传统 CPU 软件栈开销限制,GDS无法使PCIe接口饱和。相比之下,BaM 即使在4KB的I/O粒度下也能使接口饱和(约25GBps)。
213130eaa6fa26.png





  在论文中还提到:
  GPU正朝着更高自主性和异步性的趋势发展。GPUDirect Async技术组在将数据从内存或存储直接移动到 GPU 内存时,可加速控制路径。据我们所知,BaM 是首个以加速器为中心的方法,使GPU能够按需访问存储在内存或存储设备中的数据,而无需依赖 CPU 来发起或触发这些访问。因此,BaM标志着技术族中一种新变体的开端——由GPU内核发起(KI)的 GPUDirect Async KI 存储。
  尽管用户级存储设备队列对传统的单体服务器架构构成安全隐患,但数据中心最近转向通过可信硬件或软件服务提供安全保障的零信任安全模型,为 BaM 这类以加速器为中心的用户级存储访问模型提供了新的系统框架来确保安全性。




END



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

hdy

427

主题

331

回帖

585

积分

二级逆天

积分
585