Schwerpunktthema Embedded World 2017

Die Embedded World findet jedes Jahr in Nürnberg statt. Ähnlich wie zur Electronica war ich diesmal auf der Embedded World, um mir einen Überblick über die Neuerungen insbesondere in den Bereichen „Embedded Systems“ und „künstliche Intelligenz“ zu verschaffen.

Überblick

Die Embedded World (siehe den Link weiter unten), ist flächenmäßig kleiner als die Electronica und konzentriert sich auf das embedded computing. Hierbei handelt es sich un die Hard- und Softwareanwendungen, die Maschinen, Autos, Gebäuden, oder anderen Dingen die Intelligenz liefern.

Im Gegensatz zur Electronica werden elektronische Bauelemente nur in geringem Umfang gezeigt, und ich hatte auch den Eindruck, daß mancher Stand kleiner war. Jedoch waren viele Hersteller auf beiden Messen vertreten.

Im Rahmen der Messe finden begleitende Fachkongresse oder auch Gemeinschaftsevents statt:

  • Die embedded world Conference ist eine Konferenzserie für Entwickler solcher Systeme. Es wird das gesamte Spektrum an Hardware, Software und Werkzeugen/ Tools abgedeckt, das Entwicklung von Embedded Systems notwendig ist.
  • Die electronic displays Conference behandelt Neuerungen auf dem Gebiet der Bildschirme.
  • Embedded Vision, auf der Techniken, wie Bilderkennung z.B für das autonome Fahren behandelt werden.
  • Gemeinschaftsschauen innovativer, junger Unternehmen, oder der Students Day runden die Events ab.

Highlights

Mir ging es eher um die eingebetteten Systeme und um die künstliche Intelligenz. Hier habe ich viel gesehen und gelernt. Besonders beeindruckt hat mich, dass an sehr vielen Ständen sehr gut gemachte Demos gezeigt wurden.

Demos

Um nur einige wenige dieser Demos zu nennen:

  • Beispielsweise gab es bei Infineon mehrere Demos zum Thema „Sicherheit des IoT“, die auch auch als Reaktion auf jüngere Vorfälle zu sehen sind (Einmal haben Hacker über die Bluetooth Schnittstelle ein Auto gekapert, und konnten es fernlenken. Zum anderen gab es neulich einen größeren Botnetzangriff, der wegen der vielen ungeschützten Geräten erst möglich war).
  • NVIDIA hat mehrere Anwendungen rund um die „Jetson“ Familie gezeigt, wie z.B. ein autonomes Fahrzeug auf der die Algorithmen für eine zukünftige Mars Mission entstehen, oder aber Bilderkennungslösungen, wie sie z.B. beim autonomen Fahren eingesetzt werden.
  • Xilinx hat unter der Überschrift „reVision“ gezeigt, wie man mit Hilfe von FPGAs 4 k Videodatenströme wandeln kann, und die so größenreduzierten Daten über ein Netzwerk schicken kann, um sie auf der anderen Seite wieder zurückzuwandeln (Bei mehr als 50 MBit/s Daten ist diese Übertragung keine Kleinigkeit). Auch wurde die quelloffene 4 kKamera Axiom live gezeigt (ein sehr interessantes Projekt).

Anwendungen in der künstlichen Intelligenz, wie z.B. Bilderkennung oder Machine Learning verlangen sehr viel Rechenpower. Hier fand ich die diversen Demos und Produkte interessant, die diese Variante des High Performance Computing unterstützen.

High-Performance Computing

Beschleunigen bedeutet in Zusammenhang mit dem High Performance Computing, daß man Verarbeitungsschritte parallelisiert. Dabei gibt es hardwareseitig wohl die zwei großen Richtungen GPU- Computing und FPGAs.

Nvidia definiert das GPU Computing wie folgt:

„Beim GPU Computing (oder auch „Grafikprozessor-beschleunigten Berechnungen“) wird der Grafikprozessor (GPU) gemeinsam mit der CPU zur Beschleunigung von Deep Learning-, Analyse- und Konstruktionsanwendungen eingesetzt. „

Hierbei werden die rechenintensiven Rechnungen auf GPUs ausgelagert, die parallel arbeiten, und die sequentiellen Teile werden von der CPU erledigt. Diese Methode arbeitet schnell. Da jedoch Daten „hin und her“ geladen werden müssen, verbraucht diese Lösung jedoch relativ viel Energie.

FPGAs (Field Programmable Gate Arrays)  sind spezielle Logikchips, die auf Hardwareebene „programmiert“ werden. Wikipedia definiert die Architektur wie folgt:

„Die wesensbestimmende Grundstruktur eines FPGA ist ein Feld (engl. Array) aus Basisblöcken mit jeweils einer einfachen programmierbaren Lookup-Tabelle (LUT) und einem 1-Bit-Register (Flipflop). Die LUTs können, je nach Anzahl der verfügbaren Eingänge, jede beliebige n-stellige Binärfunktion realisieren. Die Programmierung der gewünschten Funktion erfolgt durch die Hinterlegung der definierenden Wahrheitstabelle in den SRAM-Zellen der LUT, die Funktionsberechnung durch das Auslesen der durch die Eingänge bestimmten Speicheradresse. Lange Zeit waren LUT-Strukturen mit 4 binären Eingängen üblich. Neuere FPGAs gehen zur Verringerung des Aufwandes an LUT-zu-LUT-Verbindungen zur Realisierung von Funktionen mit mehr Eingängen auf LUTs mit bis zu 6 Eingängen über.“

FPGAs sind energiesparender als GPUs, sind jedoch schwieriger zu konfigurieren. Wenn man weiss wie es geht, kann man hier jedoch sehr leistungsfähige neuronale Netze realisieren, die sehr schnell arbeiten.

Normalerweise sind dies zwei unterschiedliche Technologien. Jedoch wurde mir die Sprache „openCL“ mehrfach von kleineren oder größeren Unternehmen empfohlen, da man hiermit in einem Werkzeug sowohl GPU Computing realisieren kann, als auch FPGAs.

Auch interessant ist, daß openCL programmiert wird, wie man es in der Software kennt (im Gegensatz zum Konfigurieren der Hardware, wie dies bei FPGAs üblich ist). Dies liegt den Softwareherstellern näher.

Im Rahmen meiner KI Projekte geht es mir nun darum, OpenCL, GPU-Computing und FPGAs im praktischen Einsatz auszuprobieren.

Weiterführende Informationen

Das Original dieses Artikels ist auf Der Produktmanager erschienen (©Andreas Rudolph). Folgeartikel zum Thema gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen.

Das heutige Artikelfoto stammt aus der Pressedatenbank der Messe München („Foto: Messe München“), und stellt eine Podiumsdiskussion dar.

In der Online Version des Artikels finden Sie hier die versprochenen weiterführenden Links:

Comments are closed.