RDMA-典型编程步骤

1.Get the device list;

首先,您必须检索本地主机上可用的IB设备列表。这个列表中的每个设备都包含一个名称和一个GUID。

2.Open the requested device;

浏览设备列表,根据设备的GUID或名称选择设备并打开。

3.Query the device capabilities;

设备功能允许用户了解所打开设备的支持功能(APM、SRQ)和功能。

4.Allocate a Protection Domain to contain your resources;

保护域(PD)允许用户限制哪些组件只能相互交互。这些组件可以是AH、QP、MR、MW和SRQ。

5.Register a memory region;

VPI只适用于注册内存。任何在进程的虚拟空间中有效的内存缓冲区都可以注册。在注册过程中,用户设置内存权限,并接收本地和远程键(lkey/rkey),这些键稍后将用于引用这个内存缓冲区。

6.Create a Completion Queue (CQ);

CQ包含完成的工作请求(WR)。每个WR将生成一个放置在CQ上的完成队列条目(CQE)。CQE将指定WR是否成功完成。

7.Create a Queue Pair (QP);

创建QP还将创建关联的发送队列和接收队列。

8.Bring up a QP;

创建的QP仍然不能使用,直到它经过几个状态的转换,最终到达准备发送(RTS)。这为QP提供了发送/接收数据所需的信息。

9.Post work requests and poll for completion;

使用创建的QP进行通信操作。

10.Cleanup;

按创建对象的相反顺序销毁对象:
删除QP
删除CQ
取消注册
释放PD
关闭设备

翻译:https://docs.nvidia.com/networking/display/RDMAAwareProgrammingv17/Typical+Application
网上可以跑通的demo:https://github.com/tarickb/the-geek-in-the-corner

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值