Vorstellung der Synaptics Astra Machina, einer nativen AI-IoT-Plattform für mobile künstliche Intelligenz Anwendungen


Heute geht es um ein ganz besonderes Stück Hardware, dass ich im Rahmen eines Workshops auf der embedded World 2024 in Nürnberg bekommen habe: eine Astra Machina von Synaptics mit SL1680 SoC. Die Astra Machina ermöglicht die mobile Ausführung von Anwendungen der künstlichen Intelligenz mittels NPU (Neural Processing Unit) als native IoT-Plattform.

Auf der Astra Machina läuft ein spezielles linux-basiertes Betriebssystem, dass auf die SL16x0-SoC (System on Chip) speziell zugeschnitten ist und die Ausführung von speziellen Modellen der künstlichen Intelligenz in einer hohen Performance von 7.9 TOPS (Trillion operations per second, für das SoC SL1680) ermöglicht.

Zur Umwandlung der herkömmlichen KI-Modelle basierend zum Beispiel auf TensorFlow oder ONNX gibt es ein Tool von Synpatics namens SyNAP, das auf einem herkömmlichen PC mit Ubuntu läuft. Dieses konvertiert die Modelle in ein spezielles 8-Bit-Modell für den SL16x0-SoC, um dessen Leistungsfähigkeit perfekt zu nutzen.

Das ist, in ein paar Sätzen zusammengefasst, was die erst seit ein paar Tagen auf dem Markt befindliche Astra Machina von Synaptics ist und kann.

Ich selbst bin (noch) kein KI-Experte und kann das natürlich auch von meinen Lesern nicht erwarten, darum ein kleiner Ausflug in die Grundlagen künstliche Intelligenz, damit klarer wird, um was es hier eigentlich geht.

Was ist künstliche Intelligenz?

Das Thema menschliche und künstliche Intelligenz ist sehr komplex und bis heute nicht gänzlich erforscht. Die eine oder andere Vereinfachung im Nachfolgenden sei mir deshalb erlaubt.

Künstliche Intelligenz, kurz KI, oder auf englisch artificial intelligence, kurz AI ist ein neues Trendthema und die Begriffe werden wie alle Buzzwords rauf und runter benutzt, weil man sich eine werbewirksame Aufmerksamkeit dadurch verspricht. Nachdem sich das Buzzwords "Cloud-Computing" und "Crypto-Blockchain" abgenutzt haben, wird jetzt das Buzzword "Künstliche Intelligenz" inflationär benutzt, um sich den Anstrich eines modernen, innovativen Unternehmens zu geben, das ganz vorne an der Technologie-Front steht. Vieles wird als KI bezeichnet, was keine ist. Hinzu kommt, dass die trendy Bezeichnung von Vielen benutzt wird, ohne dass diese genau wissen, um was es überhaupt wirklich geht.

Grob gesagt ist KI die durch Computer nachgebildete menschliche Intelligenz.

Der Mensch benutzt als Basis für sein Denken und seine Intelligenz sein Gehirn, das ein großes neuronales Netzwerk ist, ein Verbund aus Neuronen (Nervenzellen). Dieses ist bei Geburt noch unprogrammiert. Durch Lernen (im Kindesalter Nachahmen) werden die menschlichen Neuronen nach und nach mit mehr Informationen "programmiert", bis es schließlich für den Menschen möglich ist, nicht nur abgespeicherte Informationen abzurufen, sondern auch kreativ zu denken und auf neue Ideen zu kommen, die auf dem angeeigneten Wissen basieren.

Eine gebräuchliche Herangehensweise, die menschliche Intelligenz zu imitieren - also künstliche Intelligenz zu schaffen, ist es, künstliche neuronale Netze mittels Software im Computer zu erstellen und diese zu trainieren.

Das muss man sich in etwas so vorstellen: man hat eine spezielle Software, die das Rahmenwerk, das Framework darstellt und ein neuronales Netzwerk ohne jede Ordnung zur Verfügung stellt. Diese kann dann trainiert werden, es lernt sozusagen. Wenn man zum Beispiel eine Mustererkennung in Fotos mit KI realisieren will, nimmt man ein Framework, dass dazu geeignet ist und füttert es vielen, vielen Fotos. Man bringt ihm bei, dass ein auf einem Foto zu sehenden Katze in die Kategorie "Katze" gehört. Außerdem zeigt man der KI viele andere Tiere und sagt dazu, was sie darstellen, Hunde, Katzen, Mäuse, Vögel etc. pp.

