GPU Coder

 

GPU Coder

Erzeugung von CUDA-Code für NVIDIA-Grafikkarten

Dauer des Videos 1:53
Codegenerierungsbericht mit Anzeige des generierten CUDA-Codes.

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.

Simulink-Modell einer Spur- und Fahrzeugerkennung.

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.

Foto der NVIDIA Jetson-Plattform.

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.

Zwei Kameraansichten des Straßenverkehrs als Bestandteil einer Fahrzeug- und Spurerkennungsanwendung in Simulink.

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.

Balkendiagramm mit dem Titel „Inference with ResNet-50“ (Inferenz mit ResNet-50) zur Abbildung des Anstiegs der Bilder/Sekunde mit der Verwendung von FP32- und INT8-Datentypen.

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.

Ein Bericht aus dem Performance Analyzer-Tool von GPU Coder zeigt Profiling-Informationen zum generierten Code.

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.

Diagramm der Funktionsweise der Entwurfsmuster für Stencil-Verarbeitung auf Konzeptebene.

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.

Codegenerierungsbericht zur Illustration der interaktiven bidirektionalen Nachverfolgbarkeit zwischen MATLAB Programmcode und generiertem CUDA-Code.

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. 

Simulink-Modell eines EKG-Vorhersagealgorithmus mit GPU Coder und NVIDIA-Grafikkarten zur Beschleunigung.

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.

„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.“

GPU Coder – Häufig gestellte Fragen

GPU Coder erzeugt optimierten CUDA-Code aus MATLAB-Code und Simulink-Modellen für Anwendungen wie Deep Learning, Embedded Vision sowie Radar- und Signalverarbeitung auf NVIDIA GPUs.

GPU Coder erzeugt Code, der auf Desktop-RTX-Karten, Data-Center-GPUs und eingebetteten Plattformen läuft, einschließlich NVIDIA Jetson, NVIDIA DRIVE und NVIDIA Clara.

Ja — Sie können Simulink Coder zusammen mit GPU Coder verwenden, um CUDA-Code aus Simulink-Modellen zu erzeugen und rechenintensive Teile Ihrer Simulationen auf NVIDIA GPUs zu beschleunigen.

Sie können den erzeugten Code als MEX-Funktion in MATLAB ausführen, Software-in-the-Loop-(SIL)- und Processor-in-the-Loop-(PIL)-Tests verwenden und mit bidirektionalen Verknüpfungen zu Embedded Coder zwischen MATLAB-Code und dem erzeugten CUDA-Code nachverfolgen.

Ja — GPU Coder wendet automatisch Optimierungen an, darunter Speicherverwaltung, Kernel-Fusion und Auto-Tuning, und kann INT8- oder bfloat16-Code erzeugen, um den Speicherbedarf zu verringern.

Ja — für höhere Leistung kann der erzeugte Code NVIDIA TensorRT und andere optimierte NVIDIA-Bibliotheken wie cuDNN aufrufen.

Verwenden Sie den GPU Coder Performance Analyzer, um den erzeugten CUDA-Code zu profilieren und Möglichkeiten zur Verbesserung der Ausführungsgeschwindigkeit und des Speicherbedarfs zu identifizieren.

Ja — Sie können den erzeugten CUDA-Code lizenzgebührenfrei an Ihre Kunden als Quellcode oder als statische/dynamische Bibliotheken bereitstellen.