Das hohe Tempo der Innovation
Da Bildverarbeitungssysteme zunehmend höhere Auflösungen und schnellere Bildraten erreichen, stößt das stetig wachsende Datenvolumen an die Grenzen traditioneller Netzwerkkonfigurationen – und übertrifft diese in manchen Fällen bereits. Mit der zunehmenden Verbreitung von 10GigE- und 25GigE-Kameras, die hohe Datenraten und komplexe Bildverarbeitungsprozesse erfordern, können Integratoren auf Paketverluste stoßen, die zu höherer CPU-Last und inkonsistenter Latenz führen. Diese Herausforderungen erfordern häufig eine sorgfältige Optimierung oder in manchen Fällen sogar kundenspezifische bzw. proprietäre Lösungen.
Mit der Einführung von GigE Vision 3.0 und der Unterstützung von RDMA über den RoCE v2 Standard setzt die Branche jedoch auf ein Hochleistungs-Transportprotokoll, das sich bereits in Rechenzentren und HPC-Umgebungen (High Performance Computing) bewährt hat. Dieser Artikel zeigt, wie die beiden Standards GigE Vision und RoCE v2 zusammengeführt werden, um effizientere, skalierbare und zukunftssichere Netzwerke für die industrielle Bildverarbeitung bereitzustellen.
Inhaltsverzeichnis
GigE Vision und RoCE v2: Zwei Standards auf getrennten Wegen
Der GigE Vision Standard wurde 2006 eingeführt mit dem Ziel, die Übertragung von Bilddaten über Ethernet in Bildverarbeitungsanwendungen zu vereinheitlichen. Der GigE Vision Standard ist ein gemeinschaftlicher Industrie-Standard, der von Ingenieuren aus Kamera- und Softwareunternehmen getragen wird, die ihre Zeit ehrenamtlich investieren, um ihn zu pflegen und weiterzuentwickeln. Neue Kundenanforderungen werden erst nach gründlicher Recherche, intensiven Diskussionen und Verteidigung innerhalb des Komitees in den Standard aufgenommen. Die Konformität wird durch formale Konformitätstests überprüft, einschließlich einer Kamera-Validierungssuite, die Hunderte von im Standard definierten Anforderungen abdeckt. Nur Produkte, die diese Tests bestehen, werden als GigE Vision konform anerkannt und gewährleisten damit herstellerübergreifende Interoperabilität und ein vorhersagbares Verhalten im Produktionseinsatz. Der Standard etablierte einen gemeinsamen Rahmen auf Basis von UDP, um die Interoperabilität zwischen Kameras, Software und Netzwerktechnik sicherzustellen.
Im Laufe der Zeit wurden im GigE Vision Standard zahlreiche Erweiterungen eingeführt: Paket-Neuübertragung und Chunk-Daten (GigE Vision 1.1, 2008), offizielle Unterstützung für Link Aggregation und 10 Gigabit über IEEE 802.3ba, Kompressionsunterstützung sowie Steuerung nicht-streamender Geräte (GigE Vision 2.0, 2012), Verbesserungen bei Puffer- und Ereignisbehandlung sowie die Unterstützung komplexerer 3D-Datenstrukturen (GigE Vision 2.1, 2018) sowie GenDC-Streaming und Multi-Event-Datenunterstützung (GigE Vision 2.2, 2022).


