【RDMA】安装RDMA Soft-RoCE|虚拟机安装Soft-RoCE
目录
RoCE既可以通过硬件实现,也可以通过软件实现。 Soft-RoCE 是 RDMA 传输的软件实现。
既然RoCE可以通过软件实现,为什么会对硬件有依赖?
RDMA技术本身的一大特点就是“硬件卸载”,即把本来软件(CPU)做的事情放到硬件中实现以达到加速的目的,RoCE由软件实现就无法实现对CPU减负。
如果不考虑CPU减负,自然就可以使用软件的RoCE--Soft-RoCE
什么是Soft-RoCE
softRoCE的目标是在所有支持以太网的设备上都可以部署RDMA传输,可以使不具备RoCE能力的硬件和支持RoCE的硬件间进行基于IB语义的交流。
大白话就是模拟RDMA的软件栈,使得在没有RDMA网卡的环境上,也可以运行基于RDMA写的传输程序。
但是因为RDMA网卡的一大特色之一就是,传输的动作是网卡上的芯片处理的,普通网卡没有这样的硬件,所以只是实现了0拷贝,而没有真正的RDMA网卡的CPU减负功效。
更多关于Soft-RoCE,见:http://t.csdn.cn/SuM9m


Soft-RoCE的作用
可以不依赖于硬件不是RoCE,方便学习。
与TCP的性能对比
理论上:
虽然软件实现IB传输层带来了一定的开销,但是相比基于Socket-TCP/IP的传统通信方式,Soft-RoCE因为减少了系统调用(只在软件通知硬件下发了新SQ WQE时才会使用系统调用),发送端的零拷贝以及接收端的只需要单次拷贝等原因,仍然带来了性能上的提升?。
实际:
注意:根据网友们的反馈以及我自己实测,Soft-RoCE的性能不及TCP。主要是几个原因:
1. IB传输层MTU最大为4096,256 Bytes的Header + 4096 Bytes的Payload,Header所占比例较高;而TCP的MTU可以很大,相当于提高了有效载荷。
2. 网卡往往可以为TCP提供硬件加速功能。
3. Soft-RoCE用CPU去计算CRC,这是一件很慢的事情。
这里提供我能想到的提升性能的思路:
1. 在编程时做多线程,每个线程绑定一个核,并且每个线程间不要共享使用QP,因为会出现抢锁。
2. 使用WR List代替单个WR,即每次Post Send时下发多个WR组成的WR链表,减少敲Doorbell时的系统调用开销。
3. 将网卡的
浙公网安备 33010602011771号