Definition Was ist CMSIS-NN?

CMSIS-NN ist Bestandteil des Common Microcontroller Software Interface Standards. Die Bibliothek steht unter Open-Source-Lizenz und stellt die Kernels für eine effiziente Verarbeitung neuronaler Netze auf ARM-Cortex-M-Plattformen zur Verfügung. Mithilfe von CMSIS-NN lassen sich Anwendungen neuronaler Netze auf ressourcenbeschränkten Mikrocontroller-Plattformen realisieren – beispielsweise für Anwendungen des Internets der Dinge (IoT).

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Das Akronym CMSIS-NN steht für Common Microcontroller Software Interface Standard – Neural Network. CMSIS-NN ist Bestandteil des Common Microcontroller Software Interface Standards für auf ARM-Cortex-Prozessoren basierende Mikrocontroller. Es handelt sich bei CMSIS-NN um eine Bibliothek, die die Kernels und notwendigen Funktionen für eine effiziente Verarbeitung neuronaler Netze auf ARM-Cortex-M-Plattformen bereitstellt. Sie maximieren die Performance der Cortex-M-Prozessoren für Anwendungen neuronaler Netze und minimieren den Bedarf an Speicherressourcen und Energie.

Mithilfe der Bibliothek lassen sich Anwendungen Künstlicher Neuronaler Netze (KNN-Anwendungen) auch auf ressourcenbeschränkten, weniger performanten Mikrocontroller-Plattformen betreiben. Typische Anwendungen der CMSIS-NN-Bibliothek sind die Realisierung intelligenter Geräte für das Internet der Dinge (IoT). Die Geräte werden in die Lage versetzt, Datenverarbeitungs- und Datenanalyseaufgaben effizient auszuführen. Nach Aussagen der Entwickler lässt sich die Leistungsfähigkeit der Cortex-M-Plattformen fast verfünffachen. Die Library CMSIS-NN bietet zahlreiche Funktionen für verschiedene Aufgaben und steht unter der Open-Source-Lizenz Apache 2.0. Die aktuelle Version der Bibliothek ist die Version 3.0.0.

Der Common Microcontroller Software Interface Standard (CMSIS)

CMSIS-NN ist eine Bibliothek und Bestandteil von CMSIS (Common Microcontroller Software Interface Standard). Der Common Microcontroller Software Interface Standard stellt eine Abstraktionsschicht für Mikrocontroller-Plattformen zur Verfügung, die auf ARM-Cortex-Prozessoren basieren. CMSIS definiert und implementiert skalierbare Interfacestandards für die Nutzung herstellerunabhängiger Tools auf den Mikrocontroller-Plattformen. Software unterschiedlicher Hersteller lässt sich dank CMSIS einfacher wiederverwenden und kombinieren. Die Lernkurve der Mikrocontroller-Entwickler steigt und die Entwicklungszeiten neuer Anwendungen und Geräte werden verkürzt.

CMSIS steht unter Apache-2.0-Lizenz und ist als Open Source Software frei auf GitHub verfügbar. Die Software besteht aus vielen einzelnen Komponenten wie die standardisierten APIs für Cortex-M-, SecurCore- und Cortex-A5-, A7- und A9-Prozessoren, Treiberinterfaces für Middleware, DSP-Bibliotheken, APIs für Real-Time Operating Systeme (RTOS – Echtzeitbetriebssysteme), CMSIS-NN und einige mehr.

Aufbau und Funktionen der Bibliothek CMSIS-NN

CMSIS-NN stellt die Funktionen für Künstliche Intelligenz (KI), Maschinelles Lernen (ML) und die Verarbeitung beliebiger Architekturen neuronaler Netze wie Konvolutionaler Neuronaler Netze (Convolutional Neural Networks – CNNs) auf ARM-Cortex-M-Plattformen bereit. Es lassen sich beispielsweise vorhandene Modelle aus Frameworks wie TensorFlow importieren oder CNNs nativ durch eine Folge von CMSIS-NN-Funktionsaufrufen implementieren.

Die Funktionen der Library CMSIS-NN sind in verschiedene Kategorien unterteilt. Zu diesen Funktionskategorien gehören:

  • Convolution-Funktionen
  • Activation-Funktionen
  • Fully-connected-Layer-Funktionen
  • SVDF-Layer-Funktionen
  • Pooling-Funktionen
  • Softmax-Funktionen
  • Basic-math-Funktionen

Prinzipiell besteht die Bibliothek CMSIS-NN aus den beiden Teilen NN-Funktionen (NNFunctions ) und NN-Hilfsfunktionen (NNSupportFunctions). Bestandteile des NNFunctions-Blocks sind die Funktionen zur Implementierung der verschiedenen Layer-Typen neuronaler Netzwerke wie Convolution, Fully-connected, Pooling oder Activation. Diese Funktionen lassen sich im Programmcode für die Implementierung von Inferenzanwendungen nutzen. Im Block NN-Hilfsfunktionen sind Funktionen enthalten, die von den NN-Funktionen verwendet werden. Darunter Funktionen für die Datenumformung oder für Activation Tables. Die Hilfsfunktionen können auch vom Anwendungscode verwendet werden, um komplexere neuronale Netzwerkfunktionen abzubilden wie Long Short-Term Memory (LSTM).

Vorteile durch den Einsatz der Bibliothek CMSIS-NN auf ARM Cortex-M-Plattformen

Durch den Einsatz des Common Microcontroller Software Interface Standards und der Bibliothek CMSIS-NN auf ARM Cortex-M-Plattformen ergeben sich zahlreiche Vorteile. Die Bibliothek stellt für diese Mikrocontroller-Plattformen optimierte Funktionen für eine effiziente Verarbeitung neuronaler Netzwerke zur Verfügung. Es lassen sich die verschiedenen Layer-Typen neuronaler Netzwerke implementieren und performant und energieeffizient ausführen. Gleichzeitig werden die Latenz und der Bedarf an Speicher minimiert. Anwendungen neuronaler Netze können dank der Bibliothek auf ressourcenbeschränkten Mikrocontroller-Plattformen ausgeführt werden. Die Leistungsfähigkeit der Cortex-M-Plattformen wird für diese Anwendungen fast verfünffacht.

Beliebte Frameworks und Programmbibliotheken wie TensorFlow, PyTorch oder Caffe und Software von Drittherstellern lassen sich auf den ARM-Cortex-M-Plattformen wiederverwenden und kombinieren. Vorhandene Modelle können mit reduziertem Aufwand für die Verwendung auf ARM-Cortex-M-Plattformen aus anderen Frameworks konvertiert und importiert werden. Für Entwickler von Anwendungen der Künstlichen Intelligenz und des Machine Learnings reduziert sich der Lernaufwand und die Entwicklungszeiten für Anwendungen neuronaler Netze und intelligenter Geräte verkürzen sich.

(ID:48034007)