下载白皮书

高速,最高可靠性:Atlas10相机下的RDMA(远程直接内存访问)技术

ATLAS10相机下的RDMA (远程直接内存访问)技术

随着新技术的出现,高速数据传输的格局在不断演变,以满足带宽密集型应用日益增长的需求。以太网UDP协议由于其简单性和低延迟性,多年来一直是GigE Vision相机数据流的首选协议。然而,随着对超过1千兆的带宽应用的需求不断上升,需要一个更有效和可靠的传输标准来处理大量增加的数据。这个高速可靠的处理大量数据的需求引发了远程直接内存访问(或称RDMA)技术的采用,其作为UDP的一个可行的替代品,非常适用于10G和25G的多相机应用。

包含:
  • 为什么在GIGE VISION标准中使用UDP?
  • 用于万兆以太网相机时UDP的挑战
  • 消除CPU的瓶颈
  • 汇聚以太网上的远程DMA(ROCE V2)
  • RDMA连接和传输步骤+注意事项!
  • 用于GIGE VISION的RDMA
  • GPU内存怎么样?
  • UDP与RDMA的基准比较
  • 未来是快速的
点击 “提交” 后,将提供一个下载链接。

预览

Surviving Industrial Challenges To build these compact embedded vision systems however, application designers must navigate the challenges of harsher operating environments and the complexities of building smaller, faster, more power efficient systems. They must work to validate their system through time-consuming stages, starting from the proof of concept (POC), to prototyping, and finally to a minimum viable product (MVP) or a Full Custom Design (FCD). Off-the-shelf embedded development kits, such as those from NVIDIA, Xilinx, or Raspberry Pi offer a quick solution to building a proof-of-concept design. However, many camera modules and embedded development boards offer little to no protection from the harsh environments of industrial spaces. A considerable amount of time must be spent on designing and testing prototypes that are protected against dust and moisture (IP67 or IP65), electromagnetic interference (EMC immunity) and ... 填写上面的表格并下载PDF文件。 在以太网网络上适应RDMA可以实现以下好处:
• 在所有速度的以太网网络中,可以获得最快的吞吐量和最低的延迟,与现有的交换基础设施和布线兼容。

• 通过零拷贝实现数据包处理的完全硬件卸载,没有CPU参与;能够向远程缓冲区发送和接收数据。

• 全面的工业连接解决方案生态系统提供安全的连接器、EMI屏蔽、接地隔离和以太网供电(PoE)。

• 得到许多硬件和软件解决方案供应商的支持--包括Broadcom、Marvell、Nvidia和Intel--促进互操作性。
主机通道适配器(HCA)管理RoCE操作,在硬件中实现执行RDMA协议所需的所有逻辑。数据分割和重组以及流量控制由HCA管理,允许发送方和接收方的应用程序在整个缓冲区内工作。RDMA通道是通过 “钉住 “内存启动的。在主机上为RDMA的使用保留一个内存区域,应用必要的保护措施,然后主机将地址传递给HCA,并将自己从数据路径中移除。这个注册的内存区域现在可以用于任何RDMA操作,绕过操作系统,并且不产生额外的CPU负载。

RoCE RDMA事务使用三个队列。发送和接收队列处理所有的数据交易,并且总是作为一个队列对(QP)一起创建。完成队列(CQ)用于跟踪QP上安排的工作的完成情况。QP可以实现应用层面的流量控制,以通知发送方可用的缓冲区,用于接收方的RDMA传输。
图7:在传统的网络堆栈中(左),从一个应用程序到远程机器上的另一个应用程序的数据传输涉及多个缓冲区拷贝和上下文切换,以便在每个阶段调动CPU。在RoCE网络中,数据直接从发起者应用传输到目标应用,没有CPU参与,完全绕过了操作系统栈。 使用LUCID 10GigE相机启用
RDMA需要什么?


• 带有RDMA固件的LUCID Atlas10摄像机

• RDMA 10GigE主机通道适配器(HCA)

• (可选)带有PFC优先级启用的VLAN的10GigE交换机

• Cat6或更好的以太网电缆
在RDMA数据传输发生之前,必须为每个硬件端口创建一个队列对(QP)和一个完成队列(CQ),称为RDMA网络的通道适配器(CA)。
相机上需要什么:
摄像机QP(发送和接收队列)
摄像机CQ (完成队列)
由于MS Windows®中的Network Direct和Linux中的Libibverbs库,为RDMA用户应用程序注册和保留主机内存成为可能。 RDMA数据传输只有在内存被注册后才能开始。这是通过 “钉住 “主机的内存来实现的。一个内存区域由操作系统保留并在HCA注册。 主机通道适配器(HCA)端口2。
HCA2 QP (发送和接收队列)
HCA2 CQ (完成队列)
主机通道适配器(HCA)端口1。
HCA1 QP (发送和接收队列)
HCA1 CQ (完成队列)
如何在应用程序中对RDMA设备进行编程?这要从RDMA动词开始,它是RDMA应用程序的低级构建块。它们由各种API库访问,然而,使用的两个主要库是Linux的Libibverbs API和Microsoft Windows的Network Direct SPI。这些API允许RDMA设备建立通道适配器连接,引脚和注册内存,执行数据传输,并终止连接。

有两种类型的动词:单侧和双侧动词。单边动词允许远程设备(如相机)在发送数据时完全绕过CPU/OS。双面动词的作用更像是利用CPU/OS的传统插座。LUCID使用双侧动词。与传统的以太网数据传输相比,使用双侧动词仍然消除了几个CPU开销的来源。使用双侧动词对于重新排队传输和轮询CQ是必要的。这些任务占用的CPU资源可以忽略不计。
======RDMA动词和动词API======