RDMA Revolution

Bild 1 | Für GigE-Kameras mit höherer Bandbreite ist RDMA eine bessere Alternative als UDP, da es die direkte und paketweise Datenübertragung zwischen den Geräten im Netzwerk ohne CPU-Beteiligung ermöglicht.
Bild 1 | Für GigE-Kameras mit höherer Bandbreite ist RDMA eine bessere Alternative als UDP, da es die direkte und paketweise Datenübertragung zwischen den Geräten im Netzwerk ohne CPU-Beteiligung ermöglicht.
Bild 1 | Für GigE-Kameras mit höherer Bandbreite ist RDMA eine bessere Alternative als UDP, da es die direkte und paketweise Datenübertragung zwischen den Geräten im Netzwerk ohne CPU-Beteiligung ermöglicht.
Bild 1 | Für GigE-Kameras mit höherer Bandbreite ist RDMA eine bessere Alternative als UDP, da es die direkte und paketweise Datenübertragung zwischen den Geräten im Netzwerk ohne CPU-Beteiligung ermöglicht. Bild: Lucid Vision Labs Inc

Bislang war das User Datagram Protocol (UDP) aufgrund seiner effizienten Streaming-Leistung und Einfachheit das bevorzugte Protokoll für die Datenübertragung von GigE-Vision-Kameras. Bei aktuellen 10GigE- und 25GigE-Kameras stößt das Protokoll jedoch an seine Grenzen, insbesondere bei der Steuerung des Datenverkehrs und beim Management von wiederholten Übertragungen. RDMA ist für solche Anwendungen eine zuverlässige Alternative und gewährleistet auch bei extrem datenintensiven Vision- und Multi-Kamera-Systemen eine sichere und effiziente Datenübertragung.

Bild 3 | GVSP mit RDMA benötigt keine GVSP-Header für die Übertragung der Bildnutzlast, und das erneute Senden von Paketen wird vom RoCE v2 HCA übernommen.
Bild 3 | GVSP mit RDMA benötigt keine GVSP-Header für die Übertragung der Bildnutzlast, und das erneute Senden von Paketen wird vom RoCE v2 HCA übernommen.Bild: Lucid Vision Labs Inc

CPU-Engpass umgehen

Die derzeitige UDP-Implementierung für GigE Vision wurde für eine Bandbreite von 1GigE konzipiert. Fehlende Funktionalitäten, um die Zuverlässigkeit bei der Datenübertragung sicherzustellen, wurden im GigE-Vision-Standard auf Anwendungsebene integriert. Das Betriebssystem und die CPU des Host-Systems überwachen dazu den Datenstrom auf fehlende Pakete und unterbrechen gegebenenfalls die Datenübertragung der Kamera, sodass diese Pakete erneut übertragen werden können. Bei einer Bandbreite von 1GigE stehen dafür in der Regel ausreichende Ressourcen seitens des Host-PCs zur Verfügung. Für Kameras mit höherer Bandbreite ist RDMA eine bessere Alternative, weil es die direkte und paketweise Datenübertragung zwischen den Geräten im Netzwerk ohne CPU-Beteiligung ermöglicht. Dadurch bleiben der CPU mehr Ressourcen für andere Rechenoperationen.

Erstmals implementiert wurde RDMA über die Schnittstellenspezifikation InfiniBand, die für Rechenanwendungen mit Highspeed-Übertragungen schnell an Popularität gewann. Um den Bedarf an dedizierten InfiniBand-Switches zu decken, wurde 2010 RoCE v1 (RDMA over Converged Ethernet) als offenes Netzwerkprotokoll eingeführt, unterstützt von der InfiniBand Trade Association. Die Veröffentlichung von RoCE v2 folgte 2014, ergänzt um Funktionalitäten für das Routing über Layer-3-Netzwerke (IP) und für die Steuerung des Datenverkehrs. Für die effiziente Integration der Technologie gibt es ein umfassendes Angebot industrieller Konnektivitätslösungen, die z.B. auch große Kabellängen mit Power over Ethernet (PoE) und Interoperabilität zwischen verschiedenen Software- und Hardware-Anbietern ermöglichen.

Der Host Channel Adapter (HCA) verwaltet die RoCE-Prozesse und implementiert die gesamte für die Ausführung des RDMA-Protokolls erforderliche Logik in eine Hardware. Die Datensegmentierung und -zusammenführung sowie die Datenflusskontrolle werden vom HCA verwaltet. Er ermöglicht den Sender- und Empfängeranwendungen, jeweils den kompletten Pufferspeicher zu nutzen. Dazu wird der RDMA-Kanal durch Pinning des Host-PC-Speichers initiiert und ein Speicherbereich auf dem Host wird für die RDMA-Nutzung reserviert und geschützt. Anschließend übergibt der Host die Adresse an den HCA und entfernt sich selbst aus dem Datenpfad. Der registrierte Speicherbereich kann nun für jede RDMA-Operation verwendet werden.

Bild 2 | Gleichzeitiges Streaming von vier Atlas10 10GigE-Kameras führt mit RDMA zu einer 
CPU-Auslastung von 0,08 Prozent, während mit UDP die CPU-Auslastung bei 5,38 Prozent liegt.
Bild 2 | Gleichzeitiges Streaming von vier Atlas10 10GigE-Kameras führt mit RDMA zu einer CPU-Auslastung von 0,08 Prozent, während mit UDP die CPU-Auslastung bei 5,38 Prozent liegt.Bild: Lucid Vision Labs Inc

RDMA über GigE Vision

Um RDMA über GigE Vision zu implementieren, muss das GigE-Vision-Stream-Protocol (GVSP) angepasst werden, indem ein RDMA-Stream-Kanal mit einer zuverlässigen Verbindung (Reliable connection, RC) eingerichtet wird – ähnlich wie bei einer TCP-Verbindung. GVSP mit RDMA benötigt keine GVSP-Header für die Übertragung der Bildnutzlast, und das erneute Senden von Paketen wird vom RoCE v2 HCA übernommen. Die Datenflusskontrolle wird realisiert, indem die Kamera gesendete Pakete solange speichert, bis der Empfang bestätigt wird (ACK). Dabei können auch mehrere Pakete gleichzeitig bestätigt werden. Dies reduziert den Overhead zusätzlich und entlastet die CPU-Ressourcen, da die gesamte Datensteuerung und Paketdekodierung vom HCA auf dedizierter Hardware durchgeführt wird.

Fazit

Durch die Nutzung der offenen Standard-Netzwerktechnologie RoCE v2, die ursprünglich für High-Performance-Computing-Anwendungen entwickelt wurde, und deren Anpassung an den GigE-Vision-Standard konnte Lucid die Einschränkungen der UDP-Technologie für breitbandige Datenübertragungen mit 10GigE überwinden. Die CPU-Belastung bei der Bilderfassung wird dadurch entscheidend reduziert, während gleichzeitig eine geringstmögliche Latenz und höchste Datenraten bei der Bildübertragung erreicht werden. Lucids eigene Tests zeigen, dass das gleichzeitige Streaming von vier Atlas10 10GigE-Kameras zu einer CPU-Auslastung von nur 0,08 Prozent führt, verglichen mit konventionellem UDP-Streaming über GigE Vision mit einer CPU-Auslastung von 5,38 Prozent.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert