GPU Coder

Erzeugung von CUDA-Code für NVIDIA-GPUs

GPU Coder™ erzeugt aus MATLAB®-Code optimierten CUDA®-Code für Deep Learning, Embedded Vision und autonome Systeme. Der generierte Code ruft optimierte CUDA-Bibliotheken von NVIDIA auf, darunter cuDNN, cuSolver und cuBLAS. Er lässt sich in Form von Quellcode und statischen oder dynamischen Bibliotheken in Ihr Projekt einbinden und kann zur Prototypenentwicklung auf GPUs wie NVIDIA Tesla® und NVIDIA Tegra® genutzt werden. Sie können den generierten CUDA-Code in MATLAB verwenden, um berechnungsintensive Anteile Ihres MATLAB-Codes zu beschleunigen. Mit GPU Coder lässt sich außerdem vorhandener CUDA-Code in Ihre MATLAB-Algorithmen und in den neu generierten Code integrieren.

Bei Verwendung von GPU Coder mit Embedded Coder® kann das numerische Verhalten des generierten Codes durch SIL-Tests (Software-in-the-Loop) geprüft werden.

Jetzt Loslegen:

Schneller, flexibler CUDA-Code

Erzeugen Sie optimierten CUDA-Code. Stellen Sie Code lizenzgebührenfrei bereit.

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 lizenzfrei und kann in kommerziellen Anwendungen für Sie kostenlos an Ihre Kunden weitergegeben werden.

Galerie erkunden (2 Bilder)

GPU Coder Success Stories

Learn how engineers and scientists in a variety of industries use GPU Coder to generate CUDA code for their applications.

Airbus prototypes automated detection of defects on NVIDIA Jetson TX2.

Codegenerierung für unterstützte Toolboxen und Funktionen

GPU Coder generiert Code aus einer großen Auswahl von MATLAB-Funktionen, die von Entwicklungsingenieuren zum Entwurf von Algorithmen als Komponenten größerer Systeme verwendet werden. Die Auswahl umfasst mehr als 390 Operatoren und Funktionen aus MATLAB und zugehörigen Toolboxen.

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

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 dann auch aus dem neu generierten Code heraus aufrufen.

Einbinden von vorhandenem CUDA-Code in neu erzeugten Code.

CUDA-Codegenerierung aus Deep Learning-Netzwerken

Stellen Sie trainierte Deep Learning-Netzwerke mit der Deep Learning Toolbox bereit.

Bereitstellung von End-to-End-Algorithmen für Deep Learning

Mit der Deep Learning Toolbox™ können Sie eine Vielzahl an trainierten Deep Learning-Netzwerke wie ResNet-50 und SegNet für NVIDIA-GPUs bereitstellen. Code für die Vor- und Nachverarbeitung kann dabei zusammen mit den trainierten Netzen erzeugt werden, um vollständige Algorithmen zu erhalten.

Stellen Sie SegNet und andere trainierte Deep Learning-Netze bereit.

Generierung von optimiertem Code für die Vorhersage

Der vom GPU Coder generierte Code ist im Vergleich zu anderen Deep Learning-Lösungen weniger komplex, da nur Code erzeugt wird, der für die Inferenz mit Ihrem spezifischen Algorithmus nötig ist. Der generierte Code ruft optimierte Bibliotheken auf, darunter TensorRT™ und cuDNN.

Einzelbild-Inferenz mit VGG-16 auf einer Titan V GPU mit cuDNN.

Zusätzliche Optimierung mit TensorRT

Generieren Sie Code unter Verwendung von NVIDIA TensorRT, eine hochleistungsfähige 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.

Höhere Ausführungsgeschwindigkeit mit TensorRT und INT8-Datentypen.

Optimierung des erzeugten Codes

Wenden Sie automatische Optimierungen auf den vom GPU Coder erzeugten Code an und steigern Sie die Leistung mit Designmustern.

Minimierte CPU-GPU-Speicherübertragungen und optimierte Speicherauslastung

MATLAB-Codesegmente werden von GPU Coder automatisch analysiert, identifiziert und partitioniert und entweder der CPU oder der GPU zur Ausführung zugewiesen. Außerdem wird die Anzahl der Datenkopien zwischen CPU und GPU minimiert. Mithilfe von Profiling-Tools können Sie weitere potenzielle Engpässe identifizieren.

