APU vs. FPGA

APU vs. FPGA

Was setzt sich bei intelligenten Kameras durch?

Die Innovationen bei Smart-Kameras schreiten immer schneller voran. Vision-Systeme werden immer schneller, kleiner und energieeffizienter. Dieser Trend ist besonders ausgeprägt im stark wachsenden Bereich der x86-basierten intelligenten Kameras, bei denen man zugunsten von Designeffizienz, Funktionsvielfalt und Rapid Prototyping auf herkömmliche, sehr begrenzt unterstützte FPGA-basierte Verarbeitungsplattformen verzichtet.
Da der Markt der smarten Kameras hart umkämpft ist, wird die Designflexibilität für die Hersteller intelligenter Kameras immer wichtiger. Sie ermöglicht es, ihre Produkte schneller zur Marktreife zu bringen. Gerade hier zeigt sich aber, dass FPGAs als zentrale Verarbeitungseinheit von Vision-Systemen in die Jahre gekommen sind. Sie verzögern den Entwicklungsprozess auch für erfahrenste Entwicklerteams und es ist sehr aufwendig, sich FPGA-Fachwissen anzueignen. Ältere, rein FPGA-basierte intelligente Kameras verlangen zudem von Entwicklern geradezu hellseherische Fähigkeiten, was Auswirkungen auf die Effizienz der Entwicklung hat. FPGAs sind komplexe, höchst leistungsfähige Bauteile, die sich an spezifische Zielanwendungen anpassen lassen. In einigen Anwendungsfällen sind sie überzeugende Alternativen zu x86-Prozessoren. Ihr tatsächlicher Wert hängt jedoch wesentlich vom Verständnis des Entwicklers für logische Schaltungen ab. Seitens der Software ist der Wettstreit zwischen FPGAs und vergleichbar leistungsfähigen x86-Plattformen – insbesondere Accelerated Processing Units (APUs) – um einen möglichst einfachen Entwicklungsprozess allerdings nicht ausgeglichen. Bei Konfigurationen mit FPGAs und getrennter CPU müssen bei den meisten Vision-Anwendungen die rechenintensiven Bildverarbeitungsalgorithmen im FPGA implementiert werden. Dies ist eine Einschränkung, da die VHDL (VHSIC Hardware Description Language) und die passenden Kernel-Treiber für jede Zielanwendung eigens entwickelt werden müssen. Bei einem solchen Layout zieht jede Änderung beim Algorithmus, Datenfluss oder sogar beim Debug- und Prüfungsprozess einen zeitaufwendigen Respin der FPGA-Implementierung nach sich. Zudem muss ein Modell zur Aufteilung der Tasks festgelegt werden, was Auswirkungen auf Systemebene hat, wenn ein Re-Design erforderlich ist. Oft ist es aber so, dass die bei FPGAs eingebettete CPU nicht leistungsfähig genug ist, um die von den Sensoren erzeugten Daten in Echtzeit verarbeiten zu können, daher wird sie zumeist nur dafür verwendet, den Datenfluss zu steuern. Alle Algorithmen zur Bildverarbeitung (Bildkorrektur, Segmentierung, Merkmalserkennung usw.) müssen deshalb in VHDL im FPGA implementiert werden.

Der entscheidende Faktor