Parallel dazu stand die Rechenzentrums- und HPC-Industrie vor einer anderen Herausforderung: Wie lassen sich große Datenmengen mit minimaler Latenz und geringer CPU-Last zwischen Servern übertragen? Dies führte zur Entwicklung von RDMA-Technologien und zur Einführung von RoCE (RDMA over Converged Ethernet). RoCE wurde von der InfiniBand Trade Association (IBTA) entwickelt, um das leistungsstarke RDMA-Transportprotokoll von InfiniBand auf Standard-Ethernet-Netzwerke auszuweiten. RoCE v1 (2010) arbeitete auf Layer 2 und war auf lokale Netzwerksegmente beschränkt, während RoCE v2 (2014) durch UDP/IP-Kapselung erweitert wurde und dadurch über Standard-Ethernet-Netzwerke routbar und skalierbar ist. In den vergangenen zehn Jahren hat sich RoCE v2 trotz konkurrierender RDMA-Technologien weiterentwickelt und breite Akzeptanz in den Bereichen Cloud Computing, Storage und Echtzeitanalytik gefunden.
1983
1993
1998
2002
Released
2010
Spec v1 Released
2000
2010
Linux Compatibility
2004
2018
Released
2014
2.5 / 5 Gbps
(NBase-T)
2016
400 Gbps
2017
2011
2012
2023 and Beyond...
Warum jetzt: RDMA und GigE Vision wachsen zusammen
Die Idee, RDMA-Prinzipien auf Ethernet-basierte Industriekameras anzuwenden, wurde bereits 2016 vom GigE Vision Standardisierungskomitee untersucht. Ein Vorschlag aus dem Jahr 2017 innerhalb dieses Komitees beschrieb einen neuen GVSP-Payload-Typ, der für RDMA entwickelt wurde. Obwohl der Ansatz technisch überzeugend war, war das breitere Machine-Vision-Ökosystem noch nicht bereit. Zu diesem Zeitpunkt war unklar, welche RDMA-Technologie sich durchsetzen würde, da mehrere konkurrierende Ansätze existierten, darunter das iWarp-Protokoll und Intels Omni-Path-Architektur. Zwar gewann RoCE v2 zunehmend an Popularität, jedoch waren RoCE v2 NICs teuer, wurden nur von einem einzelnen Hersteller produziert und erforderten zusätzlichen Entwicklungsaufwand für die Integration in Bildverarbeitungssysteme.

Zur gleichen Zeit wurden die meisten Anwendungen in der industriellen Bildverarbeitung noch zuverlässig von 1GigE-Kameras abgedeckt, und für Anwender mit höherem Bandbreitenbedarf standen bereits Alternativen wie USB 3.0, Camera Link und CoaXPress zur Verfügung. Die Nachfrage nach Ethernet mit höherem Durchsatz wuchs zwar, blieb jedoch insgesamt begrenzt. Frühe Anwender von 10GigE setzten auf einfachere Bildverarbeitung mit leistungsstarken Host-PCs, und mit entsprechender Optimierung war die auf UDP basierende Datenübertragung in der Regel ausreichend. Infolgedessen verpflichteten sich viele Kamerahersteller nicht zu RDMA und scheuten den Aufwand, ein vollständig RDMA-kompatibles Ökosystem aufzubauen und zu pflegen. Ohne breite Herstellerunterstützung oder eine starke Nachfrage seitens der Endanwender wurden die Bemühungen, RDMA in den GigE Vision Standard zu integrieren, zurückgestellt.
Mit der Zeit stieg jedoch die Nachfrage nach Multi-10GigE-Kameraanwendungen auf ein Niveau, bei dem RDMA erneut bewertet werden musste. Immer mehr Kunden setzten auf Ethernet nicht nur wegen der Geschwindigkeit, sondern auch aufgrund seiner industriellen Zuverlässigkeit und Netzwerkflexibilität. Eigenschaften wie integrierte elektrische Isolation, große Kabellängen, Power over Ethernet (PoE), Precision Time Protocol (PTP) und Action Commands machten Ethernet ideal für komplexe, skalierbare Bildverarbeitungssysteme. Anwender wollten die industriellen Vorteile von Ethernet mit der Bandbreite von 10GigE und darüber hinaus verbinden. Als jedoch zunehmend Multi-10GigE-Kamerasysteme eingesetzt und fortschrittlichere Bildverarbeitungsprozesse implementiert wurden, stießen viele auf hohe CPU-Last und Zuverlässigkeitsprobleme, die durch Paketverluste und Neuübertragungen über UDP verursacht wurden. Der steigende Bedarf an CPU-Ressourcen zur Verwaltung mehrerer 10GigE-Datenströme machte deutlich, dass der Zeitpunkt gekommen war, RDMA für den GigE Vision Standard erneut zu evaluieren.
In der Zwischenzeit entwickelte sich auch die Situation für RoCE v2 RDMA weiter. Dank der UDP-Kapselung nahm die Verbreitung von RoCE v2 exponentiell zu. Mit der Einführung der Broadcom-Chipsätze BCM57414 und BCM957414 wurden RDMA-NICs zudem zugänglicher und kostengünstiger, wobei die Preise für NICs denen nicht-RDMA-fähiger Modelle entsprachen. Die Unterstützung durch Betriebssysteme war sowohl unter Windows als auch unter Linux ausgereift, und das RoCE v2 Protokoll wurde umfassend verstanden und breit eingesetzt, sodass es sich gegenüber konkurrierenden RDMA-Technologien durchsetzte. Aus diesen Gründen beschloss das GigE Vision Standardisierungskomitee, RoCE v2 RDMA als optionales Transportprotokoll in die Spezifikation zu integrieren. Während das ursprüngliche UDP-Transportprotokoll weiterhin unterstützt wird, bietet RDMA eine standardkonforme Alternative für Systeme mit höheren Bandbreitenanforderungen, ohne dass CPU-Ressourcen für die Verwaltung der Datenströme benötigt werden.
Wie RoCE v2 RDMA die CPU-Last in Bildverarbeitungssystemen reduziert
In einem herkömmlichen UDP-basierten System überträgt jede Kamera Bilddaten an den Host, wo die CPU für die Paketassemblierung, Datenvalidierung, Paketneuübertragung und das Kopieren der Daten in die Anwendungs-Puffer zuständig ist. RDMA bietet hierfür eine effizientere Alternative. Mit RoCE v2 werden die Daten direkt aus dem Speicherpuffer der Kamera in den PC-Speicher übertragen, wobei Kernel und CPU umgangen werden. RDMA fixiert den PC-Speicher, indem es diesen beim RDMA-fähigen Network Interface Card (NIC) des Hosts, auch bekannt als Host Channel Adapter (HCA), registriert. Dadurch wird sichergestellt, dass die Kameradaten im physischen RAM verbleiben und nicht vom Betriebssystem verschoben werden. Der NIC erhält anschließend die Berechtigung, auf diesen Speicher direkt zuzugreifen, um den Datenstrom zu verwalten, einschließlich der Anwendung von Flow-Control und Paketneuübertragung.
Jede RDMA-Verbindung verwendet eine Queue-Pair-Struktur, die jeweils aus einer Send-Queue und einer Receive-Queue besteht. Zusätzlich gibt es eine Completion-Queue, die den Status jeder Übertragung verfolgt und es der Anwendung ermöglicht zu erkennen, wann Daten zur Verarbeitung bereitstehen. Diese Queues werden hardwareseitig von der RDMA-NIC des Hosts verwaltet. Da die Übertragungen vollständig in der Kamera- und NIC-Hardware stattfinden, ist die CPU nicht an der Verwaltung des Datentransfers beteiligt. Dieser Mechanismus wird als Zero-Copy-Transfer bezeichnet. Er reduziert die System-Overheads erheblich, verbessert die Deterministik und entlastet die CPU, sodass mehr Ressourcen für Bildverarbeitung, Benutzeroberflächen oder Steuerungslogik zur Verfügung stehen.
Entwickler-APIs und Softwareunterstützung für RDMA
Zur Implementierung der RDMA-Kommunikation nutzen Entwickler Low-Level-Programmier-APIs, die als Verbs bezeichnet werden. Unter Linux stellt die Bibliothek libibverbs den Zugriff auf dieses Interface im User Space bereit. Unter Windows bietet Microsoft die Network Direct Service Provider Interface. Diese Bibliotheken ermöglichen Software- und Kameraherstellern den Zugriff auf die RDMA-Hardwarefunktionen, die für High-Performance-Streaming erforderlich sind. So lässt sich beispielsweise die RDMA-Streaming-Unterstützung in LUCIDs Arena SDK, in der ArenaView-GUI und den zugehörigen APIs sowie in anderer GigE Vision konformer Software integrieren.

Wie werden RDMA-Geräte in Anwendungen programmiert? Der Einstieg erfolgt über die RDMA-Verbs, die die Low-Level-Bausteine für RDMA-Anwendungen darstellen.
Diese APIs stellen die Funktionen bereit, die benötigt werden, um Speicher zu registrieren und zu fixieren, Queue Pairs zu erstellen und zu verwalten sowie Datenübertragungsoperationen auszuführen. Sie sind entscheidend, um Zero-Copy-Datenbewegungen über RDMA-NICs zu ermöglichen. Allerdings definieren diese APIs zwar die Möglichkeiten für RDMA-Kommunikation, geben jedoch nicht vor, wie RDMA innerhalb einer Machine-Vision-Anwendung strukturiert oder verwaltet werden sollte.
An dieser Stelle kommt der GigE Vision 3.0 Standard ins Spiel. Dieser Standard definiert, wie RDMA-basierte Bildströme eingerichtet, betrieben und beendet werden. Er legt außerdem fest, welche Geräte-Register und Steuerungsknoten erforderlich sind, wie Speicherressourcen zugewiesen werden und welche Paketformate zur Übertragung von Bilddaten verwendet werden. Dadurch wird eine konsistente und vorhersagbare Kameraleistung sowie die Interoperabilität zwischen verschiedenen Implementierungen gewährleistet.
Die Standardisierung der RDMA-Nutzung innerhalb des GigE Vision 3.0 Standards bringt zahlreiche Vorteile für Systemintegratoren, wobei der wichtigste Vorteil die Hardware- und Softwareflexibilität bei der Einführung von RDMA ist. Systemintegratoren sind nicht auf das Ökosystem eines einzelnen Hardwareherstellers beschränkt, sondern können Systeme mit standardkonformen und breit unterstützten Komponenten aufbauen. Da RoCE v2 zudem über routbare IP-Netzwerke arbeitet, ist es auch mit gängiger Ethernet-Infrastruktur und bestehenden Switches kompatibel, was die Implementierung zusätzlich vereinfacht.
LUCID Vision Labs hat die RDMA-Unterstützung für seine 10GigE-Kameras, die Atlas10- und Triton10-Kamerafamilien, implementiert. Offizielle Unterstützung für GigE Vision 3.0 wird folgen, sobald der Standard ratifiziert ist. In Kombination mit einer RDMA-NIC, wie beispielsweise LUCIDs kostengünstigen 4- und 2-Port-10GigE-PoE-Karten, können Bilddaten direkt in den Host-Speicher übertragen werden. Diese Funktion ist besonders wertvoll für Anwendungen, die Echtzeit-Inferenz oder Bildverarbeitung mit hohen Bildraten erfordern, wie etwa Robotikführung oder Inspektionen in Fabrik- und Fertigungsumgebungen. Durch die Entfernung der CPU aus dem Datenpfad können Entwickler auch bei dauerhafter Belastung durch mehrere Kameras einen gleichbleibend hohen Durchsatz und einen Betrieb mit niedriger Latenz erreichen.
RDMA für GigE Vision: für die Zukunft entwickelt, heute einsatzbereit
Die Integration von RDMA über RoCE v2 in den GigE Vision 3.0 Standard stellt einen bedeutenden Fortschritt für Hochleistungs-Bildverarbeitungssysteme dar. Obwohl die technischen Grundlagen für RDMA bereits seit Jahren existieren, hat erst die jüngste Weiterentwicklung des Ökosystems diese Technologie in industriellen Bildverarbeitungsumgebungen praktisch und kosteneffizient gemacht.
Für Anwender liegt der Wert nicht nur in der Leistung, sondern auch in der Standardisierung. GigE Vision 3.0 definiert, wie RDMA über Geräte und Plattformen hinweg genutzt werden soll, während RoCE v2 ein zuverlässiges, IP-routbares Transportprotokoll bereitstellt, das sich bereits in großem Maßstab in Rechenzentren, Cloud-Infrastrukturen und HPC-Systemen bewährt hat. Dies bedeutet, dass die beteiligten Protokolle nicht mehr experimentell oder proprietär sind. Sie sind klar spezifiziert, breit implementiert und unter anspruchsvollen realen Bedingungen umfassend validiert. Mit der Aufnahme von RDMA in den GigE Vision Standard können Anwender sicher sein, dass Hardware und Software unterschiedlicher Anbieter zuverlässig zusammenarbeiten, wodurch Integrationszeit und -kosten reduziert werden. Zudem wird langfristige Unterstützung, einfache Skalierbarkeit sowie ein breiteres Spektrum an kompatiblen Tools und Komponenten gewährleistet.