Der GigE Vision Standard nutzt ein UDP-basiertes Protokoll namens GVSP, um die Bildübertragung über Ethernet zu ermöglichen. Mit zunehmenden Datenraten stoßen einige Hersteller auf Schwierigkeiten, insbesondere wenn die Datenraten 10Gbps oder mehr erreichen. Dies hat zu Ansätzen mit TCP oder RDMA Protokollen geführt. Emergent Vision hat jedoch festgestellt, dass diese Optionen den GigE Vision-Standard mit Punkt-zu-Punkt-Protokollen wie CXP und USB konvergieren lassen.
Bei GigE Vision ist das Problem, die vielen Ethernet-Pakete beim Empfänger zu analysieren, um die Bilddaten in zusammenhängender Form bereitzustellen, was das Abspalten der Ethernet-Paketheader erfordert. Dies kann zwar in Software umgesetzt werden, jedoch nur mit erheblichen Kosten durch eine dreifache Speicherbandbreite und höhere CPU-Auslastung (was von Befürwortern von RDMA im Vergleich der Vor- und Nachteile zwischen traditionellem GigE Vision und RDMA hervorgehoben wird). Wir vermeiden diese Kosten, indem wir die integrierten Aufteilungsfunktionen moderner NICs (Netzwerkschnittstellenkarten) nutzen, um diese Zero Copy-Bildübertragung durchzuführen.
GigE Vision mit TCP
TCP ist eines der Protokolle, die von einigen zur Verbesserung der Leistung von GigE Vision untersucht wurden. Allerdings ist es kein Zero Copy-Verfahren, weshalb es die erforderliche Speicherbandbreite verdreifacht. Zudem ist TCP ein Punkt-zu-Punkt-Protokoll, das mit CXP und USB konvergiert, wodurch die Vorteile dieser Protokolle nahezu eliminiert werden, insbesondere da CXP in neueren Versionen die Ethernet-Physikschicht übernimmt, um eigene Schwächen auszugleichen. In jeglicher Hinsicht ist daher TCP für Highend-Anwendungen ungeeignet.
GigE Vision mit RDMA/RoCE
RDMA/RoCE ist ein weiteres Protokoll, das untersucht wurde. RDMA ist zwar ein Zero Copy-Verfahren, allerdings auch wie TCP ein Punkt-zu-Punkt-Protokoll und verursacht daher durch seine Struktur ein Netzwerk-Overhead. RDMA und TCP wurden ursprünglich für große Datentransfers im Internet mit vielen Hops über Switches und Router konzipiert, bei denen Pakete verloren gehen oder in falscher Reihenfolge ankommen können. In der Bildverarbeitung sind die Systeme allerdings geschlossen und weisen eine kontrollierte Weiterleitung auf, falls Switches verwendet werden. Zudem sind weder TCP noch RDMA aktuell im GigE Vision-Standard verankert.
Zero Copy GigE Vision mit GVSP-Protokoll
Zero Copy mit Header-Splitting ist mit modernen NICs von Nvidia/Mellanox, Broadcom, Intel und Marvell möglich. Emergent hat Implementierungen mit Nvidia/Mellanox und Broadcom bereits im Einsatz, was auch die Interoperabilität des Ansatzes zeigt. Tatsächlich verwendet Emergent diese Methode seit über 15 Jahren und erreicht maximale Design-In-Dichten mit entsprechender Zuverlässigkeit. Derselbe Ansatz wird auch für ST2110 im Medien- und Unterhaltungsmarkt verwendet. Zero Copy garantiert in keiner Schnittstelle oder Protokollimplementierung einen Null-Datenverlust. Jedes Hochleistungssystem benötigt daher immer noch ein ordnungsgemäßes Design und ausreichende Sicherheitsmargen, um die gewünschten Ergebnisse zu erzielen. Dies gilt für CXP, RDMA / RoCE und auch für optimierte GVSP-Implementierungen. Aber wir können garantieren, dass die optimale GVSP-Implementierung gleichwertig oder besser als RDMA/RoCE ist, ohne GigE Vision in ein Punkt-zu-Punkt-Protokoll zu verwandeln, also nicht das Eliminieren, was GigE Vision im Laufe der Jahre zur beliebtesten Schnittstelle gemacht hat.
GPU Direct – Besser als Zero Copy
Zero Copy minimiert die CPU- und Speicherbandbreitennutzung, indem nur einmal in den Speicher geschrieben wird, aber wir können diese Übertragung ganz vermeiden, indem wir direkt in die GPU schreiben (GPU Direct). Es macht in vielen Highend-Anwendungen Sinn, Daten direkt an die GPU zur Verarbeitung zu senden und dann die ergebnisorientierten Daten mit geringerer Bandbreite an die CPU und Speicher für die Benutzer- oder Systeminteraktion zu übergeben. Emergent unterstützt seit über vier Jahren GPU Direct mit Nvidia GPUs unter Windows und Linux in verschiedenen Anwendungen. Nvidia RTXA6000/5000/4000, Orin und Xavier werden bereits in zahlreichen Anwendungen mit Emergent-Kameras eingesetzt. Leider erlaubt Nvidia/Mellanox ein GPU Direct unter Windows nur ausgewählten Partnern, wie z.B. Emergent. Allerdings ist auch Linux eine Option für RDMA mit GPU Direct für alle, wobei in 80% aller Machine Vision Anwendungen aktuell Windows eingesetzt wird.
Integrierte Schnittstellen- und Verarbeitungskarten
Zero Copy ist großartig und GPU Direct verbessert dies nochmals. Das ultimative Ziel ist es, wenn wir die Daten von den Kameras empfangen und auf einer Karte verarbeiten könnten. In diesem Fall werden CPU, Speicher und alle Serverressourcen überhaupt nicht genutzt. Emergent unterstützt AMD/Xilinx Alveo-Karten genau hierfür und setzt in mehreren Hochleistungsanwendungen auf diese Technologie. Die Firma arbeitet auch eng mit Nvidia zusammen, um Bluefield NIC-Unterstützung zu ermöglichen. Man kann sich Bluefield als die Verschmelzung von Nvidia NICs mit Nvidia GPUs vorstellen. In beiden Fällen kann der Computer ein einfacher PC sein, der hauptsächlich Strom für die ausgewählte Karte bereitstellt.
Multicast
Obwohl nicht von allen Anwendungen genutzt, setzen viele der größten Implementierungen von Emergent auf das Multicast-Feature des Ethernet-Standards. Punkt-zu-Punkt-Protokolle wie TCP und RDMA unterstützen von Natur aus kein Multicasting. RDMA hat zwar andere Betriebsmodi, die im Wesentlichen dessen Flusskontrolle und Paketneuübertragungsfunktion entfernen – dies entspricht jedoch dem aktuellen GVSP-Standard. Zwei Hauptvorteile des Multicasting sind Redundanz und verteilte Verarbeitung. Redundanz ermöglicht es kritischen Systemen, schnell auf Ausfälle zu reagieren, um Ausfallzeiten zu vermeiden. Bei größeren Systemen können Switche und Backup-Server eingerichtet werden, um die Kamerastreams zu übernehmen, wenn ein Server ein Problem hat. Verteilte Verarbeitung wird immer wichtiger, je mehr und schnellere Kameras eingesetzt werden und hängt stark von der Art der erforderlichen Verarbeitung ab.
The big Picture
Viele Kamerahersteller konzentrieren sich darauf, die Datenübertragung von der Kamera zum Empfänger zu ermöglichen. Sobald die Sensordaten im Systemspeicher angekommen sind, überlassen sie es dem Integrator oder Kunden, diese Daten zu verarbeiten. In einigen Anwendungen reichen Systemspeicher und CPU aus, insbesondere wenn eine Nachbearbeitung möglich ist. In anderen, insbesondere wenn mehrere 10GigE, 25GigE oder 100GigE Streams verwendet werden, erfordert die Echtzeitverarbeitung den Einsatz von Offload-Technologien zu leistungsfähigeren Verarbeitungsknoten. In den Konzepten und Vorschlägen für alternative Schnittstellen- oder Protokollmethoden wird dies bisher leider nur selten angesprochen. Wir müssen allerdings das große ganze Bild sehen. In den letzten 15 Jahren hat Emergent Vorarbeit geleistet und 10GigE, 25GigE und 100GigE Flächen- und Zeilenkameras entwickelt und ein Ökosystem geschaffen, das die zuverlässigsten Highspeed-Bildverarbeitungsanwendungen unterstützt.