Mit x86-basierten APUs (im konkreten Fall AMD Embedded G-Series T56N APUs) kann im Vergleich ein zuvor unerreichbarer Grad an Entwicklungs-Effizienz erzielt werden. Der wesentliche Grund dafür ist, dass Bildbearbeitungs-Programmbibliotheken wie OpenCV, Matlab oder Halcon aus dem Open-Source-Bereich und von Drittanbietern genutzt werden können. Gleiches gilt für Debugging-Tools für die x86-CPU und OpenCL für den Grafikprozessor. Der x86er kann vollständig mit Standard-Tools geprüft werden, u.a. gibt es Latenz-Analysatoren und Profiler (perf, ftrace), moderne Debugger und integrierte Entwicklungsumgebungen (Eclipse, gdb) sowie Power-Analyzer (powertop). All dies ist in mächtigen Entwicklungssystemen wie dem Yocto-Projekt zusammengefasst, einem Open-Source-Projekt, das Templates, Tools und Methoden für maßgeschneiderte Linux-basierte Systeme für hardwareunabhängige Embedded-Produkte bereitstellt. Die Anwendungen können ohne Kreuzcompiler oder (meistens kaum gewartete) Support-Pakete für das Board auf jedem Rechner entwickelt und getestet werden. Eine APU, die Kombination einer GPU mit der CPU auf einem Chip, ermöglicht es, rechenintensive Prozesse in der Bildverarbeitung ohne Verzögerungen durch eine Bus-Übertragung von der CPU in die GPU auszulagern. Die CPU kann andere Interrupts mit wesentlich weniger Verzögerung bearbeiten, die Echtzeitleistung des Gesamtsystems steigt und die stetig steigenden Anforderungen heutiger Vision-Systeme an die Rechenleistung werden besser erfüllt. Mit dieser Architektur lässt sich die gesamte Verarbeitungsplattform mit einem standardmäßigen Linux-Kernel verwalten, was bei neuen Kernel-Versionen nur geringen Aufwand verursacht. Die Übertragung auf das Board ist unter jedem Betriebssystem (Linux, Windows) möglich. Um die Entwicklungszyklen noch weiter zu vereinfachen und zu verkürzen, wurde die APU in einen Panel-PC und I/O-Module nach Industriestandards integriert, sodass man Programmcode mit einer einzigen Distribution auf Basis des Yocto-Projekts auf verschiedenen Systemen wiederverwenden kann. Um Standardprotokolle wie Ethercat und Modbus zu unterstützen, genügt es, existierende Programmbibliotheken zu integrieren. Da diese für gewöhnlich in x86-Umgebungen entwickelt werden, müssen sie nicht portiert oder gesondert gewartet werden. Ein zusätzlicher Vorteil der ausgewählten AMD-APU-Plattform ist die Möglichkeit, sie zur Leistungssteigerung mit einem AMD-Radeon-basierten Grafikprozessor in einer MXM-Lösung zu kombinieren. So lässt sich im Bedarfsfall problemlos zusätzliche Leistung für rechenintensive Anwendungen bereitstellen.

Offene Standards

Mit APUs anstatt FPGAs als zentrale Verarbeitungseinheit in intelligenten Kameras können offene Entwicklungstools wie OpenCL genutzt werden. Diese nicht-proprietären Programmierplattformen ermöglichen es dem Hersteller und seinen Kunden, höhere Leistungen in der Parallelverarbeitung zu erzielen. Dies bei gleichzeitiger Skalierbarkeit über ein breites Spektrum von Vision-Systemen und auf der Basis des gleichen Sourcecodes. Die Möglichkeit, einen zukunftssicheren, portablen Quellcode zu entwickeln und zu pflegen, steigert die Effizienz der Programmierung immens. OpenCL ist ein offener, lizenzfreier Programmierstandard für die Parallelverarbeitung auf heterogenen Systemen. Er bietet Entwicklern von Vision-Systemen eine plattformübergreifende, nicht-proprietäre Lösung, um ihre Anwendungen auf populären Plattformen wie APUs, Multicore-Prozessoren und GPUs zu verbreiten. Eine einheitliche Sprache genügt für alle Parallelverarbeitungs-Elemente innerhalb eines Systems. Entwickler arbeiten mit einem abstrakten Plattformmodell, dass die unterschiedlichen Architekturen in gleicher Weise darstellt; das Ausführungsmodell unterstützt zudem die Parallelität von Daten und Tasks über heterogene Architekturen hinweg. Syntax und Workflow-Attribute von OpenCL lehnen sich an die Software-Welt an, was die Sprache wesentlich eingängiger macht als VHDL. OpenCL kann prinzipiell auch für FPGA-basierte intelligente Kameras implementiert werden. Es erfordert jedoch tiefgreifende Kenntnisse der FPGA-Technologie, um eine höhere Programmiersprache in die Hardwarebeschreibungssprache (HDL) der FPGAs umzuwandeln – der Markt für solche ‚OpenCL-nach-HDL-Entwicklungsumgebungen‘ ist sehr überschaubar. Auch hier gilt: Um FPGAs effektiv einzusetzen, sind hochspezifische Kenntnisse von Nöten, die Tool-Unterstützung ist dürftig und die Entwicklungszyklen oft langwierig.

