Gerecht verteilen

Multi-Core Acquisition Optimizer für schnelle GigE Vision Kameras
Mit dem Multi-Core Acquisition Optimizer bietet Matrix Vision für schnelle GigE Vision Kameras eine Software- Lösung zum Verteilen der Netzwerkdatenverarbeitung auf mehrere CPU-Kerne an.
Bild 1 | Bei einem Datendurchsatz von 1245MB/s ist ein einziger Kern mit der Datenübertragung beschäftigt. Mit dem Multi-Core Acquisition Optimizer (MAO) kann die Verteilung der Arbeitslast, die durch die Verarbeitung der Netzwerkdaten entsteht, auf mehrere Kerne verteilt werden. (Bild: Matrix Vision GmbH)

Stellen Sie sich vor, Sie setzen eine neue 10GigE Industriekamera ein, welche durch die hohe Framerate die Steigerung der Taktrate Ihrer Applikation ermöglicht. Sie installieren die neue Kamera und verbinden sie mit dem Computer. Die Applikation wird bei maximaler Framerate gestartet. Doch als Sie zusätzlich einen Algorithmus zum Verarbeiten der Bilder ausführen, stellen Sie fest, dass die CPU des Host-Systems überlastet ist. Dieser Engpass bei der Verarbeitung der Daten kann zu Verlusten bei der Datenübertragung führen. Heutige Computerarchitekturen beinhalten in der Regel mehrere CPU-Kerne in einem einzigen Chip oder sogar mehrere physische CPUs auf einem Motherboard. Aus diesem Grund verwenden Applikationen oft mehrere Threads oder Prozesse, um die verursachte CPU-Last gleichmäßig auf alle verfügbaren Prozessoren zu verteilen und so eine optimale Leistung zu erzielen. Dabei sollte aber auch eine grafische Benutzeroberfläche reaktionsfähig bleiben, während bestimmte Aufgaben im Hintergrund ausgeführt werden.

Bei GigE Vision-Kameras, die mit Bandbreiten von 5GBit/s oder mehr streamen, führt dies manchmal zu einem Engpass. Insbesondere die Aufrechterhaltung eines stabilen Datenempfangs ohne Verlust einzelner Bilder oder Teile von Bildern, während parallel dazu große Datenmengen verarbeitet werden, funktioniert nicht immer so zuverlässig, wie man erwarten würde. Das kommt daher, dass eine Netzwerkverbindung bedingt durch das Betriebssystem immer von einem bestimmten CPU-Kern bearbeitet wird. Dieses Vorgehen funktioniert gut, wenn von einem Gerät mehrere parallele Verbindungen ähnlich geringe Mengen an Daten pro Zeitfenster übertragen. Bei GigE Vision-Geräten enthält allerdings eine einzige Netzwerkverbindung alle oder zumindest einen signifikanten Teil der Daten, die von einer Netzwerkkarte (NIC) im System empfangen werden. Das führt dazu, dass ein einziger CPU-Kern mehr belastet wird als andere. Bei einer 1GBit/s-Verbindung können die optimierten NIC- und GigE Vision-Filtertreiber in Kombination mit einer leistungsfähigen CPU die eingehenden Daten gut bewältigen. Allerdings stellen 5GBit/s oder höhere Bandbreiten, die von einem Gerät über eine einzelne Verbindung kommen, selbst für aktuelle CPU-Architekturen eine deutlich größere Herausforderung dar. Bild 1 zeigt, dass die CPU-Last, die durch ein 10GigE-Gerät generiert wird, relativ hoch ist.

Bild 2 | Netzwerkdatenverarbeitung einer Kamera mittels Multi-Core Acquisition Optimizer (MAO) auf mehrere CPU-Kerne verteilt. (Bild: Matrix Vision GmbH)

Drohender Datenverlust

Wenn nun ein rechenintensiver Algorithmus wie beispielsweise De-Bayering, Fourier Transformation oder große Matrix-Multiplikationen zusätzlich auf dem System ausgeführt werden soll, dann weist das Betriebssystem von diesem Algorithmus jedem CPU-Kern gleich große Arbeitspakete zu. Auch dem, der bereits die eingehenden Netzwerkdaten verarbeitet. Das kann zu einer Überlastung des CPU-Kerns und damit zu Datenverlusten führen. Des Weiteren werden die anderen Kerne nicht optimal ausgenutzt, da die maximale Größe der zusätzlich möglichen Arbeitspakete durch die bereits hohe Arbeitslast des einen Kerns limitiert sind. Selbst wenn der Kern nicht überlastet ist, können Probleme aufgrund der Tatsache entstehen, dass der Prozessor hin und wieder für einen kurzen Zeitabschnitt Aufgaben ausführen muss, die nicht mit der Verarbeitung der Netzwerkdaten zusammenhängen. Wenn dadurch der interne Puffer überläuft, kommt es zu einem Datenverlust. Um dieser Problematik entgegenzuwirken, hat Matrix Vision eine Software-Lösung entwickelt, die dem Anwender mehr Kontrolle über die Arbeitsverteilung auf die CPU-Kerne gibt.

Bild 3 | Zusätzlich zum Datenstrom wird PC-seitig ein rechenintensiver Algorithmus durchgeführt. Die Arbeitslast dieses Algorithmus verteilt sich zusätzlich auf alle Kerne. (Bild: Matrix Vision GmbH)

CPUs optimal ausnutzen

