综合描述:
 
13 年来,Emergent 为 GigEVision 的性能扫除了障碍,铺平了道路,而我们一手开发的底层系统/主机技术却没有得到我们应有的重视,其核心就是我们的零拷贝技术。
 
当时没有其它人考虑 10G 甚至 5G,只有 Emergent 在重视和研发。直到最近,GigEVision 技术委员会才关心高性能以太网技术。
 
就从Emergent 与 Myricom(现为 CSPi)共同构建 GigEVision 标头分割技术,共同创建 MVA(机器视觉加速器)库开始。这使得零拷贝 GigEVision 接收器技术首次适用于 10GigE 相机。
 
自此,其它公司在行业中也采用了 MVA:Pt Grey Research/Flir/Teledyne、SVS Vistek、Baumer 等等。
 
Emergent 继续使用其VMA(现在的Rivermax)库与Mellanox(现在的NVidia)共同构建 GigEVision 标头拆分技术。这使得零拷贝GigEVision 接收器技术首次适用于25GigE 和100GigE 相机,而且能用于通过交换机复用到100G NIC 上的许多10G 相机。现在包括Baumer 在内的很多公司也都纷纷开始采用这项技术。
 
最近,Emergent完成了与Broadcom NIC的相同集成,以实现更大的互操作性。几年来,我们也一直在做GPU Direct,以满足对高性能应用程序的需求。我们有一个 GPU 插件功能,用于快速原型设计和部署。
 
尽管如此,与 RDMA/RoCEv2的做法不同,我们没有对该技术进行重大变革,依然保留了以太网的基本原理,如多播,这是我们许多客户必须具备的。
 
RDMA/RoCEv2与CXP、USB、CameralinkHS一样是点对点的,所以没法实现高级网络。大规模媒体和娱乐行业中的SMPTE 2110已将相同的底层标头拆分技术用于其 UDP 数据。这些底层技术可在任何支持RDMA/RoCEv2的NIC上使用。
 
然后还有 GigEVision 采集卡的开发,它比现有的网卡更有好处。请留意我们也是第一家厂家开发 GigEVision 采集卡,Teledyne 也在沿着这条路走下去。别忘了 Emergent Zeus 100G 和 Hermes 25G GigEVision 网卡率先实现零复制和 GPU 直接操作。
 
因此,相较于RDMA/RoCEv2与CXP、USB、CameralinkHS这些点对点通讯中的弊端,Emergent推出的零拷贝和GPU Direct技术,很好的继承了传统GigE Vision的优点,又弥补了这些不足,解决了在大数据、高帧率以及多相机等应用场景中其它方式都无法完全攻克的难题,为GigE Vision的推广铺平了道路。
 
主要性能指标:
 
零拷贝GigEVision是一种将图像从GigE相机传输到系统内存的技术。GigEVision图像是由分组组成的,这些分组携带图像,但也携带报头信息。需要从数据包中剥离标头,以提供完整且非碎片化的图像,而零拷贝是一种在不影响系统内存带宽和将CPU利用率保持在2%以下的情况下做到这一点的技术。
 
Emergent的GPU Direct技术将图像从GigE相机直接传输到GPU内存,而无需利用CPU资源或系统内存到GPU内存的复制操作。
 
这两种技术都是将图像从相机传输到处理资源(如系统内存和GPU内存)以获得最佳性能的方法,从而实现最大的系统性能和密度。
 
eCapturePro是一个应用软件平台,利用零拷贝GigEVision技术将图像传输到内存,或使用GPU Direct技术将图像传送到GPU内存。eCapturePro还允许将采集的图像记录到SSD上,或在记录到SSD或用于进一步处理之前由GPU 插件进行处理。
 
GPU插件允许客户在只编程GPU CUDA代码的同时开发自己的GPU算法。零拷贝GigEVision和GPU Direct都在引擎盖下运行,以确保图像以最佳性能呈现给其自定义插件。
 
产品优势:
 
GPU Direct在机器视觉中非常罕见,在 Emergent围绕它开发之前,它在GigEVision中也不存在。
 
零拷贝GigEVision和GPU Direct技术的使用允许多达48台相机将图像传输到单个中端服务器,以便记录到SSD或GPU Direct进行图像处理。我们的底层零拷贝和GPU Direct技术允许系统在每个服务器中配置40个25GigE相机,系统相机总数超于500台相机。
 
使用 Zero Copy GigEVision 和 GPU Direct 可以实现最大的系统性能和连接到服务器的最大数量的相机。
 
应用领域:
 
eCapturePro 中使用了零拷贝GigEVision 和 GPU Direct技术,允许用户快速开发基于CUDA的插件来验证算法。只有特定于算法的 GPU CUDA代码需要编程,从而简化了算法的验证,而不必从图像采集、内存管理和图像保存例程的C++编程开始。