Open-Source-Prozessoren für TinyML RISC-V-Prozessor für Edge AI im FPGA implementieren
Anbieter zum Thema
Von einfachen Steuerungsaufgaben bis zur Inferenzanwendung für Künstliche Intelligenz: Mit der offenen Befehlssatzarchitektur RISC-V lassen sich passgenaue Digitalprozessoren entwickeln. Besonders flexibel gelingt der Aufbau mithilfe von Field Programmable Gate Arrays, kurz FPGAs.

Als flexibel gilt etwas, wenn es sich an verschiedene Anforderungen oder Bedingungen anpassen lässt. Diese Fähigkeit eröffnet zum Beispiel einem Prozessor, Microcontroller oder FPGA (Field Programmable Gate Array) die Möglichkeit, vielfältige Funktionen in sehr unterschiedlichen Anwendungen auszuführen. Die offene RISC-V ISA (Instruction Set Architecture) stellt eine Grundlage für den Aufbau von Prozessoren dar, die sich wachsender Beliebtheit erfreut. RISC-V ist nicht neu, doch es gibt laufend interessante Neuigkeiten dazu.
Dabei geht es häufig um Anpassung an spezifische Anforderungen und Randbedingungen – also Flexibilität. Der einfachste Ansatz, bei neuen Anforderungen einen ausreichend schnellen, größeren Prozessor mit reichlich Speicher und Peripherie zu verwenden, ist zwar einerseits auch sehr flexibel hinsichtlich höherer Ansprüche an Programme und deren Ausführungsgeschwindigkeit. Andererseits werden unter anderem Systemkosten, Baugröße oder Stromaufnahme jeweils die wirtschaftlich vertretbaren Grenzen dieses Ansatzes bestimmen. Das Thema ist etwa so alt wie integrierte Mikroprozessoren an sich. Genauso alt ist das Bestreben, die Flexibilität für bestimme Anwendungsbereiche in praktikablen Grenzen zu optimieren.
Hohe Flexibilität dank FPGAs
Hier spielt das FPGA eine wichtige Rolle. Denn dieser Standard-Baustein ist per Definition auf anwendungsspezifische Aufgaben ausgelegt. Schon lange werden FPGAs mit integrierten Mikrocontrollern oder Prozessoren kombiniert. Diese Kombination kann auf einen vollständigen CPU-Kern setzen, der mit dem FPGA auf einem Chip integriert ist, oder es wird ein sogenannter Soft-Core verwendet, der als Teil des anwendungsspezifischen Designs im FPGA realisiert wird. Auch hier stößt man wieder auf die oben genannten Kriterien. Größere Flexibilität des Soft-Cores gegenüber einer fest integrierten Variante ist üblicherweise nur mit einer geringeren Taktfrequenz zu erhalten. Aufgrund der erst langsam entspannenden Marktsituation ist aktuell wohl auch das Thema Verfügbarkeit nicht zu vernachlässigen. Ein offener, portierbarer Soft-Core ermöglicht Technologiewechsel.
An dieser Stelle setzt der FPGA-Lieferant Efinix mit seinen FPGA-Familien Trion und Titanium sowie dem Soft-Core Sapphire an. Sapphire bezeichnet eine weitgehend skalierbare RISC-V-Implementierung. Der kostenlose IP-Core ist in der FPGA-Entwicklungsumgebung Efinity enthalten. Die Konfigurationsoptionen reichen von einem kleinen Controller mit On-Chip-Memory, UART, SPI, I2C Schnittstellen über Multicore-Konfigurationen mit externem Speicher bis zum Linux-fähigen Kern mit Memory-Management-Unit.
An der Edge zählt Energieeffizienz
Aber wo positionieren sich Sapphire-basierende Lösungen anhand der Auswahlkriterien? Mit den Low-Power-FPGA-Familien geht es um Effizienz, also gute Performance mit begrenzter Baugröße und Systemkosten. Die stetige Weiterentwicklung des Sapphire-SoC zeigt zum Beispiel Vorteile im Image-Processing oder auch in der Implementierung von künstlicher Intelligenz. Dafür nutzt Efinix einerseits sogenannte Quantum-Accelerator, vorgefertigt oder vom Anwender erstellt, und andererseits die Custom-Instruction des RISC-V.
Beim Erzeugen einer Sapphire-Konfiguration in der Efinity-Software werden einerseits Quellen in synthetisierbarer HDL (Hardware Description Language) in das Projektverzeichnis geschrieben. Andererseits wird gleich eine ganze Sammlung von einfachen Beispielprogrammen in C/C++ bereitgestellt, die die Nutzung einzelner Funktionen zeigen. Das Spektrum reicht von der einfachen UART-Kommunikation bis zur Multicore-Programmierung. In einem Beispiel wird auch die Implementierung eines Tiny-Encryption-Algorithmus in Software und in Hardware gegenübergestellt. Die Hardware-Implementierung, eingebunden in eine Custom Instruction, ermöglicht in diesem Fall eine Beschleunigung um Faktor 30.
RISC-V-Prozessor für eigene Anwendung optimieren
Efinix nutzt beide Optionen, Custom Instruction und Accelerator, um die Flexibilität mit den Stärken der Hardware-Beschleunigung des FPGAs stromsparend und effizient zu kombinieren – aktuell vor allem für „AI at the Edge“-Anwendungen. Zur Ausgangsbasis Edge Vision SoC wird eine TensorFlow Lite Library (www.tensorflow.org) und die Efinix TinyML Accelerator-Implementierung angeboten, um beliebige AI-Implementierungen, die mit der TFLite Micro Library realisiert werden, auf einem RISC-V-Core im FPGA in der Leistungsfähigkeit und der Leistungsaufnahme zu optieren. Die Vorteile liegen darin, weit verbreitete, offene Werkzeuge und Plattformen zu nutzen, und im FPGA einen passenden Mix aus Performance, Leistungsaufnahme und Entwicklungsaufwand zu finden.
Als Edge Vision SoC bezeichnet Efinix eine RISC-V-Konfiguration mit Video- und Speicher-Interfaces und DMA Controller. Je nach FPGA-Familie und -Typ werden zum Beispiel DDR3(L)-Speicher, HyperRAM oder LPDDR4(X) angebunden. Dieses SoC hat sowohl die Custom Instruction als auch den Sockel für Quantum Accelerator an Bord. Ein Beispiel für Hardware-unterstütztes Image Processing ist als Vorlage für eigene Entwicklungen gleich dabei, wobei Hardware hier für die Implementierung einer Funktion im FPGA steht, die in Logik wesentlich effizienter abläuft als in dem Prozessor. Edge Vision SoC wird einerseits als Efinix Edition auf der Efinix-Webseite und als Community Edition auf den GitHub-Seiten bereitgestellt.
AI-Projekt in Software auf Standard-Hardware evaluieren
Für das Implementieren und Programmieren des Sapphire RISC-V in den Low-Power-FPGA-Familien Trion und Titanium steht neben der FPGA-Entwicklungssoftware Efinity die Efinity RISC-V Embedded IDE bereit – eine Eclipse-basierende Umgebung inklusive C++ Compiler und Debugger. Die Adaption eines einfachen, offenen AI-Flows wird das Anwendungsfeld des Sapphire RISC-V erweitern. Die Library „Open Source TensorFlow Lite for Microcontrollers“ bringt zudem quantisierte Versionen von TensorFlow-Modellen auf ein Mikrocontroller-System. Eine AI-Entwicklung kann so zunächst in Software auf einer Standard-Hardware ablaufen, um das Modell zu evaluieren. Diese Hardware kann ein beliebiges RISC-V-System sein – auch ein FPGA Development Kit mit einem RISC-V-SoC wie dem Ti60F225 mit einem Titanium Ti60 FPGA von Efinix. Mit wenigen Handgriffen ist das Kit betriebsbereit und kann mit einem vorbereiteten RISC-V-Design geladen werden. Analog zum Edge Vision SoC wurde für Artificial Intelligence die TinyML Platform hinzugefügt. Dieses Paket beinhaltet ein startbereites FPGA-Design und vordefinierte Hardware-Accelerator. Mit Beispielen, die von GitHub heruntergeladen werden können, sind erste AI-Implementierungen in wenigen Schritten in Aktion.
Als Ausgangspunkt setzt die TinyML Platform auf die Open Source Machine Learning Platform TensorFlow – mit umfassenden Werkzeugen, Bibliotheken und Beiträgen aus der Community. Ein Zweig unter TensorFlow, TensorFlow Lite für Microcontroller, fokussiert mit einer C++ Bibliothek auf Edge Devices. Mittels Konverter werden trainierte TensorFlow Modelle in kleinere, effiziente Modelle mit geringem Speicherbedarf übertragen. Weitere Informationen und Beispiele sind auf www.tensorflow.org zu finden. Mit frei verfügbaren Werkzeugen und Unterstützung einiger Mikrocontroller-Entwicklungskits ergibt sich einen leichterer Einstieg in die AI-Implementierung – mit C++ Code und der entsprechenden Bibliothek in Software. Vorrangig sind C++ Abbildungen auf Microcontrollern in Baugröße, Kosten und Stromaufnahme optimiert. Die Leistungsfähigkeit ist begrenzt.
Software-Funktionen in Hardware umsetzen und beschleunigen
Genau an dieser Stelle setzt der Efinix TinyML Accelerator an. Angebunden an einen RISC-V über Custom Instructions und die Accelerator im FPGA können Funktionen der TensorFlow Lite Micro Library von der reinen Software Implementierung in einen vorteilhaften Mix aus Software mit Hardware-Unterstützung umgesetzt werden. Dabei bleibt der Ablauf von TensorFlow bis zum TensorFlow Lite Modell für Microcontroller derselbe. Ein TinyML Generator mit grafischem User-Interface hilft bei der optimierten Abbildung des C++ Modells auf die Low Power FPGA Familie Titanium.
Neben einer grundsätzlichen Entscheidung zwischen Lite Mode mit Lightweight Accelerator für besonders geringen Ressourcenverbrauch und dem Standard Mode für höhere Performance bei größerem Ressourcenbedarf sind weitere Abwägungen möglich. Dazu zählen insbesondere die Datenbreite der Speicheranbindung, die Option der Hardware-Beschleunigung von Convolution Layern mit parametrierbarer Parallelität. Ebenso können Add-, Fully Connected, Multiply und Min-Max-Layer wahlweise in Soft- oder Hardware abgebildet werden.
Implementierung per Knopfdruck
Der TinyML-Generator gibt Quelldateien für das FPGA-Design und die Software aus, die entsprechende Dateien im Ausgangsprojekt ersetzen. Nach der „Push Button“-Implementierung stehen im FPGA die gewünschten Hardware-Funktionen zur Beschleunigung der Software bereit, die über die adaptierte Bibliothek angesprochen werden. Der RISC-V mit TinyML Accelerator zeigt im Titanium FPGA im Verhältnis zu Microcontrollern eine um den Faktor 2 bis 50 höhere Performance bei vergleichbarer oder sogar geringerer Verlustleistung. In den Beispielen, die unter Efinix-Inc auf GitHub stehen, läuft der RISC-V im Titanium Ti60 mit 300 MHz Taktfrequenz. Mit Reduzierung dieser Frequenz kann wiederum flexibel die Verlustleistung gegenüber der Performance optimiert werden.
Mit den beschriebenen Optionen kann eine RISC-V-AI-Lösung für Edge-Applikationen als Softcore maßgeschneidert werden. Dabei bleibt ein großer Teil des Entwicklungsablaufs für Mikrocontroller-Lösungen bestehen, nur im finalen Schritt der Optimierung ist eine Bibliothek durch die adaptierte Version zu ersetzen.
Dieser Artikel stammt von unserem Partnerportal ELEKTRONIKPRAXIS.
* Joachim Müller ist FAE Manager Europe bei Efinix Inc.
(ID:49214250)