GPU Coder generiert optimierten CUDA®-Code aus MATLAB Programmcode und Simulink-Modellen. Der generierte Code enthält CUDA-Kernel zur Parallelisierung von Teilen Ihrer Deep-Learning-, Embedded-Vision- sowie Radar- und Signalverarbeitungsalgorithmen. Zur Optimierung der Leistung kann der generierte Code NVIDIA® TensorRT® aufrufen. Sie können den generierten CUDA-Code als Quellcode oder in Form von statischen/dynamischen Bibliotheken in Ihr Projekt integrieren und für moderne NVIDIA-Grafikkarten kompilieren, einschließlich der eingebetteten Grafikkarten auf NVIDIA Jetson™- und NVIDIA DRIVE™-Plattformen. Sie können auf Peripheriegeräte auf den Jetson- und DRIVE-Plattformen zugreifen und manuell geschriebenen CUDA-Code in den generierten Code integrieren.
Mit GPU Coder können Sie den generierten CUDA-Code profilieren, um Engpässe und Möglichkeiten zur Leistungsoptimierung zu identifizieren (mit Embedded Coder). Bidirektionale Verknüpfungen ermöglichen die Rückverfolgung von MATLAB Programmcode und generiertem CUDA-Code. Sie können das numerische Verhalten des generierten Codes mithilfe von SIL- und PIL-Tests (Software-in-the-Loop und Processor-in-the-Loop) verifizieren.
CUDA-Codegenerierung aus MATLAB
Kompilieren Sie CUDA-Code, der aus Ihren MATLAB-Algorithmen generiert wurde, und führen Sie ihn auf gängigen NVIDIA-Grafikkarten aus, von RTX-Desktop-Karten über Rechenzentren bis hin zu eingebetteten Jetson- und DRIVE-Plattformen. Stellen Sie den generierten Code ohne Lizenz- und sonstige Gebühren für Ihre Kunden bereit.
CUDA-Codegenerierung aus Simulink
Nutzen Sie Simulink Coder zusammen mit GPU Coder, um CUDA-Code aus Ihren Simulink-Modellen zu generieren und auf NVIDIA-Grafikkarten bereitzustellen. Beschleunigen Sie rechenintensive Abschnitte von Simulink-Simulationen auf NVIDIA-Grafikkarten.
Bereitstellung auf NVIDIA Jetson und DRIVE
GPU Coder automatisiert die Bereitstellung des generierten Codes auf NVIDIA Jetson- und DRIVE-Plattformen. Greifen Sie auf Peripheriegeräte zu, erfassen Sie Sensordaten und stellen Sie Ihren Algorithmus zusammen mit Code für die Peripherieschnittstelle zur Standalone-Ausführung auf dem Board bereit.
Codegenerierung für Deep Learning
Stellen Sie diverse vorab definierte oder angepasste Deep-Learning-Netze auf NVIDIA-Grafikkarten bereit. Code für die Vor- und Nachverarbeitung kann mit den trainierten Netzen generiert werden, um vollständige Algorithmen zu erhalten.
Optimierung von generiertem Code
GPU Coder wendet automatisch Optimierungen wie Speichermanagement, Kernel-Fusion und automatische Abstimmung an. Reduzieren Sie den Speicherbedarf, indem Sie INT8- oder bfloat16-Code generieren. Durch die Integration mit TensorRT lässt sich die Leistung anschließend noch weiter steigern.
Profilerstellung und Analyse des generierten Codes
Nutzen Sie den GPU Coder Performance Analyzer für das Profiling des generierten CUDA-Codes und zur Ermittlung von Möglichkeiten zur weiteren Verbesserung der Ausführungsgeschwindigkeit und des Speicherbedarfs.
Leistungssteigerung durch Entwurfsmuster
Entwurfsmuster, darunter Stencil-Verarbeitung und Verringerungen, werden automatisch angewendet (sofern verfügbar), um die Leistung des generierten Codes zu steigern. Mit bestimmten Compiler-Anweisungen (pragmas) lassen sie sich auch manuell aufrufen.
Signalprotokollierung, Parameterabstimmung und Verifikation des Codeverhaltens
Nutzen Sie GPU Coder in Kombination mit Simulink Coder, um Signale zu protokollieren und Parameter in Echtzeit abzustimmen. Fügen Sie Embedded Coder für eine interaktive Nachverfolgung zwischen MATLAB Programmcode und generiertem CUDA-Code hinzu, um das Verhalten des generierten CUDA-Codes durch SIL-Tests numerisch zu verifizieren.
Beschleunigen von MATLAB- und Simulink-Simulationen
Rufen Sie generierten CUDA-Code als MEX-Funktion über Ihren MATLAB Programmcode auf, um die Ausführung zu beschleunigen. Nutzen Sie Simulink Coder in Kombination mit GPU Coder, um rechenintensive Abschnitte von MATLAB-Funktionsblöcken in Ihren Simulink-Modellen auf NVIDIA-Grafikkarten zu beschleunigen.
Produktressourcen:
„Von der Datenannotierung über das Auswählen, Trainieren und Testen bis hin zur Feinabstimmung unseres Deep-Learning-Modells besaß MATLAB alle benötigten Werkzeuge. GPU Coder ermöglichte die schnelle Bereitstellung auf unseren NVIDIA-Grafikprozessoren, obwohl wir nicht viel Erfahrung in dem Bereich hatten.“
Valerio Imbriolo, Drass Group