Das trainierte Framework nennt man dann "Model", oder Modell. Im Modell hat sich durch das Anlernen mit zigtausend Fotos sozusagen eine neuronale Struktur entwickelt, die nun selbst Hunde von Katzen unterscheiden kann. Wie genau sie das macht, ob sie sich die Ohren anschaut, um Hund von Katze zu unterscheiden, oder doch eher die Schauze, oder den Schwanz, oder alles zusammen, ist eigentlich nicht mehr relevant und sozusagen ein Geheimnis, dass in den Tiefen des neuronalen Netzwerk des Modells "verwurstet" ist. Wichtig ist, dass ein Hund als Hund und eine Katze als Katze erkannt wird. Ist die Erkennungsrate nicht ausreichend, so muss das Modell weiter trainiert werden.

Je nach Anwendungsfall, sei es Mustererkennung, Bilderkennung, Spracherkennung, Text- und Schrifterkennung oder auch Textgenerierung, Bild- und Videogenerierung nutzt man ein anderes Modell. Sehr bekannt ist zum Beispiel Chat-GPT oder Gemini für die Textgenerierung. Oder Dall-E, Midjourney oder Stable Diffusion für die Bild-Generierung. Es gibt aber zahlreiche andere Modelle und Frameworks. Sie sind zum Beispiel auch zu finden in Grafikprogrammen, um Bilder zu manipulieren oder in Smarthome-Geräten für die Texterkennung.

Wo ist Künstliche Intelligenz?

Die Anwendung Künstliche Intelligenz braucht immer einen Computer. Diese kann in einem ans Internet angebundenes Rechenzentrum (neudeutsch Cloud) stehen, wie es zum Beispiel bei ChatGPT der Fall ist: Der Nutzer schickt eine textuelle Anfrage an ChatGPT über den Browser und dieser dann an einen leistungsstarken Rechnerverbund in der Cloud, von der er dann eine Antwort bekommt und dem Nutzer gibt. ChatGPT wurde mit zahllosen Webseiten angelernt, um zu "erraten", wie ein Text wohl weitergehen wird. Eigentlich handelt es sich um eine Textvervollständigung. Die mit echten Texten trainiert ist. Darum kann man ChatGPT Dinge fragen und erhält eine Antwort zum Thema. Wobei das nur eine sehr wahrscheinliche Antwort ist, die auf tatsächlichen Texten basiert. Aber nicht davor schützt, dass die KI "halluziniert" und behauptet der Himmel hinge voller Geigen und Flugzeuge müssten aufpassen, dass sie nicht dagegen fliegen, nur weil ChatGPT beides einmal gelesen (bzw. damit trainiert) wurde.
Man kann zwar an der einen oder anderen Stellschraube der KI stellen, aber prinzipbedingt ist die KI eine Blackbox, deren Ergebnisse nicht vorhersehbar sind. KIs ansich sind neutral, wenn der Lerninhalt neutral war. Trotzdem will man vielleicht keine Wehrmachtssoldaten mit schwarzer Hautfarbe oder weiblichen Geschlecht. Oder das schwarze eher als kriminell eingestuft werden als weiße Menschen. Diesen antrainierten sogenannte "Bias" ist dem Modell nur schwierig auszutreiben eben wegen des Blackbox-Prinzips.

KI muss nicht in der Cloud laufen. Sie kann auch lokal laufen. Ein leistungsstarke PC mit einer noch leistungsstärkeren Grafikkarte / GPU hilft dabei sehr, denn KI ist leistungshungrig. Aber dann spricht nichts dagegen, seine text- oder bildgenierende KI auch "zuhause" laufen zu lassen.

Oder zu guter Letzt kann KI auch mobil eingesetzt werden. Zum Beispiel im Auto, wenn Geschwindigkeits-Verkehrsschilder, Fahrbahnmarkierung usw. zuverlässig erkannt werden sollen, damit das Auto dementsprechend reagieren, etwa die Geschwindigkeit anpassen kann. Ein autonom fahrendes Auto, bei dem sich der Fahrer zurücklehnen kann und nichts mehr tun muss, und das diese Aufgabe derart zuverlässig und sicher erledigt, dass es besser fährt als der Mensch, ist ein großes, nächstes Ziel der KI und der Automobilindustrie.

