NVIDIA发布了其DOCA GPUNetIO库的新功能,实现了GPU加速的远程直接内存访问(RDMA),用于实时内联GPU数据包处理。此增强功能利用了GPUDirect RDMA和GPUDirect Async等技术,使CUDA内核可以直接与网卡(NIC)通信,绕过了CPU。据NVIDIA技术博客称,此更新旨在通过减少延迟和降低CPU使用率来改进以GPU为中心的应用程序。
增强的RDMA功能
之前,DOCA GPUNetIO与DOCA Ethernet和DOCA Flow一起用于以太网传输层上的数据包传输。最新的更新,DOCA 2.7,引入了一组新的API,使GPU CUDA内核可以直接使用RoCE或InfiniBand传输层进行RDMA通信。这一发展通过使GPU能够控制RDMA应用程序的数据路径,实现了高吞吐量、低延迟的数据传输。
RDMA GPU数据路径
RDMA允许两个主机的主内存之间直接访问,而不涉及操作系统、缓存或存储。这通过注册并共享本地内存区域与远程主机来实现,从而实现高吞吐量和低延迟的数据传输。该过程涉及三个基本步骤:本地配置、信息交换和数据路径执行。
凭借新的GPUNetIO RDMA功能,应用程序可以在GPU上管理RDMA应用程序的数据路径,通过CUDA内核而不是CPU执行数据路径步骤。这减少了延迟并释放了CPU周期,使GPU成为应用程序的主要控制器。
性能比较
NVIDIA使用perftest微基准测试套件对GPUNetIO RDMA功能和IB Verbs RDMA功能进行了性能比较。这些测试在配有NVIDIA H100 GPU和ConnectX-7网卡的Dell R750机器上进行。结果表明,DOCA GPUNetIO RDMA性能与IB Verbs perftest相当,两种方法都实现了相似的峰值带宽和耗时。
在性能测试中,参数设置为1个RDMA队列、2,048次迭代和每次迭代512次RDMA写入,消息大小从64到4,096字节不等。两种实现方式在增加到四个队列时都达到了高达16 GB/s的峰值带宽,展示了新GPUNetIO RDMA功能的可扩展性和效率。
优势和应用
将RDMA数据路径控制卸载给GPU的架构选择具有多种优势:
- 可扩展性:能够并行管理多个RDMA队列。
- 并行性:多个CUDA线程同时工作,具有高度的并行性。
- 较低的CPU使用率:平台独立的性能,CPU参与最少。
- 减少总线事务:由于不再需要CPU进行数据同步,因此内部总线事务减少。
此更新对那些数据处理发生在GPU上的网络应用特别有利,能够实现更高效和可扩展的解决方案。更多详情,请访问NVIDIA技术博客。
Image source: Shutterstock