GPU Coder™ generiert aus MATLAB®-Code und Simulink®-Modellen optimierten CUDA®-Code. Der generierte Code enthält CUDA-Kernels zur Parallelisierung von Teilen Ihrer Deep Learning-, Embedded Vision- und Signalverarbeitungsalgorithmen. Für Hochleistungsanwendungen ruft der generierte Code optimierte NVIDIA® CUDA-Bibliotheken wie TensorRT™, cuDNN, cuFFT, cuSolver und cuBLAS auf. Der generierte Code lässt sich in Form von Quellcode und statischen oder dynamischen Bibliotheken in Ihr Projekt einbinden und kann für Desktops, Server und in NVIDIA Jetson™, NVIDIA DRIVE™ und andere Plattformen eingebettete Grafikprozessoren kompiliert werden. Sie können den generierten CUDA-Code in MATLAB verwenden, um Deep-Learning-Netze und andere berechnungsintensive Anteile Ihres Algorithmus zu beschleunigen. Mit GPU Coder lässt sich außerdem selbst geschriebener CUDA-Code in Ihre Algorithmen und den neu generierten Code integrieren.
Bei Verwendung von GPU Coder mit Embedded Coder® kann das numerische Verhalten des generierten Codes durch SIL- und PIL-Tests (Software-in-the-Loop bzw. Processor-in-the-Loop) geprüft werden.
Jetzt beginnen:
Lizenzgebührenfreie Bereitstellung von Algorithmen
Kompilieren Sie Ihren generierten Code und führen Sie ihn auf gängigen NVIDIA-GPUs aus – von Desktopsystemen über Rechenzentren bis hin zu Embedded Hardware. Der generierte Code ist lizenzgebührenfrei – stellen Sie ihn in kommerziellen Anwendungen Ihren Kunden kostenlos zur Verfügung.
Erfolgsberichte zu GPU Coder
Erfahren Sie, wie Ingenieure und Wissenschaftler zahlreicher unterschiedlicher Branchen GPU Coder zur Generierung von CUDA-Code für ihre Anwendungen nutzen.
Codegenerierung für unterstützte Toolboxen und Funktionen
GPU Coder generiert Code aus einer großen Auswahl von MATLAB-Sprachfunktionen, die von Entwicklungsingenieuren zum Entwurf von Algorithmen als Komponenten größerer Systeme verwendet werden. Dies umfasst mehr als 390 Operatoren und Funktionen aus MATLAB und zugehörigen Toolboxen.
Einbinden von Legacy-Code
Mithilfe von Optionen zur Integration von vorhandenem Code können Sie bewährten oder stark optimierten CUDA-Code zum Testen in Ihre MATLAB-Algorithmen integrieren und denselben CUDA-Code anschliessend aus dem neu generierten Code heraus aufrufen.
Ausführung von Simulationen und Generierung von optimiertem Code für NVIDIA GPUs
Bei Verwendung mit Simulink Coder™ beschleunigt GPU Coder berechnungsintensive Teile von MATLAB-Funktionsblöcken in Ihren Simulink-Modellen auf NVIDIA-GPUs. Aus dem Simulink-Modell lässt sich optimierter CUDA-Code generieren und in Ihrer Zielanwendung für den NVIDIA-Grafikprozessor bereitstellen.
Bereitstellung von End-to-End-Algorithmen für Deep Learning
Verwenden verschiedenster trainierter Deep Learning-Netze (einschließlich ResNet-50, SegNet und LSTM) aus der Deep Learning Toolbox™ in Ihrem Simulink-Modell und Bereitstellen in NVIDIA-GPUs. Code für die Vor- und Nachverarbeitung kann zusammen mit den trainierten Netzen erzeugt werden, um vollständige Algorithmen zu erhalten.
Signalprotokollierung, Parameterjustierung und numerische Verifizierung des Code-Verhaltens
Zusammen mit dem Simulink Coder kann der GPU Coder in Echtzeit mit Simulationen im externem Modus Signale protokollieren und Parameter justieren. Ausführen von SIL- und PIL-Tests (Software-in-the-Loop bzw. Processor-in-the-Loop) mit Embedded Coder und GPU Coder, zur numerischen Bestätigung, dass der generierte Code das Simulationsverhalten erfüllt.
Bereitstellung von End-to-End-Algorithmen für Deep Learning
Bereitstellung verschiedenster trainierter Deep Learning-Netze (einschließlich ResNet-50, SegNet und LSTM) aus der Deep Learning Toolbox™ in NVIDIA-GPUs. Verwenden vordefinierter Deep Learning-Schichten oder Festlegen eigener Schichten für Ihre spezifische Anwendung. Code für die Vor- und Nachverarbeitung kann zusammen mit den trainierten Netzen erzeugt werden, um vollständige Algorithmen zu erhalten.
Generierung von optimiertem Code für Inferenz
Verglichen mit anderen Deep Learning-Lösungen erzeugt GPU Coder Code mit kleinerem Speicherbedarf, da nur der für die Inferenz mit Ihrem konkreten Algorithmus benötigte Code generiert wird. Der generierte Code ruft optimierte Bibliotheken wie TensorRT und cuDNN auf.
Zusätzliche Optimierung mit TensorRT
Generieren von Code zur Integration mit NVIDIA TensorRT, einer hochleistungsfähigen Optimierungs- und Laufzeitumgebung für Deep Learning-Inferenz. Wenn Sie dabei INT8- oder FP16-Datentypen nutzen, erzielen Sie zusätzliche Leistungssteigerungen gegenüber dem standardmäßigen FP32-Datenyp.
Quantisierung von Deep Learning
Quantisieren Sie Ihr Deep Learning-Netz, um den Speicherbedarf zu senken und die Inferenzleistung zu steigern. Analysieren und visualisieren Sie mit der Deep Network Quantizer-App den Kompromiss zwischen höherer Leistung und Inferenz-Genauigkeit.
Minimierung der Datenübertragung zwischen CPU und GPU und Optimierung des Speicherbedarfs
GPU Coder analysiert, identifiziert und partitioniert automatisch Segmente des MATLAB-Codes, um ihn entweder in der CPU oder der GPU auszuführen. Dadurch verringert sich auch die Menge an Datenkopien zwischen CPU und GPU. Verwenden Sie Profiling-Tools, um andere potenzielle Engpässe zu ermitteln.
Aufruf optimierter Bibliotheken
Mit GPU Coder generierter Code ruft optimierte NVIDIA CUDA-Bibliotheken wie TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS und Thrust auf. Aus MATLAB Toolbox-Funktionen generierter Code wird nach Möglichkeit immer auf optimierte Bibliotheken abgebildet.
Verwendung von Entwicklungsvorlagen zur weiteren Beschleunigung
Entwicklungsvorlagen wie Stencil-Verarbeitung greifen auf gemeinsamen Speicher zu, um Bandbreite zu sparen. Sie werden automatisch bei Verwendung bestimmter Funktionen wie Faltung angewandt. Mit bestimmten Paradigmen lassen sie sich auch manuell aufrufen.
Prototyping auf den NVIDIA Jetson- und DRIVE-Plattformen
Automatisieren Sie die Kreuzkompilierung und Bereitstellung von generiertem Code auf NVIDIA Jetson- und DRIVE-Plattformen mit dem GPU Coder Support Package für NVIDIA-GPUs.
Zugriff auf Peripheriegeräte und Sensoren über MATLAB und generierten Code
Fernkommunikation mit dem NVIDIA-Zielsystem von MATLAB, um Daten von Webcams und anderen unterstützten Peripheriegeräten zur ersten Prototypenentwicklung abzurufen. Stellen Sie Ihren Algorithmus in Kombination mit Peripherieschnittstellen-Code auf einem Board zur eigenständigen Ausführung bereit.
Übergang vom Prototyp zur Produktion
Verwenden Sie GPU Coder mit Embedded Coder, um Ihren MATLAB-Code interaktiv und parallel mit generiertem CUDA-Code zu verfolgen. Überprüfen Sie das numerische Verhalten des generierten Codes bei der Ausführung auf Hardware durch SIL- (Software-in-the-Loop) und PIL-Tests (Processor-in-the-Loop).
Beschleunigung von Algorithmen mit GPUs in MATLAB
Rufen Sie generierten CUDA-Code als MEX-Funktion aus Ihrem MATLAB-Code heraus auf, um die Ausführung zu beschleunigen. Die Laufzeitvorteile variieren dabei jedoch je nach Art Ihres MATLAB-Codes. Mittels Profiling von generierten MEX-Funktionen können Sie Engpässe identifizieren und gezielt optimieren.
Beschleunigung von Simulink-Simulationen mittels NVIDIA-GPUs
Bei Verwendung mit Simulink Coder beschleunigt GPU Coder berechnungsintensive Teile von MATLAB Function-Blöcken in Ihren Simulink-Modellen auf NVIDIA-GPUs.