Die Wahl der richtigen Mittel KI für IPCs und Embedded-Systeme

Martin Stiborski, Bressner Technology: »Bei der Auswahl der Technologie gibt es keine „beste“ Lösung - FGPAs, TPUs, GPUs oder CPUs sind alles nur Mittel zum Zweck, um eine geeignete Architektur für ein neuronales Netzwerk umzusetzen.«

Das Thema künstliche Intelligenz (KI) nimmt auch bei den Embedded-Systemen immer mehr Fahrt auf. Wie Bressner Technology diesen Trend unterstützt, erklärt Martin Stiborski, Geschäftsführer des Unternehmens.

Markt&Technik: Welche Anwendungsmöglichkeiten von KI gibt es für Embedded-Systeme?

Martin Stiborski: Embedded-Systeme sind mittlerweile leistungsstark genug, um auch anspruchsvollere KI-Anwendungen wie Simulationen oder neuronale Netzwerke meistern zu können. Laut einer Kurzstudie des Fraunhofer IAO zum Thema „Einsatzfelder von künstlicher Intelligenz im Produktionsumfeld“ sollte man aber nicht von Anwendungsmöglichkeiten, sondern von sogenannten Werkzeuggruppen sprechen. Je nach Einsatzort können Embedded-Computer im KI-Bereich für Text- und Sprachverarbeitung, Bild- und Tonverarbeitung, multidimensionale Mustererkennung, Wissensrepräsentation und Semantik, Aktionsplanung und Optimierung sowie Emotionserkennung und Absichtsanalyse verwendet werden.

Sollte die KI besser im Edge oder in der Cloud arbeiten?

Das hängt ganz von der spezifischen Anwendung ab. In der Industrie ist das Edge-Computing natürlich sehr interessant, da hier die Daten direkt vor Ort verarbeitet werden können. Was zum Beispiel bei Applikationen wie Machine-Learning sehr wichtig ist. Bei Anwendungen wie Deep Learning sieht dies schon wieder anders aus, da hier viel Leistung benötigt wird. Dies passiert dann letztendlich im Rechenzentrum und die Daten können dann über die Cloud zur Verfügung gestellt werden.

Sind dafür Public Clouds notwendig oder können auch Private Clouds genutzt werden?

Private Clouds sind nicht unbedingt notwendig, um ein effizientes Machine-Learning zu ermöglichen. Doch auch eine interne beziehungsweise Unternehmens-Cloud bietet viele Dienstleistungen von öffentlichen Clouds an, wie Self-Service, Skalierbarkeit, Elastizität, Unternehmens-Firewalls und internes Hosting. Private Clouds bieten somit individuellere Konfigurationsmöglichkeiten, zusätzlich zum Schutz vor unbefugtem Zugriff von außen. Der Nachteil liegt indes darin, dass für Kosten und Haftung, die bei der Verwaltung einer solchen Cloud anfallen, die unternehmenseigene IT-Abteilung zur Verantwortung gezogen wird. Man muss sich auch vor Augen führen, dass sich die erforderlichen Rechenoperationen, die aktuell für KI-gestützte Anwendungen in der Cloud stattfinden, nach wie vor nur mit Internetverbindung nutzen lassen. Aufgrund von Begrenzungen in der Netzwerkbandbreite sowie den damit verbundenen Latenzzeiten stoßen viele Anwendungsgebiete auf unüberwindbare Hürden.

Welche Technologie soll die notwendige Rechen-Power zur Verfügung stellen?

Grundsätzlich hängt die benötigte Rechenleistung stets von der angestrebten Anwendung ab. Bei der Auswahl der Technologie gibt es keine „beste“ Lösung – FGPAs, TPUs, GPUs oder CPUs sind alles nur Mittel zum Zweck, um eine geeignete Architektur für ein neuronales Netzwerk umzusetzen. Man muss sich also fragen, welche Architektur für welche Applikationen am besten geeignet ist.

Wo liegen also die Vorteile im Einzelnen?

Der Vorteil von CPUs besteht darin, dass sie sehr einfach per C/C++, Scala, Java, Python oder sonstigen Sprachen programmiert und in jegliches Framework integriert werden können. Beim maschinellen Lernen sind sie eher für simplere KI-Modelle mit kurzen Trainingsphasen geeignet. GPUs basieren im Vergleich zu CPUs auf deutlich vereinfachteren Prozessorstrukturen, können jedoch aufgrund der hohen Anzahl an Kernen Daten parallel verarbeiten. Im Verbund werden GPUs zu einem mächtigen Werkzeug bei der Gesichtserkennung oder ähnlichen Anwendungen. TPUs wurden entwickelt, um extrem schnelle Anwendungen wie die Berechnung von Vektoren und Matrizen durchzuführen.

Allerdings bietet diese Architektur weniger Flexibilität als CPUs und GPUs und sollte besser nur auf TensorFlow-basierten Modellen genutzt werden. Entscheidend bei FPGAs ist, dass sich die Hardware zur Lösung eines Problems maßgeschneidert an die Prozessorstruktur anpassen lässt, was bei CPUs nicht möglich ist. Dadurch können hohe Leistungen bei gleichzeitig niedrigen Kosten und Stromverbrauch erzielt werden. FPGAs werden insbesondere für spezielle HPC-Algorithmen verwendet und können mit OpenCL und HLS programmiert werden.