GigE Vision 3.0にRoCE v2が統合されたことで、Remote Direct Memory Access(RDMA)は高速Ethernetカメラにおける標準技術となりました。これにより、より信頼性の高いストリーミングと低CPU負荷が実現し、スケーラブルなマルチカメラ展開に最適なソリューションとなります。 GigE Vision 3.0とRoCE v2:
Ethernetによる高性能画像転送の標準化
RDMA Camera Lucid Tech Brief TCP for 10GigE Banner

急速な技術革新の歩み

マシンビジョンシステムがより高解像度化し、フレームレートの高速化が進むにつれて、画像データ量も急増し、従来のネットワーク構成ではその限界に達しつつあります。10GigEや25GigEといった高スループットかつ高度な画像処理を伴うカメラの採用が進む中で、システムインテグレーターはパケットロスに直面することがあり、これがCPU負荷の増加やレイテンシのばらつきを引き起こす可能性があります。これらの課題に対応するには、慎重な最適化、あるいはカスタムや独自ソリューションの導入が必要になることもあります。しかし、GigE Vision 3.0とRoCE v2(RDMA over Converged Ethernet version 2)規格によるRDMA(リモート・ダイレクト・メモリー・アクセス)対応の登場により、マシンビジョン業界は、データセンターやHPC(ハイパフォーマンス・コンピューティング)分野で実績のある高性能な転送プロトコルを取り入れ始めています。本記事では、GigE VisionとRoCE v2という2つの規格がどのように融合し、より効率的かつスケーラブルで将来性のあるマシンビジョンネットワークの実現に貢献しているかを解説します。

より多くのデータ、より高度な処理 高速センサーや大容量インターフェースの進化により、マシンビジョン分野では急速なイノベーションが進んでいます。それと同時に、検査タスクの高度化によって、ホストシステムへのデータおよび処理負荷も増大しています。 Single Vision system, one computer one camera More complex vision system, multi-camera application Very complex vision system, multi-camera and complex topology Data-processing1 Data-processing2

GigE VisionとRoCE v2:異なる進化をたどってきた2つの規格

GigE Vision規格は、マシンビジョン用途において画像データをEthernet上で転送する方法を統一する目的で2006年に導入されました。 この規格は、カメラ、ソフトウェア、ネットワーク機器間の相互運用性を確保するため、UDPに基づいた共通のフレームワークを確立しました。その後、GigE Visionは機能の追加を重ねてきました。2008年のGigE Vision 1.1では、パケット再送機能やチャンクデータのサポートが追加され、2012年のGigE Vision 2.0では、IEEE 802.3baによるリンクアグリゲーションおよび10ギガビットの正式サポート、圧縮機能、非ストリーミングデバイス制御が導入されました。さらに、2018年のGigE Vision 2.1では、バッファとイベント処理の改善、より複雑な3Dデータ構造への対応が追加され、2022年のGigE Vision 2.2では、GenDCストリーミングおよびマルチイベントデータのサポートが実装されています

GigE Vision
Infiniband Trade Association

一方で、データセンターやHPC(高性能コンピューティング)業界では、別の課題――サーバー間で大量のデータを低遅延かつ低CPU負荷で転送する方法――の解決に取り組んでいました。このニーズに応える形でRDMA(Remote Direct Memory Access)技術が開発され、RoCE(RDMA over Converged Ethernet)が登場しました。RoCEは、InfiniBand Trade Association(IBTA)によって開発され、InfiniBandの高性能RDMA通信を標準的なEthernetネットワーク上で実現することを目的としています。RoCE v1(2010年登場)はレイヤー2で動作し、ローカルネットワーク内での利用に限られていましたが、RoCE v2(2014年登場)ではUDP/IPカプセル化が追加され、ルーティングが可能となり、標準的なEthernetネットワーク全体に拡張・スケーラブルな通信が実現しました。この10年間で、他のRDMA技術との競争もありましたが、RoCE v2はクラウドコンピューティング、ストレージ、リアルタイム分析の分野で成熟し、広く採用されるに至っています。

10 Mbps
1983
100 Mbps
1993
1 Gbps
1998
10 Gbps
2002
RoCE v1
Released

2010
InfiniBand
Spec v1 Released

