tag 标签: RoCE V2

相关博文
  • 2025-6-18 00:00
    0 个评论
    超越梦想:RDMA高性能IP # RDMA IP开发的目的 本IP开发的目的是研究一款适合于FPGA端的通用性强,性能优越的RDMA IP开发。它支持FPGA之间,FPGA与PC之间高速通信,只需一根光纤(当然,PC端需要转接卡,将光纤转入PC端,例如100G的CX455A-ECAT 100Gbe 网卡 就可以)。 ## RDMA架构 下面给出VCU118上验证通过得架构,该架构如下: 图1 RDMA架构图 对IP的简单控制由Microblaze完成,DDR负责读写等数据缓存。该结构也是便于后续NVMe oF 开发。 ## 性能测试 在xilinx开发平台测试,网卡支持100G,选用的是CX455A-ECAT 100Gbe。支持RDMA RoCE v2协议。 实测数据: SEND 71 Gbps READ 91 Gbps (PC端给FPGA发包,受PC性能限制多一点,需要较好一点的PC机或服务器) WRITE 96 Gbps R/W 延迟: 小于5 us (128字节) 感兴趣的请看视频: https://www.bilibili.com/video/BV1mPV5eCE8z/?spm_id_from=333.337.search-card.all.click 或者B站搜 用户名: 专注与守望, 或搜内容 RDMA IP。 目前也已在ZU47DR上验证通过,W/R同样超过90Gbps! 注意DDR位宽,需要保证它不是传输瓶颈。 一开始觉得 RDMA较难开发,资料比NVMe厚多了;可供参考的资料太少。但毕竟开发过NVMe host IP,积累一些经验,同时也是感受到相关的需求,就决定开发,幸不辱使命。后续会分享相关文档。
  • 2025-6-17 08:23
    91 次阅读|
    0 个评论
    RoCE v2原语 在RoCE v2协议中,应用程序并不直接与网卡接口相关联,开发者使用RDMA原语进行应用程序的开发。RDMA原语分为单边(one-side)语义和双边(two-side)语义,其中,WRITE、READ、ATOMIC为单边语义,SEND、RECEIVE为双边语义,且双边语义往往成对出现。 单边语义指:当本地主机调用单边语义进行操作时,远程主机的CPU完全不会感知这一过程,只有本机的CPU参与数据处理和数据传输流程 。READ、WRITE、ATOMIC操作为单边语义。我们常说的RDMA都是指RDMA单边操作,它提供了最高的吞吐量和最低的数据延迟,同时显著降低CPU负载。在进行READ和WRITE操作之前,需要进行队列创建、队列连接、信息交换等步骤,这些步骤将在之后一一说明。 (1)RDMA READ操作将远端主机内存中的数据读取到本地。具体流程为:本地主机将需要请求数据的地址、长度及对应的远程访问密钥发送给远程主机,远程主机比对密钥通过后,则将数据返回给本地主机。 (2)RDMA WRITE操作将本机内存中的数据写入远程主机。具体流程为:本机将携带写入地址、数据长度、远程访问密钥信息和数据的网络包发送至远程主机,远程主机确认后将数据写入远程主机内存中。 (3)ATOMIC操作即原子操作。简单地讲,该操作以64bit为单位,完全以原子方式读取、修改或写入该地址,同时保证在读取/写入之间,同一通道的其他队列对不会对该地址进行操作。该操作通常在同一子网内的不同节点间进行,用来实现分布式应用中各节点工作的同步。 双边语义指:数据在传输的过程中本地主机及远程主机的CPU都参与工作。SEND、RECEIVE操作为双边语义。其中发送方使用SEND操作,而接收方使用RECEIVE操作。在SEND/RECEIVE操作中,使用SEND操作的一方仅需要发送缓冲区(SEND BUFFER)信息和长度信息即可发送数据包,而不指定接收方具体的接收内存地址;而接收方提供接收缓冲区(RECEIVE BUFFER)及缓冲区长度信息。SEND操作与RECEIVE操作往往成对存在,由于需要双方CPU参与,数据吞吐量较低,但是可以保证数据在传输过程中不会丢失,故双边语义通常用来进行信息交换或错误处理等操作。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video
  • 2025-6-17 08:21
    62 次阅读|
    0 个评论
    RDMA协议共有四种子协议,分别为InfiniBand、iWARP、RoCE v1和RoCE v2协议。这四种协议使用统一的RDMA API,但在具体的网络层级实现上有所不同,如图1所示,接下来将分别介绍这四种子协议。 图1 RDMA四种子协议网络层级关系图 InfiniBand:InfiniBand是一种专为RDMA设计的网络,其传输层、网络层及链路层均遵循IB协议规范,没有类似以太网的复杂协议交互计算,从硬件级别保证传输可靠,但成本较为高昂,需要使用专用的IB交换机和IB网卡才可以正常路由。 RoCE v1与RoCE v2:RoCE协议即RDMA over Ethernet,其在以太网上承载IB协议,与IB协议具有相同的传输层,仅在网络层和链路层与IB协议存在差异。RoCE协议有v1和v2版本,其中RoCE v1只能部署于二层网络,其报文结构是在原有IB协议报文基础上增加二层以太网报文头,通过ETH Type标识RoCE报文。而RoCE v2基于UDP/IP协议承载RDMA,可部署在三层网络环境下,在原有IB协议报文基础上增加UDP头、IP头和ETH头,通过UDP端口号4791标识RoCE v2报文。使用普通以太网交换机搭配IB网卡即可实现网络路由。 iWARP:iWARP协议是基于TCP/IP协议的RDMA网络,能够工作在任何TCP/IP协议的网络上层,同时将TCP/IP处理流程从CPU卸载到RDMA网卡处理。仅需要使用普通以太网交换机和iWARP网卡即可实现路由。但在大规模部署时,由于TCP/IP协议点对点连接的特性,将会占用大量的内存资源,对系统规格的要求更高 在对比这四种子协议时,将RoCE v1与RoCE v2协议放在一起讨论,RDMA的子协议的比较如表1所示。 表1 RDMA四种子协议的比较 在当今数据中心应用中,综合考虑到成本、性能、硬件需求等因素的前提下,RoCE v2协议正逐渐成为主流RDMA协议。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video
  • 2025-6-16 17:51
    0 个评论
    随着数据中心对于网络带宽和延迟的要求日益增长,传统的TCP/IP网络已无法满足性能要求,RDMA网络则凭借其高带宽、低延时的特性脱颖而出。相较于传统TCP/IP协议,RDMA具有零拷贝、不需要CPU接入、消息基于事务等特点 。RDMA协议与传统TCP/IP协议在通信过程中的区别如图1所示。 图1TCP/IP协议与RDMA协议区别图 在图1中,左侧部分为传统TCP/IP协议的通信过程,当需要发送数据包时,应用程序将要传输的数据拷贝到TCP/IP协议栈的BUFFER中,TCP/IP协议栈组包后,再经由驱动程序下发到网卡内的BUFFER中。右侧部分则为RDMA协议的通信过程,其将RDMA协议部署在融合以太网卡(RNIC)上,在对数据包的组装和拆解过程中,不需要CPU及操作系统介入干预,也不需要进行内存拷贝操作。当发送数据包时,直接由应用程序通知网卡要发送的数据在内存中的起始地址及数据长度,而后RNIC则读取其已经在内存中注册好的区域数据并依照协议规范进行数据包的组装及传输。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video