Profilberichte zur Identifizierung potenzieller Engpässe.

Aufruf optimierter Bibliotheken

Der vom GPU Coder generierte Code ruft optimierte CUDA-Bibliotheken von NVIDIA auf, darunter TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS und Thrust. Code, der mit Toolbox-Funktionen von MATLAB generiert wurde, wird nach Möglichkeit optimierten Bibliotheken zugeordnet.

Generierter Code, der Routinen in der optimierten cuFFT CUDA-Bibliothek aufruft.

Zusätzliche Beschleunigung durch Designmuster

Designmuster wie die Stencil-Verarbeitung nutzen gemeinsamen Speicher zur Verbesserung der nötigen Speicherbandbreite. Bei bestimmten Funktionen (z. B. Faltung) werden sie automatisch angewendet. Mithilfe spezifischer Pragmas können Sie sie auch manuell aufrufen.

Designmuster der Stencil-Verarbeitung.

Erstellung von Prototypen auf der Hardware

Dank automatischer Konvertierung Ihres Algorithmus in CUDA-Code gelangen Sie schnell zur Implementierung auf der Hardware.

Prototyping auf den NVIDIA Jetson und DRIVE Plattformen

Automatisieren Sie die Kreuzkompilierung und Bereitstellung von erzeugtem Code auf NVIDIA Jetson™ und NVIDIA DRIVE™ mit dem GPU Coder™ Support Package für GPUs von NVIDIA®.

Prototyping auf NVIDIA Jetson.

Zugriff auf Peripheriegeräte und Sensoren über MATLAB und generierten Code

Kommunizieren Sie aus MATLAB heraus mit dem NVIDIA-Zielsystem, um Daten von Webcams und anderen unterstützten Peripheriegeräten zur ersten Prototypenentwicklung abzurufen. Formulieren Sie Ihren Algorithmus und stellen Sie ihn zusammen mit Code für die Peripherieschnittstelle auf dem board zur eigenständigen Ausführung bereit.

Zugriff auf Peripheriegeräte und Sensoren über MATLAB und generierten Code.

Übergang vom Prototyp zur Produktion

Verwenden Sie GPU Coder mit Embedded Coder®, um Ihren MATLAB-Code interaktiv mit dem generierten CUDA-Code daneben zurückzuverfolgen. Ü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).

Interaktiver Rückverfolgbarkeitsbericht, generiert vom GPU Coder unter Verwendung des Embedded Coder.

Beschleunigen von Algorithmen

Erzeugen Sie CUDA-Code und kompilieren Sie ihn für die Nutzung in MATLAB.

Beschleunigung der Laufzeit von Algorithmen mit GPUs

Rufen Sie erzeugten 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 adressieren.

Neue Funktionen

LSTM-Netze (Long Short-Term Memory)

Generieren von Code für rekurrente Netze wie LSTM-Netze

Deep Learning auf Zielhardware

Bereitstellung von Deep-Learning-Netzen auf ARM Mali GPU-Prozessoren

Deep Learning-Netze

Generieren von Code für DeepLab v3+, MobileNet v2, Xception und DenseNet-201

YOLO V2-Objektdetektor

Generieren von Code aus YOLO V2-Objektdetektoren für cuDNN- und TensorRT-Ziele

Dynamische Parallelität

Starten von Kernels aus Threads, die auf dem GPU-Gerät ausgeführt werden

1-D-Reduktionsoperationen auf der GPU

PIL-Testing (Processor-in-the-Loop)

Verifizieren des numerische Verhaltens des erzeugten CUDA-Codes auf NVIDIA-GPUs

Unterstützung von NVIDIA-Hardware

Zugreifen auf integrierte Kameramodule und Generieren von CUDA-Code für die VideoReader-Funktion

Details zu diesen Merkmalen und den zugehörigen Funktionen finden Sie in den Versionshinweisen.

Kostenlose Testversion anfordern

30 Tage Ausprobieren zum Greifen nah.

Jetzt downloaden

Bereit zum Kauf?

Fordern Sie ein Angebot an und informieren Sie sich über verwandte Produkte.

Studieren Sie?

Fordern Sie die MATLAB und Simulink Student Software an.

Weitere Informationen