查看原文
其他

智能数据加速接口(SDXI):推进内存加速前沿技术

常华Andy Andy730
2025-01-01
  • 题目:Smart Data Accelerator Interface: Use Cases, Futures, and Proof Points

  • 演讲者:Shyam Iyer, Chair, SNIA SDXI TWG; Distinguished Engineer, Dell Technologies

  • 会议:SNIA Compute, Memory, and Storage Summit

  • 日期:2024年5月22日

今天,我将深入探讨智能数据加速接口(SDXI)的应用案例、未来发展趋势以及这一新标准在发展中不断涌现的验证点。作为SNIA(存储网络行业协会)技术工作组的主席,同时兼任SNIA技术委员会成员和杰出工程师,我对此有着深厚的理解和独到的见解。

在接下来的议程中,我将详细介绍SDXI技术工作组当前的工作内容、SDXI在不同应用案例中的解决方案、我们期待实现的新功能,以及我们在实践过程中收集到的验证点,最后进行总结。

什么是SDXI呢?SDXI,即智能数据加速接口,是SNIA制定的一项内存到内存数据移动和加速的标准。它是一项可扩展的、与功耗兼容的,并且独立于I/O互连技术的标准。简而言之,SDXI基本上是一个内存到内存的DMA引擎,其工作不依赖于执行内存到内存数据移动的总线。

SDXI于2020年6月正式成立,目前已有超过25家会员公司和100位个人成员,并发布了1.0版本的规范。参与制定该规范的公司涵盖了OEM厂商、CPU厂商、加速器厂商、存储厂商以及操作系统厂商。我们仍在积极吸引更多新会员加入这一工作组。

如果希望深入了解SDXI规范1.0的详细内容,建议观看我去年在存储开发者大会上发布的YouTube视频。同时,在此提供了一个二维码供查阅。

接下来,介绍一些内存到内存数据移动和加速逐渐成为系统架构核心组成部分的应用案例。例如,当应用程序希望卸载大量缓冲区复制操作以节省CPU或计算周期时,加速器便派上了用场。在此场景下,可以通过队列化工作描述符环和门铃信号,让加速器执行这些缓冲区复制操作,并在完成后发出完成信号。这就是基于SDXI的加速器如何优化内存到内存数据移动的一个实例。

另一个应用场景是数据持久化。当需要将数据从易失性内存缓冲区移动到持久性内存缓冲区,或者需要将数据从持久性内存缓冲区带回进行计算并再次移动回易失性内存时,加速器同样能够发挥巨大作用。这正是SDXI大显身手的领域。

例如,以虚拟机间用户缓冲区复制为例,SDXI加速器可安全地从源虚拟机读取用户缓冲区数据并复制到目标虚拟机。SDXI标准正是针对加速此类虚拟化缓冲区复制操作。

此外,当系统中存在不同级别的内存时(如DRAM、基于CXL的内存、I/O设备后的内存或其他类型的高带宽内存),可能需要在这些内存之间进行分层管理,并在它们之间提升或降级数据。将此类操作卸载到加速器上,可以让计算单元专注于执行其他更有意义的任务,同时将分层操作交由加速器处理。

当数据从源内存缓冲区移动到目标内存时,基于SDXI的加速器可以进行数据转换。SDXI在定义这些转换类型时具有极高的价值。

当加速器在数据从源缓冲区移动到目标缓冲区的过程中,根据应用程序的需求对数据进行临时计算操作时,基于SDXI的加速器同样能够发挥重要作用。因为在数据从源缓冲区传输到目标缓冲区的过程中,这些计算操作可以并行进行。

鉴于我们正处于AI时代,大家可能会问:“SDXI是否也适用于AI领域?”答案是肯定的。