Mit dem Multi-Core Acquisition Optimizer (MAO) kann die Verteilung der Arbeitslast, die durch die Verarbeitung der Netzwerkdaten entsteht, beeinflusst werden. Er ermöglicht es, durch die intelligente Kombination von Geräte-Firmware und Host-Treiber die Verarbeitung der Netzwerkdaten eines GigE Vision Streams auf mehrere CPU-Kerne zu verteilen. Im Gegensatz zu einer Verarbeitung auf einem pseudo-zufällig ausgewählten CPU-Kern kann durch den MAO explizit definiert werden, auf wie vielen und welchen CPU-Kernen die Verarbeitung der Netzwerkdaten stattfindet – entsprechend der individuellen Anforderungen der jeweiligen Applikation. Die verteilte Arbeitslast sorgt für eine verbesserte Gesamtsystemstabilität und der Datenverlust bei der Übertragung wird verhindert.

MAO führt aber nicht nur zu mehr Stabilität, sondern erhöht auch die Rechenleistung. Die verteilte Arbeitslast der Datenverarbeitung sorgt dafür, dass die Arbeitspakete des parallelen Algorithmus größer sein können und so die freien Kapazitäten der CPU-Kerne besser ausgenutzt werden. Die Verteilung erfolgt auf eine Weise, mit der das Host System am Effektivsten umgehen kann. Mit dem Wissen, auf wie vielen und welchen CPU-Kernen die Verarbeitung der Netzwerkdaten erfolgt, ist es des Weiteren möglich, diese Verarbeitung vom Rest der Bildverarbeitungs-Applikation zu entkoppeln. Erreicht wird dies, indem die für die Verarbeitung von Netzwerkdaten dedizierten CPU-Kerne von der Rechenlast durch die parallel laufende Bildverarbeitungs-Applikation ausgespart werden.

Fazit

Bild 4 | Durch die Verteilung der Netzwerkdatenverarbeitung dank MAO kann die volle Systemperformance ausgenutzt werden. (Bild: Matrix Vision GmbH)

Matrix Vision hat mit dem Multi-Core Acquisition Optimizer ein Problem softwareseitig gelöst, welches zuvor lediglich mit kostspieliger Aufrüstung von Hardware machbar war. Ganz ohne zusätzlichen Aufwand können Anwender somit ohne Bedenken Ihre 10GigE Kamera von Matrix Vision bei höchster Framerate nutzen und parallel einen zeitaufwändigen Algorithmus zur Verarbeitung der Bilder ausführen. Der MAO wird über die Matrix Vision Geräte-Firmware in Kombination mit der aktuellen mvImpact Acquire Treiber Version zur Verfügung gestellt. Für Kunden entstehen keine zusätzlichen Kosten. Konfiguriert und angesteuert wird er über das GUI-Tool wxPropView oder über das mvImpact Acquire SDK.

Das könnte Sie auch Interessieren

Bild: Mühlbauer Technologie GmbH, HD Vision Systems
Bild: Mühlbauer Technologie GmbH, HD Vision Systems
Glänzend geprüft

Glänzend geprüft

Mit der Vision Guided Robotics Software LumiScan VGR ermöglicht HD Vision Systems die Kombination unterschiedlicher Bildverarbeitungsapplikationen und -analysemethoden in Kombination mit der Robotersteuerung. Wie das in der Praxis aussieht, zeigt das Beispiel einer Prüfanlage für Front- und Heckstoßfänger der Mühlbauer Technologie, für die ein System aus den Lichtfeldkameras LumiScanX und der Software entwickelt wurde.

Bild: Vision Components GmbH
Bild: Vision Components GmbH
Datenübertragung per Koaxkabel

Datenübertragung per Koaxkabel

Vision Components bietet seine MIPI-Kameras ab sofort mit GMSL2-Interface für die Datenübertragung mit bis zu 10m langen Kabeln an. Dafür hat das Unternehmen eine fest in das Design der Module integrierte Adapterplatine entwickelt. Als erstes Modul ist das VC MIPI IMX296 in der GMSL-Variante erhältlich. Als Besonderheit gibt es eine weitere Platine, die das serielle GMSL-Signal wieder zurück auf MIPI CSI-2 wandelt.

Bild: Basler AG
Bild: Basler AG
Details bei 80m/min

Details bei 80m/min

Bei der Herstellung von Batteriezellen ist eine hohe Qualität in allen Prozessschritten entscheidend, um den Materialausschuss zu reduzieren. Digitale Bildverarbeitungslösungen von Basler eröffnen Möglichkeiten, auch kleinste Defekte bei der Elektrodenbeschichtung zuverlässig zu erkennen.

Bild: Vision Components
Bild: Vision Components
Eingebettet

Eingebettet

Eingebettete Bildverarbeitungssysteme sind hochintegrierte Single Board Computer, die zusammen mit Kameratechnik ein Vision System ergeben, das nicht der klassischen komponentenbasierten PC-Technik und -struktur entspricht. Derartig spezialisierte Embedded Vision Systeme sind kompakter, kostengünstiger, energiesparender, oft auch leistungsfähiger und auf ihre Arbeitsumgebung angepasst.

Bild: Mercedes-Benz Group AG
Bild: Mercedes-Benz Group AG
Kurzzeit-Röntgen

Kurzzeit-Röntgen

Zusammen mit dem Fraunhofer EMI hat Mercedes-Benz den weltweit ersten Röntgencrash mit einem realen Pkw durchgeführt. Mit der Kurzzeit-Röntgentechnologie lassen sich hochdynamische innere Deformationsvorgänge mit bis zu 1.000fps darstellen, was die Technologiedemonstration in der EMI-Forschungscrashanlage bei Freiburg gezeigt hat. Bisher unsichtbare Verformungen und ihre exakten Abläufe werden so transparent.