2000
(InfiniBand originated from a merger of Future I/O & Next Generation I/O) 2006 40 / 100 Gbps
2010
InfiniBand
Linux Compatibility

2004
GigE Vision 2.1
2018
RoCE v2
Released

2014
25 Gbps,
2.5 / 5 Gbps
(NBase-T)
2016
200 /
400 Gbps
2017
GigE Vision 2.0
2011
GigE Vision 2.2
2012
800 Gbps - 10 Tbps
2023 and Beyond...
Long ethernet cable GigE Vision logo

GigE VisionとRoCE RDMAはいずれも確立された実績を持つ規格です。

なぜ今か:RDMAとGigE Visionの融合

EthernetベースのマシンビジョンカメラにRDMAの概念を適用するというアイデアは、2016年にGigE Vision標準委員会によってすでに検討されていました。2017年には、この委員会内でRDMA用に設計された新しいGVSPペイロードタイプの提案もなされました。技術的には実現可能でしたが、当時のマシンビジョン業界全体としては、まだその準備が整っていませんでした。当時は、iWarpプロトコルやIntelのOmni-Pathアーキテクチャなど、他の競合RDMA技術も存在していたため、どのRDMA技術が主流になるか明確ではありませんでした。RoCE v2は徐々に人気を集めつつありましたが、RoCE v2対応のNICは非常に高価で、しかも単一のベンダーからしか供給されておらず、ビジョンシステムへの統合には追加のエンジニアリング作業が必要とされていました。

HPC and data centers needed RDMA

RoCEは、2010年にIBTA(InfiniBand Trade Association)によって、高性能コンピューティング環境にRDMAを導入する目的で発表されました。2014年に登場したRoCE v2では、IPルーティングとフロー制御が追加され、よりスケーラブルで標準化されたネットワーク環境での展開が可能となりました。

同時期、多くのマシンビジョン用途では1GigEカメラで十分な性能が得られており、より高い帯域幅を必要とするユーザーには、すでにUSB 3.0やCameraLink、CoaXPressといった代替手段が利用されていました。高スループットのEthernetへの需要は着実に増加していたものの、まだ限定的な範囲にとどまっていました。10GigEの初期導入者は、強力なホストPCを活用した比較的単純なビジョン処理を行っており、適切なチューニングを施すことでUDPベースのデータ転送でも十分に対応可能でした。そのため、多くのカメラメーカーはRDMAへの対応に踏み切らず、RDMA対応のエコシステムを構築・維持するための投資に慎重な姿勢を見せていました。メーカー側の広範なサポートも、エンドユーザー側からの強い需要も得られなかったことから、GigE Vision標準にRDMAを組み込む取り組みは一時的に保留となっていました。

しかし、時が経つにつれて、複数の10GigEカメラを活用するアプリケーションの需要が大幅に高まり、RDMAの再評価が必要な段階に達しました。より多くのユーザーが、単なる通信速度だけでなく、イーサネットの産業用途における信頼性やネットワーク柔軟性を求めてイーサネットカメラを選ぶようになりました。電気的絶縁、長距離ケーブル、PoE(Power over Ethernet)、PTP(Precision Time Protocol)、アクションコマンドなどの機能により、イーサネットは複雑かつスケーラブルなビジョンシステムに最適なインターフェースとなっています。ユーザーは、産業用イーサネットの利点と10GigE以上の帯域幅の両方を求めていたのです。しかし、複数の10GigEカメラを使用したシステムで高度な画像処理を実装し始めると、UDPによるパケットロスや再送処理によってCPU負荷が増大し、信頼性の問題に直面するケースが多くなりました。複数の10GigEカメラストリームを処理するために必要なCPUリソースの増加により、GigE Vision標準におけるRDMAの再評価が今こそ必要であることが明確になってきました。

UDPパケット再送のボトルネック: 10GigEおよび25GigEカメラは非常に大量のデータストリームを生成するため、CPUリソースが限られた最適化されていないシステムでは処理が追いつかなくなる可能性があります。パケットロスが発生すると、UDPによる再送処理の負荷により、さらなるパケットロスや画像の破損が引き起こされ、特にマルチカメラ構成では悪循環となってCPU負荷が増大し、システムの信頼性が低下します。 UDPパケットの再送処理 ホストPCが順不同やドロップされたパケットを処理する例です。カメラメーカー製のフィルタードライバがGVSPヘッダーを読み取ることでUDPトラフィックを監視し、パケットの再送を可能にします。このプロセスは、1GigE、2.5GigE、5GigEのような比較的低速なデータレートでは、再送処理をシステムが無理なく管理できるため、安定して動作します。 Packet Retransmission UDP GigE Vision

同時に、RoCE v2 RDMAを取り巻く状況も大きく進展しました。UDPカプセル化によりRoCE v2の導入は飛躍的に進み、BroadcomのBCM57414およびBCM957414チップセットの登場によって、RDMA対応NICはより手頃で入手しやすくなり、価格も非RDMA NICと同程度にまで下がりました。また、WindowsとLinuxの両方でOSレベルのサポートが成熟し、RoCE v2プロトコル自体も十分に理解され、広く展開されるようになりました。これにより、他の競合するRDMA技術を凌駕する形で、RoCE v2が主流となったのです。これらの要因から、GigE Vision標準化委員会は、RoCE v2 RDMAをオプションの転送プロトコルとして仕様に統合する方針を採用しました。従来のUDP転送プロトコルは引き続きサポートされる一方で、RDMAは、データストリームの管理にCPUリソースを消費することなく、高帯域幅を必要とするシステムに対して標準準拠の代替手段を提供します。

ビジョンシステムにおけるRoCE v2 RDMAによるCPU負荷の軽減方法

従来のUDPベースのシステムでは、各カメラがホストに画像データを送信し、CPUがパケットの組み立て、データの検証、パケットの再送信、およびアプリケーションバッファへのメモリコピーを処理します。RDMAはこれに対して、より効率的な代替手段を提供します。RoCE v2を使用することで、カメラのメモリバッファからPCメモリへデータを直接転送でき、カーネルやCPUをバイパスします。RDMAは、PCのメモリをホストのRDMA対応ネットワークインターフェースカード(NIC、Host Channel Adapterとも呼ばれます)に登録することで、そのメモリ領域を「ピン留め」します。これにより、カメラからのデータは物理RAM内に保持され、OSによって移動されることがなくなります。NICはその登録されたメモリに直接アクセスする権限を持ち、フロー制御やパケット再送などを含むデータストリームの管理を行います。

RDMAを機能させるためには、NICが物理RAM内のメモリをピン留めする必要があります。ピン留めされたメモリは、カメラデータの転送および保存用に確保されます。

RDMAデータフローの可視化:RDMA処理において、キューペアと完了キューがゼロコピーのメモリ転送をどのように連携して行うかの簡略図。

各RDMA接続は「キューペア(Queue Pair)」構造を使用しており、それぞれのペアは送信キューと受信キューで構成されています。さらに、「完了キュー(Completion Queue)」が転送のステータスを追跡し、アプリケーションがデータ処理の準備が整ったことを検出できるようにします。これらのキューは、ホスト側のRDMA対応NICによってハードウェアレベルで管理されます。転送はカメラおよびNICのハードウェア内で完結するため、CPUはデータ転送の管理に関与しません。この仕組みは「ゼロコピー転送(Zero-Copy Transfer)」と呼ばれ、システムのオーバーヘッドを大幅に削減し、処理の決定性を高め、CPUリソースを画像処理、ユーザーインターフェースの操作、制御ロジックなど他の重要なタスクに割り当てることが可能になります。

RDMA向けの開発者向けAPIとソフトウェアサポート

RDMA通信を実装するために、開発者は「verbs」と呼ばれる低レベルのプログラミングAPIを使用します。Linuxでは、libibverbsライブラリがユーザースペースでこのインターフェースへのアクセスを提供します。一方、Windowsでは、Microsoftが提供する「Network Direct Service Provider Interface」が使用されます。これらのライブラリにより、ソフトウェアやカメラメーカーは、高性能ストリーミングに必要なRDMAハードウェア機能へアクセスできます。たとえば、LUCIDのArena SDKやArenaView GUI・APIへのRDMAストリーミング機能の統合、また他のGigE Vision準拠ソフトウェアへの対応も可能となります。

RDMA Verbs Microsoft Linux

