MATLAB Coder genera i codici C e C ++ a partire dal codice MATLAB per un’ampia gamma di piattaforme hardware, dai sistemi desktop all'hardware embedded. Supporta buona parte del linguaggio MATLAB e una vasta gamma di toolbox. È possibile integrare il codice generato nei propri progetti come codice sorgente, librerie statiche o librerie dinamiche. Il codice generato è leggibile e portabile. Sarà possibile combinarlo con le parti fondamentali del proprio codice C e C++ esistente e delle librerie. È inoltre possibile pacchettizzare il codice generato come funzione MEX da usare in MATLAB.
Se usato con Embedded Coder, MATLAB Coder consente di personalizzare il codice, creare ottimizzazioni target-specific, tracciare il codice ed effettuare verifiche Software-In-the-Loop (SIL) e Processor-In-the-Loop (PIL).
Per distribuire programmi MATLAB come applicazioni standalone, è possibile utilizzare MATLAB Compiler. Per generare componenti software per l’integrazione con altri linguaggi di programmazione, usa MATLAB Compiler SDK.
Inizia ora:
Guida rapida gratuita per MATLAB Coder
Scopri le best practice per la generazione di codice sorgente ANSI-C standalone e file MEX dal tuo algoritmo MATLAB utilizzando MATLAB Coder.
Per iniziareDistribuzione di algoritmi senza royalty
Utilizza qualsiasi compilatore C/C++ per compilare ed eseguire il codice che hai generato su qualsiasi hardware, dai sistemi desktop ai dispositivi mobili all’hardware embedded. Il codice generato è senza royalty: distribuiscilo gratuitamente ai tuoi clienti per applicazioni commerciali.
Storie di successo con MATLAB Coder
Scopri come ingegneri e scienziati, operanti in settori diversi, utilizzano MATLAB Coder per generare codice C/C++ per le loro applicazioni.
Toolbox e funzioni supportate
MATLAB Coder genera il codice da una vasta gamma di funzionalità del linguaggio MATLAB, che i progettisti utilizzano per sviluppare algoritmi come componenti di sistemi di dimensioni maggiori. Ciò include oltre 2500 operatori e funzioni da MATLAB e toolbox complementari.
Generazione di codice C++ con i namespace
MATLAB Coder è in grado di generare codice C++ in un namespace, così da semplificare l’integrazione con altri codici sorgente che potrebbero presentare nomi di tipi di dati o funzioni identiche. Il generatore di codice pacchettizza tutte le funzioni generate e le definizioni di tipo nel namespace.
Generazione di classi C++ dalle classi MATLAB
MATLAB Coder produce classi C++ dalle classi del proprio codice MATLAB, comprese le classi di valore, le classi di handle e i system object. È possibile compilare il codice generato in eseguibili o librerie C++ e quindi integrarlo nel proprio codice sorgente C++ esistente.
Utilizzo dinamico di array C++ allocati in interfacce di funzioni generate
Genera codice C++ per le funzioni MATLAB che accettano o restituiscono un array di dimensioni non note al momento della compilazione o con un confine che supera una soglia predefinita. Nel codice generato, la memoria per l’array viene allocata in modo dinamico e implementata come un template di classe che prende il nome di coder::array
. Oltre alla deallocazione di memoria exception-safe, coder::array
fornisce le API per accedere e gestire l’array dinamico.
Distribuzione di algoritmi di Deep Learning end-to-end
Distribuisci una serie di reti di Deep Learning addestrate come ResNet-50 e MobileNet-v2, oltre a LSTM e altri layer da Deep Learning Toolbox a CPU Intel® e ARM® Cortex®. Genera codice per la pre-elaborazione e la post-elaborazione insieme alle proprie reti di Deep Learning addestrate per distribuire algoritmi completi.
Generazione di codice ottimizzato per inferenza di Deep Learning
Poiché MATLAB Coder genera solo il codice necessario per eseguire l’inferenza con il proprio algoritmo specifico, il codice è più veloce e usa meno memoria rispetto alle altre soluzioni di Deep Learning. Il codice generato consente di richiamare le librerie ottimizzate, tra cui Intel MKL-DNN per i processori Intel e ARM Compute Library per i processori ARM Cortex. Utilizza GPU Coder per accelerare o distribuire gli algoritmi tramite la generazione di codice CUDA® eseguibile su qualsiasi NVIDIA® GPU moderno.
Distribuzione di modelli di Machine Learning end-to-end
Distribuisci modelli statistici e di Machine Learning generando codice C/C++ per l’intero algoritmo di Machine Learning, incluse le fasi di pre-elaborazione e post-elaborazione. Aggiorna i parametri dei modelli distribuiti senza dover generare nuovamente il codice C/C++ di previsione.
Prototipazione su desktop e piattaforme Cloud
Utilizza l'app MATLAB Coder o funzioni equivalenti da riga di comando per generare rapidamente codice per l'elaborazione dei segnali, la visione artificiale, il Deep Learning, i sistemi di controllo o altre applicazioni, quindi compila il codice per il tuo hardware.
Prototipazione su piattaforme embedded e mobile
Utilizzalo su qualsiasi dispositivo integrando manualmente il codice generato con la tua applicazione. Automatizza il processo per Raspberry Pi utilizzando il pacchetto di supporto MATLAB per Raspberry Pi.
Dalla prototipazione alla produzione
Utilizza MATLAB Coder con Embedded Coder per generare codice che sfrutta le funzioni intrinseche del processore eseguibili più velocemente rispetto ai codici standard C/C++ ANSI/ISO.
Generazione del codice con interfacce semplici e facili da integrare
Il codice generato utilizza i tipi C/C++ in modo naturale, semplificando l’integrazione con il codice esterno. È possibile integrare il codice generato come codice sorgente o librerie. Si è inoltre in grado di importare le librerie o i componenti C/C++ esistenti in MATLAB per eseguire test più attendibili e quindi in grado di essere automaticamente richiamati anche dal codice generato.
Ottimizzazione delle prestazioni del codice generato
Applica le ottimizzazioni disponibili per regolare il tradeoff tra velocità di esecuzione, utilizzo della memoria, leggibilità e portabilità. Utilizza gli strumenti di profiling per identificare i colli di bottiglia. Per aumentare ulteriormente le prestazioni, genera il codice OpenMP multicore e richiama librerie ottimizzate come LAPACK, BLAS e FFTW, quando disponibili.
Riutilizzo dei test MATLAB sul codice generato prima dell'integrazione
Riutilizza i test MATLAB esistenti per verificare il comportamento del codice generato nell'ambiente interattivo MATLAB. Utilizza Unit Testing Framework di MATLAB per sviluppare rapidamente un ricco set di test di regressione utilizzabili per verificare il codice C/C++ generato.
Accelerazione degli algoritmi su CPU
È possibile richiamare il codice generato come funzioni MEX dal proprio codice MATLAB per velocizzare l'esecuzione, anche se le prestazioni varieranno a seconda della natura del proprio codice MATLAB. È possibile profilare le funzioni MEX generate per identificare i colli di bottiglia e concentrare i propri sforzi di ottimizzazione.
Accelerazione degli algoritmi utilizzando GPU
Utilizza Parallel Computing Toolbox per accelerare gli algoritmi in esecuzione su MATLAB. Utilizza GPU Coder per generare il codice CUDA per l’accelerazione o la distribuzione da eseguire su qualsiasi NVIDIA GPU moderno.