RDMA应用场景及效果
RDMA应用场景及效果
RDMA(Remote Direct Memory Access,远程直接内存访问)是一种高性能的网络通信技术,它允许网络接口直接读写远程系统内存,而无需经过CPU和操作系统内核的干预,从而大大提高了数据传输效率。本文将介绍RDMA在GPU Direct和Redis场景中的应用效果。
GPU Direct RDMA
在AI训练场景中,GPU Direct RDMA技术发挥着重要作用。每个GPU都有自己的内部互联,例如NVIDIA的A100或H800,它们内部的NVLink互联可以达到600GB甚至900GB的带宽。这种内部互联与外部以太网网络集群设计之间存在耦合关系。GPU是单机多网卡的,单机内的多张网卡之间有高速互联,单个服务器的带宽可以达到3.2T,与通用CPU计算带宽相比至少有6到8倍的关系。GPU需要使用GPU Direct RDMA来实现显存之间的数据迁移,并且需要超短的RTT(往返时延)。
Redis场景下的SMC-R实践
在Redis场景下,SMC-R(共享内存通信)技术可以显著提升性能。根据测试结果,在redis-banchmarh测试中,SET方法在使用TCP协议下,无论线程数或数据包大小场景下均比较稳定。而在使用SMC协议下,性能提升幅度较大,达到40%以上。在线程数8、数据包大小64的情况下,性能提升甚至达到60%。GET方法的测试结果与SET方法相近,性能提升趋势也基本一致。
SMC与RDMA的关系
SMC(共享内存通信)和RDMA的关系密切。实际上,RDMA就是一种远程SMC。借助SMC+ERDMA(增强型RDMA)可以实现硬件卸载RDMA,支持大规模部署,二者相辅相成。
开源项目
龙蜥社区提供了一个开源项目,链接为:https://gitee.com/anolis/hpn-cloud-kernel。该项目提供了SMC-R的系列解读,包括融合TCP与RDMA的SMC-R通信技术。通过使用SMC+ERDMA,可以实现云上超大规模高性能网络协议栈,性能提升可达50%。
总结
RDMA技术在高性能计算和网络优化领域具有重要应用价值。无论是GPU Direct场景还是Redis数据库场景,RDMA都能显著提升数据传输效率和系统性能。随着技术的不断发展,RDMA将在更多场景中发挥重要作用。