Google hat die offene Plattform Coral NPU (Neural Processing Unit) vorgestellt, die einen offenen Hardwarebeschleuniger für Modelle des maschinellen Lernens sowie Softwarewerkzeuge zur Nutzung mit gängigen KI-Engines anbietet. Coral kann als Grundlage für die Entwicklung energieeffizienter Systeme auf einem Chip (SoC) eingesetzt werden, die für das Internet der Dinge, Edge-Computing und Datenerfassungsplatinen geeignet sind, sowie in energiesparenden Verbrauchsgeräten wie Kopfhörern, Augmented-Reality-Brillen und Smartwatches. Die Ergebnisse des Projekts werden unter der Lizenz Apache 2.0 veröffentlicht.
Der Coral NPU ist darauf ausgelegt, AI-Anwendungen auf mobilen Geräten kontinuierlich mit minimalem Energieverbrauch auszuführen. Die Basisimplementierung des Coral NPU bietet eine Leistung von 512 Milliarden Operationen pro Sekunde (GOPS) und benötigt dabei nur wenige Milliwatt Energie. Der NPU ist so konzipiert, dass die Architektur flexibel an die Anforderungen der SoC-Hersteller angepasst werden kann. Der erste Hersteller, der mit der Produktion von Chips auf Basis des Coral NPU beginnen wird, ist das Unternehmen Synaptics, das eine Reihe von Prozessoren für IoT-Geräte, die Astra SL2610, angekündigt hat, welche eine Torq NPU-Subsystem enthält, das auf der Coral NPU-Architektur basiert.
Zu den typischen Anwendungen des Coral NPU gehört der Einsatz von KI zur Verarbeitung von Bildern und Ton, zur Benutzerinteraktion und zur Kontextberücksichtigung. Beispielsweise können auf den Geräten große Sprachmodelle und Anwendungen zur Gesichtserkennung, Objekterkennung, visuellen Suche, Spracherkennung, Live-Übersetzung, Sprachtranskription, Schlüsselwortextraktion in der Sprache, Gestensteuerung und Sprachbefehlen sowie zur Bestimmung der Benutzeraktivität (Gehen, Laufen, Schlafen) und der Umgebung (Zuhause, im Freien) ausgeführt werden.
Das NPU verwendet eine 32-Bit-RISC-V RV32IMF_Zve32x-Befehlssatzarchitektur, eine AXI4-Schnittstelle, ein vierstufiges Pipeline-Design zur Befehlverarbeitung mit geordneter Dispatching, unordentlicher Befehlsausführung, vierfacher skalaren und zweifacher vektorieller Dispatching. Der Prozessor unterstützt SIMD-Operationen zur gleichzeitigen Verarbeitung von 128-Bit-Vektoren und verfügt über 8 KB ITCM-Speicher für Befehle und 32 KB DTCM-Speicher für Daten.

Das NPU besteht aus drei zusammenarbeitenden Prozessorkomponenten:
- Der Kern für skalare Berechnungen ist ein leichtgewichtiger, in C programmierbarer RISC-V-Frontend, der den Datenfluss zu den Hauptkernen steuert und das Modell der "Ausführung bis zur Fertigstellung" (run-to-completion) verwendet, um die Funktionalität traditioneller CPUs mit extrem geringem Energieverbrauch zu gewährleisten.
- Der SIMD-Koprozessor unterstützt vektorielle Erweiterungen des RISC-V-Befehlssatzes (RVV v1.0) und ermöglicht die gleichzeitige Ausführung mehrerer Operationen über große Datenmengen.
- Der Matrix-Koprozessor führt effizient die kombinierten Multiplikations-Addition-Operationen (MAC) aus und wurde entwickelt, um die grundlegenden Operationen neuronaler Netzwerke zu beschleunigen.

Für Anwendungsentwickler steht ein Set von Compilern für AI-Modelle (IREE und TFLM), ein C-Compiler und ein Simulator zur Verfügung. Die Kompilierung von Modellen, die in AI-Anwendungen auf Basis von TensorFlow, JAX und PyTorch verwendet werden, wird unterstützt. Das Modell wird in eine universelle Zwischendarstellung kompiliert, die dann mit Hilfe von LLVM in den niederwärtigen RISC-V-Befehlssatz umgewandelt wird, der im Coral NPU unterstützt wird.

Quelle: opennet.ru