RDMAデバイスはアプリケーション内でどのようにプログラムされるのでしょうか?その始まりは、RDMAアプリケーションの基礎を成す低レベルの構成要素である「RDMAバーブ(verbs)」です。

これらのAPIは、メモリの登録およびピン留め、キューペアの作成と管理、データ転送操作の実行に必要な機能を提供します。これらは、RDMA NICを介したゼロコピーのデータ転送を実現するために不可欠です。ただし、これらのAPIはRDMA通信を可能にする一方で、マシンビジョンアプリケーション内でRDMAをどのように構成・管理すべきかまでは規定していません。

RDMA Frame and Packets

パケットシーケンス番号(PSN)は、InfiniBandベーストランスポートヘッダー(IB BTH)内に埋め込まれており、受信側は順序通りのパケットのみを受け付けます。

ここで登場するのが、GigE Vision 3.0規格です。この規格は、RDMAベースの画像ストリームをどのように設定し、動作させ、終了させるかを定義しています。また、必要なデバイスレジスターや制御ノード、メモリリソースの割り当て方法、画像データを送信する際のパケットフォーマットについても規定しています。これにより、異なる実装間でも一貫性と予測可能なカメラ性能、そして相互運用性が確保されます。

GigE Vision 3.0規格内でRDMAの使用方法を標準化することにより、システムインテグレーターに多くの利点がもたらされます。最大の利点は、RDMAを採用する際のハードウェアおよびソフトウェアの柔軟性です。システムインテグレーターは特定のハードウェアメーカーのエコシステムに縛られることなく、広くサポートされている規格準拠のコンポーネントを用いてシステムを構築できます。また、RoCE v2はルーティング可能なIPネットワーク上で動作するため、一般的なEthernetインフラや既存のスイッチとも互換性があり、導入がさらに容易になります。

LUCID Vision Labsは、10GigEカメラであるAtlas10およびTriton10シリーズに対してRDMAのサポートを実装しており、GigE Vision 3.0の正式なサポートは規格が承認され次第提供される予定です。LUCIDの低価格な4ポートおよび2ポートの10GigE PoEカードなどのRDMA対応NICと組み合わせることで、画像データをホストメモリに直接転送することが可能になります。この機能は、リアルタイム推論や高フレームレートの画像処理が求められるロボットガイドや工場・製造検査などの用途に特に有効です。CPUをデータ転送経路から排除することで、複数のカメラからの負荷が持続する状況でも、一貫したスループットと低遅延動作を実現できます。

Triton10 10GigE RDMA machine vision camera

Triton10 Camera

Atlas10 45mp onsemi camera-back-front

Atlas10 Camera

4-port 10GigE RDMA NIC HCA adapter

4-CH PoE RDMA NIC

LUCID RDMA HCA network interface card for Atlas10 Cameras

2-CH PoE RDMA NIC

Broadcom RDMA RoCev2 HCA NIC

2-CH RDMA NIC

GigE Vision向けRDMA ― 将来を見据えた技術、そして今すぐ使える準備が整っています

RoCE v2によるRDMAのGigE Vision 3.0規格への統合は、高性能マシンビジョンシステムにとって大きな進歩を意味します。RDMAの技術的基盤は以前から存在していましたが、産業用イメージング環境でこの技術が現実的かつコスト効率よく利用できるようになったのは、周辺エコシステムが十分に成熟したごく最近のことです。

ユーザーにとっての価値は、性能だけでなく、標準化にあります。GigE Vision 3.0は、RDMAがさまざまなデバイスやプラットフォームでどのように使用されるべきかを定義し、RoCE v2は、データセンターやクラウドインフラ、HPCシステムで大規模に実証されてきた、信頼性の高いIPルーティング可能なトランスポートを提供します。これにより、関係するプロトコルはもはや実験的でも独自仕様でもありません。すでに広く実装され、厳しい現場環境でも十分に検証されています。

RDMAがGigE Vision規格に加わったことで、異なるベンダーのハードウェアやソフトウェアが確実に連携することが保証され、システム統合にかかる時間とコストを削減できます。また、長期的なサポートやシステムの拡張性の向上、より幅広いツールやコンポーネントとの互換性も確保されます。

AIA GigE Vision 3.0 RDMA Statement

GigE Vision 3.0とRDMAに関する、A3(先進オートメーション推進協会)のプロモーション声明