Dazu braucht es kleine, stromsparende und hoch zuverlässige Computersysteme, die auch in widrigen Bedingungen funktionieren, zum Beispiel hohen oder niedrigen Temperaturbereichen.

Hier sind wir nun bei der Astra Machina angekommen. Dieses System ist für den mobilen Bereich konzipiert und benötigt nicht viel Strom. Es kann zum Beispiel auch in der Bilderkennung von Videoeingangssignalen benutzt werden, um Menschen und Objekte zu erkennen. Es gibt aber noch viele andere Möglichkeiten.

Die Hardware der Astra Machina


Das Entwickler-Board mit dem hübschen Namen Astra Machina (latein, zu deutsch etwa "Sternenmaschine" oder "Sternenmotor") besteht aus zwei Teilen und hat einen modularen Aufbau.

Zum einen wäre da das Motherboard (auch I/O Board genannt), dass die Anschlüsse herausführt und dann die Tocherplatine mit dem eigentlichen SoC, das über einen Slot in das Motherboard gesteckt und festgeclippt und gebraucht werden kann.


Auf der Oberseite des Motherboards befinden sich:

Auf der Unterseite des Motherboards befinden sich:

In den Slot des Motherboard kann die Tochterplatine gesteckt werden, die dafür über einen breiten Slot-Header verfügt, ähnlich wie bei RAM-Modulen. So ähnlich wie diese klickt das Tochtermodul auch ein und lässt sich dann mit zwei kleinen Schrauben am anderen Ende fixieren.

Es gibt derzeit drei sich durch die Leistungsfähigkeit unterscheidende Module:


Das SL1680 Modul (weitere Informationen bei Synaptics): Das SL1640 Modul (weitere Informationen bei Synaptics): Das SL1620 Modul (weitere Informationen bei Synaptics):
Zum Vergleich der Banana Pi M6 mit Synaptics VS680 SoC:

Das Tochtermodul mit dem SL1620, SL1640 oder SL1680-Modul wird einfach in den dafür vorgesehenen Slot des Motherboard eingeführt und dann nach unten gedrückt und danach mit zwei kleinen Schrauben fixiert:


Das SL1680 Modul ist das leistungsstärkste (und damit auch teuerste), wurde im Rahmen des Workshops ausgegeben und ist das, über das ich im weiteren Verlauf des Artikels berichten werden.

Das Betriebssystem der Astra Machina

Auf der Astra Machina läuft ein spezielles linux-basiertes Betriebssystem, dass auf die SL16x0-SoCs speziell zugeschnitten ist und bei der Ausführung von speziellen 8-Bit-syNAP-KI-Modellen besonders effizient ist.

Das Betriebssystem residiert im eMMC-Speicher des SL1680-Moduls und war bei mir bereits vorinstalliert und betriebsbereit. Aber sicherlich gibt es wie beim Banana Pi M6 die Möglichkeit über ein bestimmtes Tool den eMMC des SL1680-Moduls neu zu beschreiben, nachdem man den USB_Boot-Button gedrückt hat. Wie man so ein Firmware-Image auf den hochlädt, dem sei mein Artikel Banana Pi BPI-M6: Ersteinrichtung und Hochladen eines Images zur Lektüre empfohlen.

Im Auslieferungszustand kann man die Astra Machina natürlich auch an einem Monitor via HDMI anschließen. Viel gibt es da allerdings nicht zu erkunden: es lässt sich nur ein Terminalfenster öffnen und Befehle absetzen.

Das können wir aber auch genauso gut über das ADB-Interface. Damit können wir, nachdem wir PC und Astra Machina über ein USB-C-Kabel verbunden haben (USB 2.0 Port, nicht Pwr in), auf die Machina vom PC aus zugreifen, Dateien dort hinverschieben und Befehle ausführen. Das funktioniert dann so ähnlich wie eine Remote Shell oder ssh.

Wie man ADB installiert, erkläre ich als Teil meines Artikels Wie man eine SD-Karte als internen Speicher auch beim Xiaomi Redmi 9 Smartphone unter Android 10 nutzen kann

Wie gesagt, möchte die Astra Machina gerne ein spezielles 8-Bit-Integer-syNAP-Modell, um besonders effizient zu sein. Das erstellen wir auf dem PC, bzw. besser gesagt, wir konvertieren ein herkömmliches Modell, das meist fließkommabasiert ist, in ein syNAP-Modell.

