MATLAB Coder

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

 

MATLAB Coder™ generiert aus MATLAB®-Code C- und C++-Code für eine Reihe unterschiedlicher Hardwareplattformen, von Desktop-Systemen bis hin zu Embedded-Hardware. Er unterstützt einen Großteil der MATLAB-Sprache und eine große Auswahl von Toolboxen. Sie können den generierten Code als Quellcode, statische Bibliotheken oder dynamische Bibliotheken in Ihre Projekte integrieren. Der generierte Code ist lesbar und plattformunabhängig. Sie können Ihren vorhandenen C-Code und Ihre vorhandenen C-Bibliotheken integrieren, um die wichtigen Teile Ihres Algorithmus besonders effizient zu gestalten oder um Code wiederzuverwenden, dem Sie vertrauen. Sie können den generierten Code auch als MEX-Funktion paketieren, die in der MATLAB-Umgebung für die Verifikation oder die Beschleunigung der Laufzeit verwendet werden kann.

Embedded Coder® erweitert MATLAB Coder für den Produktionseinsatz und unterstützt die Anpassung von Code, zielspezifische Optimierungen, die Rückverfolgbarkeit von Code sowie die Verifikation mit Software-in-the-Loop (SIL) und Processor-in-the-Loop (PIL).

Um vollständige Anwendungen bereitzustellen, einschließlich der Benutzeroberflächen, verwenden Sie das MATLAB Compiler SDK™.

Jetzt Loslegen:

Ausführung in jeder Umgebung

Generieren Sie lesbaren und plattformunabhängigen ANSI C-Quellcode. Stellen Sie Code lizenzgebührenfrei bereit.

Lizenzgebührenfreie Bereitstellung von Algorithmen

Sie können jeden C-Compiler verwenden, um Ihren generierten Code zu kompilieren und auf jeglicher Hardware auszuführen, von Desktop-Systemen über mobile Geräte bis hin zu Embedded-Hardware. Der generierte Code ist lizenzgebührenfrei. Sie können ihn Ihren Kunden in gewerblichen Anwendungen ohne entsprechende Gebühren bereitstellen.

Generierter Code für eine Matrizen-Multiplikation.

Bewegungsanalyse-Algorithmen von dorsaVi für Medizin und Sport.

Unterstützte Toolboxen und Funktionen

MATLAB Coder generiert Code aus einer großen Auswahl von MATLAB-Funktionen, die von Entwicklungsingenieuren zum Entwickeln von Algorithmen als Komponenten größerer Systeme verwendet werden. Dazu gehören mehr als 1900 Funktionen und Operatoren aus MATLAB und zugehörigen Toolboxen.

Unterstützung der MATLAB-Sprache und -Toolboxen für die Codegenerierung.

Erstellung von Prototypen auf Hardware

Gelangen Sie schnell zur Implementierung auf Hardware, indem Sie Ihren Algorithmus automatisch in C konvertieren.

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 dann für Ihre Hardware zu kompilieren.

Schnelle Erstellung von Prototypen für Algorithmen auf Desktop- und Cloud-Plattformen.

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 den 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 MATLAB Coder mit 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-Code in Ihrer Softwareumgebung wiederverwenden.

Generierung von Code mit einfachen, leicht zu integrierenden Schnittstellen

Der generierte Code verwendet C-Typen auf natürliche Weise und vereinfacht die Integration in externen Code. Sie können generierten Code als Quellcode oder in Form von Bibliotheken integrieren. Vertrauenswürdige C-Bibliotheken oder -Komponenten können in MATLAB eingebunden werden, um auf Originaltreue zu testen. Sie werden ebenfalls automatisch vom generierten Code aus aufgerufen.

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 anzupassen. Verwenden Sie Profiling-Tools, um Engpässe zu identifizieren. Um die Leistung weiter zu erhöhen, generieren Sie Mehrkern-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-Code und kompilieren Sie ihn zur Verwendung in 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 von Algorithmen mit GPUs

Verwenden Sie die Parallel Computing Toolbox™, um die Ausführung von Algorithmen in MATLAB zu beschleunigen. Verwenden Sie GPU Coder™, um CUDA-Code für die Beschleunigung der Laufzeit oder Verteilung zu generieren, der auf jeder modernen NVIDIA®-GPU ausgeführt werden kann.

Prototyping algorithms quickly on embedded and mobile platforms.

Move from Prototyping to Production

Use MATLAB Coder with Embedded Coder to generate code that takes advantage of processor-specific intrinsics that can execute faster than standard ANSI/ISO C/C++ code.

Profile execution time of the generated standalone code.

Integrate with Software

Reuse MATLAB algorithms as C/C++ code within your software environment.

Generate Code with Simple Interfaces That Are Easy to Integrate

Generated code uses C/C++ types in a natural way, simplifying integration with external code. You can integrate generated code as source code or libraries. Trusted C/C++ libraries or components can be brought into MATLAB for higher-fidelity testing and are automatically called from generated code as well.

Interactive traceability report using MATLAB Coder with Embedded Coder.

Optimize the Performance of Generated Code

Apply optimizations to adjust tradeoffs between execution speed, memory usage, readability, and portability. Use profiling tools to identify bottlenecks. To further boost performance, generate multicore OpenMP code and call optimized libraries such as LAPACK, BLAS, and FFTW when available.

Example of generated code with calls to OpenMP.

Reuse MATLAB Tests on Generated Code Prior to Integration

Reuse existing MATLAB tests to verify the behavior of generated code in the interactive MATLAB environment. Use the MATLAB unit test framework to quickly develop a rich set of regression tests that can be used to verify the generated C/C++ code.

Verifying behavior of generated code before integrating with your application.

Accelerate Algorithms

Generate C/C++ code and compile it for use inside MATLAB.

Accelerate Algorithms on CPUs

You can call generated code as MEX functions from your MATLAB code to speed execution, though performance will vary depending on the nature of your MATLAB code. You can profile generated MEX functions to identify bottlenecks and focus your optimization efforts.

Profile MEX functions to identify bottlenecks in performance.

Accelerate Algorithms Using GPUs

Use Parallel Computing Toolbox™ to accelerate algorithms running in MATLAB. Use GPU Coder to generate CUDA code for acceleration or deployment that runs on any modern NVIDIA GPU.

Die Vorteile der Generierung von C-Code aus MATLAB

Lesen Sie Tipps und Best Practices für die Arbeit mit MATLAB Coder und erfahren Sie mehr über erfolgreiche Anwendungen generierten Codes durch Unternehmen wie Delphi, Baker Hughes, iSonea und dorsaVi.