MATLAB Coder

 

MATLAB Coder

Generierung von C und C++ Code aus MATLAB-Code

Jetzt beginnen:

Ausführung in jeder Umgebung

Generieren Sie lesbaren und übertragbaren ANSI C/C++ Quellcode. Stellen Sie Code lizenzgebührenfrei bereit.

Lizenzgebührenfreie Bereitstellung von Algorithmen

Verwenden Sie einen beliebigen C/C++ Compiler, um Ihren generierten Code zu kompilieren und auf jeder beliebigen Hardware auszuführen, von Desktop-Systemen über mobile Geräte bis zu Embedded Hardware. Der generierte Code ist lizenzgebührenfrei – stellen Sie ihn Ihren Kunden für kommerzielle Anwendungen kostenlos zur Verfügung.

Generierter Code für Matrizen-Multiplikationen.

Unterstützte Toolboxen und Funktionen

MATLAB Coder generiert Code aus einer vielfältigen Auswahl an MATLAB-Funktionen, die von Entwicklungsingenieuren zur Erstellung von Algorithmen als Komponenten umfangreicher Systeme verwendet werden. Dazu gehören über 2500 Funktionen und Operatoren aus MATLAB und zugehörigen Toolboxen.

Bereitstellen von C++ Code aus MATLAB

Integrieren Sie den generierten Code mit objektorientiertem C++ Quellcode.

Generieren von C++ Code mit Namensräumen

MATLAB Coder kann C++ Code in einem Namensraum erzeugen, wodurch die Integration mit anderem Quellcode, der möglicherweise identische Funktions- oder Datentyp-Namen hat, leicht möglich ist. Der Code Generator paketiert alle generierten Funktionen und Typdefinitionen in den Namensraum.

Generierter Code, der Variablen mit identischen Datentyp-Namen mithilfe von Namensräumen integriert.

Generieren von C++ Klassen aus MATLAB-Klassen

MATLAB Coder erzeugt C++ Klassen aus Klassen in Ihrem MATLAB-Code, einschließlich Wertklassen, Handle-Klassen und System Objects. Der generierte Code kann in C++ Bibliotheken oder ausführbare Dateien kompiliert und in Ihren bestehenden C++ Quellcode integriert werden.

Nutzung dynamisch zugewiesener C++ Arrays in erzeugten Funktionsschnittstellen

Generieren Sie C++ Code für MATLAB-Funktionen, die ein Array mit einer Array-Größe akzeptieren oder zurückgeben, welche zur Kompilierungszeit unbekannt ist oder deren Grenze einen vordefinierten Schwellenwert überschreitet. Im generierten Code wird der Speicher für das Array dynamisch zugewiesen und als eine Klassenvorlage namens coder::array implementiert. Zusätzlich zur ausnahmesicheren Speicherfreigabe bietet coder::array APIs für den Zugriff auf und die Verwaltung des dynamischen Arrays.

Dynamisch zugewiesene Arrays an generierte Funktionen übergeben

Deep Learning-Netze und Machine Learning-Modelle einsetzen

Generieren von Code aus trainierten Deep Learning-Netzen und Machine Learning-Modellen.

Bereitstellung von End-to-End-Algorithmen für Deep Learning

Bereitstellung einer Vielzahl trainierter Deep Learning-Netze wie ResNet-50 und MobileNet-v2, sowie LSTM und anderer Ebenen von der Deep Learning Toolbox™ bis Intel® und ARM® Cortex® CPUs. Code für die Vor- und Nachverarbeitung kann mit den trainierten Netzen erzeugt werden, um vollständige Algorithmen zu erhalten.

Optimierten Code für Deep Learning-Inferenz erzeugen

Da der MATLAB Coder nur den Code generiert, der für die Ausführung der Inferenz mit Ihrem spezifischen Algorithmus benötigt wird, ist der Code schneller und verbraucht weniger Speicherplatz, als andere Lösungen für Deep Learning. Der generierte Code ruft optimierte Bibliotheken auf, einschließlich Intel MKL-DNN für Intel-Prozessoren und ARM Compute Library für ARM-Cortex-Prozessoren. Verwenden Sie den GPU Coder™, um Algorithmen durch die Generierung von CUDA®-Code, der auf jedem modernen NVIDIA®-Grafikprozessor läuft, zu beschleunigen oder bereitzustellen.

Einsatz von End-to-End-Modellen für Machine Learning

Einsatz von Statistik und Machine Learning-Modellen durch Generieren von C/C++ Code für Ihren gesamten Machine Learning-Algorithmus, einschließlich Vor- und Nachverarbeitung. Aktualisieren von Parametern der eingesetzten Modelle ohne Neugenerierung des C/C++ Prognosecodes.