Wie das geht, war - natürlich neben der Vorstellung der Hardware der Astra Machina - Thema eines Workshop am 10. April 2024 auf der embedded World 2024.

Astra Machina Workshop auf der embedded World 2024


Der Workshop startet etwas holprig für mich persönlich. Ich war pünktlich da und stellte mich in die Schlange der Leute, die vor dem Seminarraum München 2 warteten und Eintritt zur Veranstaltung begehrten.

Ich hatte mich bereits am Tage der Einladung (5. März 2024) für den Workshop eingetragen, denn ich dachte mir, dass dieser schnell ausgebucht werden sein würde bei solch blumigen Versprechungen wie
Giveaway: Sponsored by Synaptics, each attendee will receive a Synaptics Astra Developer Kit to keep, along with all the associated software, libraries, and algorithms, and live hands-on training that’s required to implement an AI use-case (total value of hardware and software is approximately $2000).
und dass ich davon ausging, das dem Prinzip "first come, first serve" gefolgt wird. die 2000 USD sind übrigens heillos übertrieben. Die Hardware ist wohl eher so roundabout 250 Euro wert. Meine Anmeldebestätigung zum Event kam fast postwendend und die rund 30 Euro Teilnahmegebühr waren auch fix von meiner Kreditkarte abgebucht.


Vor Ort empfing uns dann Rich Nass persönlich, Executive Vice President bei Embedded Computing. Und man wollte mir erst weißmachen, dass man kein Board mehr für mich hätte, weil der Andrang so groß wäre und dass ich mich zu irgendjemand dazusetzen sollte und man mir dann später eines zuschicken würde. Ich glaube, ich war zu Recht stinkig, denn schließlich hatte ich mich am ersten Tag angemeldet und damit auf jeden Fall einen Platz gesichert. Das habe dann auch vorgetragen, aber man meinte, ich hätte eine e-mail bekommen, in der mehr stünde. Nur: so eine e-mail habe ich niemals bekommen (ich habe später noch einmal nachgeschaut (ich betreibe meinen eigenen e-mail-Server): da ging keine e-mail dergleichen ein). Auch das habe ich vorgetragen, aber es nutzte nichts: ich musste erst einmal ohne Board rein.

Natürlich war ich ein wenig säuerlich und denke mir: Was soll das bitte? Wenn ich z. B. 40 Plätze habe und die sind voll, dann muss ich allen sagen, die zu spät kommen: Tut mir leid. Finito! Und darf keinen mehr zulassen. Und schon gar nicht darf ich einem Frühbucher Ausreden auftischen und ihm dann sein Board verwehren, um es einem anderen zu geben. Für mich ist das ganz schlechter Stil. Und ich mache mir die Mühe und richte extra noch meinen Laptop ein und schleppe das schwere Ding später die ganze Zeit über die Messe ... für nichts, na schönen Dank!

Ich war so von mir am rumgrummeln und fragte gerade den Tontechniker, ob man Fotos von der Veranstaltung machen dürfte und bekam die Antwort, da müsse ich jemand von den Verantwortlichen fragen... als hinter mir Rich Nass auftauchte, und vom Tontechniker als derjenige angedeutet wurde, den ich zu fragen hätte. Und Rich hatte dann doch noch ein Board für mich in der Hand und gab es mir, und zwar bevor er den Eindruck gewinnen könnte, ich sei von der Presse. Meine Frage nach der Fotografie-Genehmigung wurde von ihm bejaht und er wies bei Beginn der Veranstaltung dann auch die Anwesenden darauf hin, das Fotos gemacht werden würden und man sich melden sollte, wollte man nicht fotografiert werden. Das war dann wieder profesionelles Verhalten - aber was das vorher sollte - ich weiß nicht.



Der Workshop war gut besucht, und wir erhielten eine Einführung zur Unternehmensgeschichte von Synaptics und deren Produkte und wie sich das Geschäftsfeld von Touchpads früher hin zu IoT-Geräten heute vollzog. Danach wurde die Hardware und Architektur der Astra Machina erläutert.

