一、什么是 RDMA

远程直接内存访问 (RDMA) 是一种允许联网计算机直接访问彼此主内存的技术,无需涉及处理器、缓存或操作系统,是一个由多个公司和组织合作开发的技术标准。这种旁路方法减少了 CPU 负载并降低了延迟,从而实现更快的数据传输速度,非常适合需要高速数据传输的应用,例如高性能计算 (HPC) 集群、数据中心网络和大数据分析。

可以这样形象化理解:

  • 以前:快速是需要送到大楼的收发室里,再由收发室送到收件人手里,收到收发室大爷的处理能力影响,同时处理的快递数量有限,且有延迟
  • 现在:快递从发件人直接送到收件人手里

二、RDMA 与 TCP/IP 的区别

特性RDMA (远程直接内存访问)TCP/IP (传输控制协议/互联网协议)
定义一种网络技术,允许应用程序直接访问远程主机的内存一种网络协议,用于在网络中传输数据
传输方式直接内存访问,无需操作系统内核介入通过操作系统内核进行数据传输
延迟低延迟,适合高性能计算延迟较高,不适合高性能计算
带宽高带宽,适合大量数据传输。带宽受限于操作系统内核处理能力
CPU占用低CPU占用,减少对主机CPU的依赖高CPU占用,增加对主机CPU的需求
数据传输直接在内存中传输数据,无需复制到内核空间数据需要在用户空间和内核空间之间复制
可靠性通常不提供可靠性保证,需要应用程序处理提供可靠性保证,如TCP的三次握手和数据确认
适用场景适合高性能计算、存储和数据中心应用适合广泛的网络应用,如Web浏览、文件传输等
配置复杂度配置复杂,需要特定的硬件和软件支持配置相对简单,广泛支持各种操作系统和设备
成本硬件和软件成本较高硬件和软件成本较低
安全性需要额外的安全措施来保护数据传输通过TCP/IP协议提供基本的安全保障

三、领导者 NVIDIA 的 RMDA 实现方式

1、单机多卡

简单理解:一块主板上多个 GPU,有三种不同场景下的应用

特性GPUDirectNVLinkNVSwitch
定义一组技术,增强 GPU 的数据移动和访问能力用于连接多个 GPU,常用于 < 8 个 GPU 卡用于连接多个 GPU 和 CPU,常用于 > 8 个 GPU 卡
目的加速与网络和存储设备的通信,支持 GPU 之间的 P2P 传输和内存访问提供 GPU 之间的高速、低延迟连接,主要限于 GPU 之间的连接提供 GPU 和 CPU 之间的高速、低延迟连接,支持复杂的多 GPU 拓扑结构,扩展性较好
工作方式通过 PCI Express 直接访问 GPU 内存,支持 RDMA 和 P2P 传输通过专用的物理连接和协议,实现 GPU 之间的直接通信通过专用的物理连接和协议,实现 GPU 和 CPU 之间的直接通信,并支持多 GPU 之间的通信
适用场景适用于需要频繁在 GPU 和 CPU 之间传输数据的应用程序,如科学计算和数据分析适用于需要多个 GPU 协同工作的高性能计算和深度学习应用适用于需要多个 GPU 和 CPU 协同工作的大规模并行计算和深度学习应用

2、以 RMDA 为核心的多机多卡

InfiniBandRoCEiWARP
网络基础专门为高性能计算设计的专用网络技术,它从硬件级别保证可靠传输,提供更高的带宽和更低的时延,但成本较高基于以太网的RDMA技术,可以在现有的以太网基础设施上实现,使用普通的以太网交换机但需要支持RoCE的网卡基于TCP/IP网络的RDMA实现,利用现有的TCP/IP网络和协议,但性能可能受到TCP协议特性的影响
性能提供最好的性能,包括最高的带宽和最低的延迟性能与InfiniBand相当,但可能在大规模部署时性能略逊一筹性能稍差,因为它依赖于TCP协议,可能会有更多的开销
成本成本最高,需要专用的硬件和网络组件成本较低,因为它可以复用现有的以太网基础设施成本介于两者之间,但可能需要特殊的网卡支持
部署和兼容性需要专门的InfiniBand交换机和网卡,部署可能更复杂使用标准的以太网交换机,但需要支持RoCE的网卡,部署相对简单利用现有的以太网交换机和支持iWARP的网卡,但可能需要对TCP/IP堆栈进行优化
适用场景常用于存储前端网络或高性能计算集群中常用于存储后端网络,尤其是在数据中心环境中适用于需要跨广域网进行RDMA操作的场景,尽管它可能不如RoCE或InfiniBand那样适合数据中心内部的高速通信

四、值得关注的 CXL

CXL(Compute Express Link)是一种先进的互连技术,由英特尔在2019年提出,旨在实现计算、内存、存储和网络的解耦,并在CXL总线上提供持久内存。其中较新的版本 CXL 3.0,是基于PCIe 6.0,支持更高的带宽和更低的延迟,并增加了设备热插拔、电源管理和错误处理等新功能

成员包括:英特尔、AMD、谷歌、微软、华为、三星、SK海力士、美光、Marvell、澜起科技等

CXL 和 RMDA 的综合对比

延迟:CXL 的延迟通常低于 RDMA。CXL 的访问延迟约为 170 至 250 ns,而 RDMA 的延迟约为 2 μs
带宽:虽然两者都提供高带宽,但 CXL 通过 PCIe 物理层实现更高的传输速率
内存扩展:CXL 更适合内存扩展,因为它允许 CPU 直接访问远程内存,而 RDMA 主要用于网络传输
应用场景:CXL 更适合内存密集型应用和需要低延迟访问的场景,而 RDMA 更适合需要高带宽和大规模互联的场景

标签:产品, AI

评论已关闭