在AI/ML数据管道中,可能会使用各种数据格式和中间数据表示。许多训练和推理操作都涉及内存中的张量,这些张量可能存在于主机内存、GPU内存等位置。为了进行格式转换或其他AI操作(如量化、缩放、矩阵运算等),需要能够执行不同类型的操作。通过使用不同类型的供应商特定加速器操作,可以降低系统的总体拥有成本。SDXI这样的内存到内存数据移动标准可以帮助在不同地址空间之间执行数据移动,并标准化卸载和转换操作,从而利用统一的架构接口。

因此,SNIA正在开发的这一新标准,无论是在CPU架构、GPU、FPGA还是智能I/O设备中实现,都能使用户直接远程访问应用程序,减少了多个软件上下文隔离层,提供了与指令集架构、安全性相同的架构稳定性,并在不同类型的内存之间实现了高效的数据移动。这使得我们能够基于相同的标准框架进行创新,并添加额外的增量数据加速功能。

展望未来,我们坚信SDXI技术工作组将发挥巨大的价值。

首先,工作组正在开发一个独立于操作系统的用户空间软件库libsdxi,使应用程序能够轻松使用这一加速接口。同时,TWG成员还在努力确保SDXI驱动程序成为各种操作系统的一部分。此外,TWG还在探讨一些在软件中进行SDXI仿真的方案,以帮助ISV为其软件做好准备,因为基于硬件的实现即将面世。作为一个工作组,我们一直在积极讨论1.1版和计划中的2.0版规范的新功能。

在这方面,我们正在研究一个由供应商定义的操作框架,尽管并非每个供应商都希望在自家加速器中实现全部功能,但我们的规范旨在为不同类型的供应商提供一个框架,使他们能够基于自己的一套可定义操作进行创新。当SDXI探讨不同地址空间之间的数据移动时,1.0版规范已解决了已建立连接的稳定状态问题,使加速器能够安全地进行地址空间到地址空间的数据移动。在我们的规划中,我们正在研究一个通过连接管理器进行地址空间间连接中介的框架。

此外,工作组还在定义新的数据移动操作,如POSIX风格的内存操作、CRC(Cyclic Redundancy Check)、DIF(Data Integrity Field)、压缩等。我们也在研究涉及这些类型内存数据移动器的SDXI功能,例如,如何处理可能位于保密内存区域的数据,并确保其能够从一个保密内存区域安全地移动到另一个保密内存区域。

在不断完善规范和探索未来实现的过程中,我们还考虑了其他因素。我们与SNIA的计算存储技术工作组(即SDXI + CS子组)紧密合作,定义了SDXI在计算存储架构中的新应用方式。同时,我们也在探索涉及基于NVMe子系统的架构,不论SDXI是外部还是内部于NVMe子系统。

另外,SDXI在支持CXL的架构中找到了众多应用场景,这是我们工作组下一步研究的重点。

在多次会议上,SDXI都展示了由SNIA成员公司带来的具体概念验证(PoC)。在右侧的图是AMD的William Moyes在MemCon 2024上讨论SDXI的概念验证。在这次演示中,他展示了一个使用LibSDXI库的“Hello World”应用程序,该应用程序通过其描述符队列向SDXI硬件发送所有SDXI描述符。该程序分配了SDXI硬件可以使用的内存缓冲区来执行这些内存复制任务。

在这张图中,看到一个成功的内存复制测试示例,这得益于这次概念验证的实现。我们预计这只是众多即将到来的第一个案例,整个生态系统将继续蓬勃发展。

最后,我想以总结来结束这次分享。SDXI技术工作组目前正在积极推进1.1版及其后续规范的制定工作。我们拥有一个不断增长的软件生态系统,SDXI加速器在AI等新兴领域具有广泛的适用场景。



--【本文完】---

近期受欢迎的文章:

  1. Databricks Data+AI峰会主题发言(Day1 全文)

  2. 内存技术引领计算架构重大变革

  3. IEEE发布:存储介质技术路线图

  4. AI存储需求(SNIA CMSS峰会)

  5. 增加并行文件系统功能是怎么实现的?(2篇)



更多交流,可添加本人微信

(请附姓名/单位/关注领域)

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

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

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