Workflow zur Codegenerierung für Machine Learning-Modelle.

Erstellen von Prototypen auf Hardware

Mit der automatischen Konvertierung Ihres Algorithmus nach C/C++ erreichen Sie schnell das Hardwarestadium.

Erstellung von Prototypen auf Desktop- und Cloud-Plattformen

Verwenden Sie die MATLAB Coder-App oder entsprechende Befehlszeilen-Funktionen, um schnell Code für Ihre Signalverarbeitungs-, Computer Vision-, Deep Learning-, Regelungssystem- oder sonstige Anwendungen zu generieren und um den Code anschliessend für Ihre Hardware zu kompilieren.

Erstellung von Prototypen auf Embedded- und Mobil-Plattformen

Nutzen Sie jedes gewünschte Zielgerät, indem Sie den generierten Code manuell in Ihre Anwendung integrieren. Automatisieren Sie den Prozess für Raspberry Pi mit dem MATLAB Support Package für Raspberry Pi.

Schnelle Erstellung von Prototypen für Algorithmen auf Embedded- und Mobil-Plattformen.

Übergang vom Prototyp zur Produktion

Verwenden Sie den MATLAB Coder mit dem Embedded Coder, um Code zu generieren, der prozessorspezifische Instruktionen nutzt. Diese können schneller ausgeführt werden als standardmäßiger ANSI/ISO C oder C++ Code.

Laufzeitprofil des generierten eigenständigen Codes.

Integration in Software

Sie können MATLAB-Algorithmen als C/C++ Code in Ihrer Softwareumgebung wiederverwenden.

Generierung von Code mit einfachen, leicht zu integrierenden Schnittstellen

Der generierte Code verwendet C/C++ Typen auf natürliche Weise und vereinfacht so die Integration in externen Code. Sie können generierten Code als Quellcode oder in Form von Bibliotheken integrieren. Vertrauenswürdige C/C++ Bibliotheken oder ‑Komponenten können zum Testen mit höherer Genauigkeit in MATLAB eingebunden und automatisch auch aus dem generierten Code aufgerufen werden.

Interaktiver Rückverfolgbarkeitsbericht mithilfe von MATLAB Coder mit Embedded Coder.

Leistungsoptimierung für generierten Code

Nutzen Sie Optimierungen, um Kompromisse zwischen der Ausführungsgeschwindigkeit, der Arbeitsspeichernutzung, der Lesbarkeit und der Plattformunabhängigkeit auszuarbeiten. Verwenden Sie Profiling-Tools, um Engpässe zu identifizieren. Um die Leistung weiter zu erhöhen, generieren Sie Multicore OpenMP-Code und rufen optimierte Bibliotheken wie LAPACK, BLAS und FFTW auf, sofern verfügbar.

Beispiel für generierten Code mit Aufrufen von OpenMP.

Wiederverwenden von MATLAB-Tests für generierten Code vor der Integration

Sie können vorhandene MATLAB-Tests wiederverwenden, um das Verhalten von generiertem Code in der interaktiven MATLAB-Umgebung zu verifizieren. Mit dem MATLAB Unit Testing Framework können Sie schnell einen umfangreichen Satz an Regressionstests entwickeln, mit denen der generierte C Code verifiziert werden kann.

Verifizieren des Verhaltens des generierten Codes, bevor Sie ihn in Ihre Anwendung integrieren.

Beschleunigen von Algorithmen

Generieren Sie C/C++ Code und kompilieren Sie ihn zur Verwendung innerhalb von MATLAB.

Beschleunigen von Algorithmen auf CPUs

Sie können generierten Code in Form von MEX-Funktionen von Ihrem MATLAB-Code aus aufrufen, um die Ausführung zu beschleunigen. Die Leistung hängt dabei jedoch von Ihrem MATLAB-Code ab. Sie können ein Profiling für generierte MEX-Funktionen durchführen, um Engpässe zu identifizieren und Ihre Optimierungsanstrengungen passend auszurichten.

Profiling von MEX-Funktionen zur Identifizierung von Leistungsengpässen.

Beschleunigung der Laufzeit von Algorithmen mit GPUs

Verwenden Sie die Parallel Computing Toolbox™, um die Ausführung von Algorithmen in MATLAB zu beschleunigen. Verwenden Sie den GPU Coder, um CUDA-Code zur Beschleunigung oder Bereitstellung zu generieren, der auf jeder modernen NVIDIA GPU läuft.