Das Unternehmen Google hat die offene Plattform Coral NPU (Neural Processing Unit) vorgestellt, die einen offenen Hardwarebeschleuniger für Modelle des maschinellen Lernens und Softwarewerkzeuge zu deren Verwendung mit gängigen KI-Engines bietet. Coral kann als Grundlage für die Erstellung energieeffizienter Systeme auf einem Chip (SoC) verwendet werden, die für den Einsatz in Internet-of-Things-Systemen, Edge-Computing und bei der Datenerfassung von Sensoren sowie in stromsparenden tragbaren Geräten wie Kopfhörern, Augmented Reality-Brillen und Smartwatches geeignet sind. Die Entwicklungen des Projekts werden unter der Lizenz Apache 2.0 veröffentlicht.
Die Coral NPU zielt darauf ab, KI-Anwendungen für tragbare Geräte mit minimalem Energieverbrauch ständig auszuführen. Die Basisimplementation der Coral NPU bietet eine Leistung von 512 Milliarden Operationen pro Sekunde (GOPS) bei einem Verbrauch von nur wenigen Milliwatt. Die NPU wurde für flexible Modifikationen der Architektur je nach Bedarf der SoC-Hersteller konzipiert. Der erste Hersteller, der mit der Produktion von Chips auf Basis der Coral NPU beginnt, wird das Unternehmen Synaptics sein, das eine Reihe von Prozessoren für Internet-of-Things-Geräte mit dem Namen Astra SL2610 ankündigt, die eine Torq NPU-Subsystem bieten, das auf der Architektur der Coral NPU basiert.
Zu den typischen Anwendungen der Coral NPU gehört der Einsatz von KI zur Bild- und Tonverarbeitung, zur Benutzerinteraktion und zur Kontextberücksichtigung. Beispielsweise können auf den Geräten große Sprachmodelle und Anwendungen zur Gesichtserkennung, Objekterkennung, visuellen Suche, Spracherkennung, Echtzeitübersetzung, Sprachtranskription, Hervorhebung von Schlüsselwörtern in der Sprache, Gesten- und Sprachbefehlssteuerung sowie zur Aktivitätserkennung des Benutzers (Gehen, Laufen, Schlafen) und zur Identifizierung der Umgebung (drinnen, draußen) ausgeführt werden.
Die NPU verwendet eine 32-Bit-Architektur des RISC-V-Befehlssatzes RV32IMF_Zve32x, den AXI4-Bus, eine vierstufige Pipeline zur Verarbeitung von Anweisungen mit geordneter Verteilung, ungeordneter Vollziehung von Anweisungen, viergleisiger Skalare und zweigleisiger Vektordistribution. Der Prozessor unterstützt SIMD-Operationen zur gleichzeitigen Verarbeitung 128-Bit-Vektoren und ist mit 8 KB ITCM-Speicher für Anweisungen und 32 KB DTCM-Speicher für Daten ausgestattet.

NPU besteht aus drei zusammenarbeitenden Prozessor-Komponenten:
- Das Kernmodul für skalare Berechnungen ist ein leichtgewichtiger, auf C programmiertes RISC-V-Frontend, das die Datenströme zu den Hauptkernen steuert und das Modell "Run-to-Completion" verwendet, um die Funktionalität traditioneller CPUs und einen extrem niedrigen Energieverbrauch zu gewährleisten.
- Ein Vektor-SIMD-Coprocessor, der die vektoriellen Erweiterungen des RISC-V-Befehlssatzes (RVV v1.0) unterstützt und es ermöglicht, gleichzeitig mehrere Operationen mit großen Datenmengen auszuführen.
- Ein Matrizen-Coprocessor, der effizient kombinierte Multiplikations-ADD-Operationen (MAC) ausführt und entwickelt wurde, um grundlegende Operationen von neuronalen Netzwerken zu beschleunigen.

Für Anwendungsentwickler steht ein Satz von Compilern für AI-Modelle (IREE und TFLM), ein C-Compiler und ein Simulator zur Verfügung. Es wird die Kompilierung von Modellen unterstützt, die in AI-Anwendungen auf Basis der Frameworks TensorFlow, JAX und PyTorch verwendet werden. Das Modell wird in eine universelle Zwischenrepräsentation kompiliert, die anschließend mithilfe von LLVM in den niedrigstufigen RISC-V-Befehlssatz umgewandelt wird, der in der Coral NPU unterstützt wird.

Quelle: opennet.ru