Seiten: 1 2Auf einer Seite lesen

Thematik: Allgemein
www.qtec.com

Das könnte Sie auch Interessieren

Anzeige

Vorfreude auf Control 2022

Vorfreude auf Control 2022

Vom 03. bis 06. Mai 2022 wird die 34. Control – Internationale Fachmesse für Qualitätssicherung – in Stuttgart stattfinden.

EMVA Webinar mit Continental Teves

EMVA Webinar mit Continental Teves

Das nächste EMVA Spotlight Webinar findet am Donnerstag, den 9. Dezember, ab 16:00 Uhr (CET) statt. Nuria Garrido López (Continental Teves AG) wird über ‚Änderungen und Lösungen für die optische End-of-Line-Inspektion in der Automobilindustrie‘ sprechen.

EMVA Young Professional Award 2022

EMVA Young Professional Award 2022

Der EMVA Young Professional Award wird auf der 20. EMVA Business Conference 2022 vergeben, die vom 12. bis 14. Mai in Brüssel, Belgien, stattfindet.

Video: EMVA Vision Pitches – Robot Vision

Video: EMVA Vision Pitches – Robot Vision

Teil der inVISION Days 2021 Konferenz waren die EMVA Vision Pitches, bei der sich interessante Unternehmen aus der Bildverarbeitung mit einem kurzen zehn-Minuten-Pitch vorgestellt haben.

Neues Beiratsmitglied für TriEye

Neues Beiratsmitglied für TriEye

Das israelische Startup-Unternehmen TriEye hat Hans Rijns (Bild), eine Führungskraft aus der Halbleiterbranche mit über 25 Jahren internationaler Erfahrung in den Bereichen F&E-Management, Innovation und Geschäftsstrategie, in seinen Beirat aufgenommen.

Vision-Branche auf starkem Kurs

Vision-Branche auf starkem Kurs

Mehr als 1,5 Jahre nach dem Ausbruch der Corona-Pandemie befindet sich der Industrial Technology Index nach einer Stabilisierung auf einem anhaltend hohen Niveau.

Lattice übernimmt Miramterix

Lattice übernimmt Miramterix

Lattice Semiconductor hat Mirametrix, Inc. übernommen, ein Softwareunternehmen, das sich auf fortschrittliche KI-Lösungen für Computer-Vision-Anwendungen spezialisiert hat.

Bild: Alteia
Bild: Alteia
15 Millionen Euro Finanzierung für Alteia

15 Millionen Euro Finanzierung für Alteia

Die Europäische Investitionsbank (EIB) und das in Toulouse ansässige Startup Alteia, das sich auf die Entwicklung von Software für künstliche Intelligenz spezialisiert hat, haben die Unterzeichnung einer Finanzierungsvereinbarung über 15Mio.€ bekannt gegeben.

Micro-Epsilon erweitert Vertriebsteam

Micro-Epsilon erweitert Vertriebsteam

Micro-Epsilon hat sein Vertriebsteam verstärkt. Seit Oktober unterstützen Marcus Gluth (Bild) in den Bereichen Weg- und Abstandssensoren, berührungslose IR-Temperatursensoren sowie Farbsensoren und Jens Höppner im Bereich 3D-Sensoren und Laser-Scanner den Außendienst des Unternehmens.

Anzeige

Anzeige

Anzeige

Anzeige

Anzeige

Anzeige