随着数据的爆炸式增长,各个领域对计算机硬件的处理能力有了更高的要求。相比于CPU和GPU等计算设备的快速发展,传统的以太网领域发展明显滞后并逐渐成为性能瓶颈。大量产品线都希望改善网络性能,通过使用更高带宽,更低延迟的网络来提升业务能力。
对奋战在一线攻城师来说,常常会有这样的感受
为什么发送数据要花这么长时间?为什么计算能力这么牛的服务器老是要长时间等待网络传输完成?为什么网络能明目张胆的拖后腿?
本文将带来RDMA高性能网络,分析性能优势,介绍在机器学习领域的成功实践,以及下一步的展望。
什么是RDMA高性能网络
提到计算机网络,相信大家的脑海中马上会浮现OSI七层模型,HTTP、TCP和IP这些关键字。但是本文中描述的是另外一种网络: RDMA (Remote Direct Memory Access)。
首先介绍DMA,作为主机内存和外部设备之间传输数据的一种方式,系统将内存做完虚拟地址和物理地址映射之后,就将数据传输的控制权交给了外部设备的DMA控制器,然后所有的数据传输操作都由外部设备来完成。这样能够带来一个非常大的好处就是节省了CPU资源。
所谓RDMA,可以简单理解为利用相关的硬件和网络技术,服务器1的网卡可以直接读写另一个服务器2的内存,最终达到高带宽,低延迟和低资源利用率的效果。如下图所示,应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。
为了方便大家更好的理解,笔者画了一张简易的示意图来对比RDMA和传统TCP/IP网络在Server端发送数据的数据通路。可以看到,RDMA的性能优势主要体现在以下几个方面。
Zero Copy:减少数据拷贝次数。由于没有将数据拷贝到内核态并处理数据包头部的过程,传输延迟会显著减小。
Kernel Bypass和Protocol Offload:不需要内核参与。数据通路中没有繁琐的处理报头逻辑,不仅会使延迟降低,而且也大大节省了CPU的资源。
GDR这项技术从2014年起就一直在跟进,之前由于相关技术原因一直没有应用到实际的业务中。随着这些技术问题不断得到解决,这项技术正在逐渐走向成熟。从最新的测试结果来看,OpenMPI+GDR的方式能够大幅度降低跨节点GPU的传输延迟,而且传输带宽也能够接近限速,相信不久就能在实际应用中为异构计算提速。
3.为基础服务加速,由于RDMA网络和传统数据中心的完美融合。
今后会逐渐推广至公司的各项业务中,为各项基础网络服务加速。当然,系统部的研发同学也会提供使用更方便的网络接口为各项业务服务。