Dann ging es an der praktischen Teil und es stellte sich heraus, dass einige ihre Hausaufgaben nicht gemacht hatten und Docker und Synap noch nicht installiert hatten, so dass hier noch einmal erklärt wurde, wie man Ubuntu, Docker und Synap unter Windows WSL installierte. Ich selbst hatte mein Synap schon lauffähig (dachte ich zumindest) unter Ubuntu nativ gemacht. Der Test via "synap help" war bei mir auf jeden Fall positiv.


Zwischendrin hatten wir hohen Besuch: Vikram Gupta, Senior Vice President und General Manager of IoT Processors, Chief Product Officer bei Synaptics gab sich die Ehre und hielt eine kurze Ansprache.

Und dann war auch schon fast Zeit für eine kurze Mittagspause, in der immer noch einige damit beschäftigt waren, Docker und Synap zum Laufen zu bringen. Es gab eine nette Fresstüte mit Käse-Stulle, Käse-Breze, Birne und einem Schoko-Cookie, der wohl ziemlich beliebt war.

Nach der Mittagspause drängte dann die Zeit und es ging ans Eingemachte, die Anwendung des SyNAP-Tools:



Wie bereits erwähnt braucht die Astra Machina ihr eigenes Modell (eine .synap Datei), die aus einem klassischem Modell konvertiert wird.

Dummerweise funktionierte das bei mir nicht. Immer wenn ich das Synap-Tool mit einem Convert beauftragt hatte, tat sich ein paar Sekunden lang etwas und es wurde auch ein "compiled"-Ordner angelegt, indem das Model-File, das .synap-File liegen sollte, nur war das .synap File nicht da. Die Ordner waren leer. Aber es gab auch keine Fehlermeldung.

Dann stellte sich heraus, dass der Docker-Container mit dem Synap-Container beschädigt war und ich den nach Anleitung noch einmal installiert hatte. Ein kleine "unexpected EOF"-Meldung brachte mich darauf, dass die Datei evtl. korrupt sei. Ein anderer Teilnehmer hinter mir hatte ebenfalls eine kaputte Datei bzw. einen defekten USB-Stick. Ich habe mir die Datei dann von jemand anders kopiert und den Docker-Container damit ohne Fehler noch einmal installiert, aber das hat leider auch nichts geändert. Das konvertierte .synap-Modell wollte und wollte nicht auftauchen.

Synaptics hatte uns rund 5 Experten zur Seite gestellt, die sehr hilfsbereits waren und durch die Reihen gingen und halfen, wo sie nur konnten. Auch mir. Doch leider ohne Erfolg.

Es war schon nach 13:00 Uhr, als wird immer noch versuchten, den seltsamen Fehler bei mir auszumachen. Aber dann wollte die nächste Truppe in den Raum. Also packte ich meinen Laptop und die Machina ein, fragte, ob ich mich später per e-mail an die Synaptics-Leute wenden können und ließ mir eine Visitenkarte geben.

Zuhause habe ich dann den USB-Stick einmal mit Checkdisk überprüft. Er ist FAT32 formatiert und hatte über 600 Fehler auf dem Stick gefunden. Entweder ist da die Hardware im Argen oder beim Kopieren ist mächtig was schief gegangen.

Ich habe Lorenzo von Synaptics ein e-mail geschrieben mit der Bitte, mir den Stick-Inhalt noch einmal zukommen zu lassen, damit ich das Tutorial durchspielen kann. Derzeit wird die Truppe aber auch dem Rückweg nach China sein. Aber in ein paar Tagen werde ich mehr wissen und bekomme dann hoffentlich das Tutorial noch zum Laufen.

Ich hatte auch so das Gefühl, dass viele Probleme hatten. Und dass uns am Ende die Zeit davongerannt ist und fast niemand mehr mitgekommen ist. Aber es ist auch nicht ganz einfach, alle ca. 40-50 Leute in einem Workshop zum Erfolg zu führen.

Ich hatte den Workshop zum einen als Chance gesehen, natürlich zum einen an ein Stück interessante Hardware zu kommen, aber auch um das Vorgehen einmal durchzuspielen und dann jemand zur Seite zu haben, der mir helfend zur Seite steht. Das ist natürlich interessanter, als sich alleine durch ellenlange Dokumentationen zu graben. Das ging aber leider nicht so auf.

Bleibt abzuwarten, ob wir noch herausfinden, warum bei mir kein Modell erstellt wird. Dann kann ich sicher mehr über die Software-Seite der Astra Machina berichten.

Quellen, Literaturverweise und weiterführende Links