GPU Coder

 

GPU Coder

Générer du code CUDA pour des GPU NVIDIA

La vidéo dure 1:53
Rapport de génération de code montrant le code CUDA généré.

Générer du code CUDA à partir de MATLAB

Compilez et exécutez du code CUDA généré à partir de vos algorithmes MATLAB sur les GPU NVIDIA les plus répandus, des cartes RTX desktop aux data centers en passant par les plateformes Jetson et DRIVE embarquées. Déployez le code généré gratuitement et libre de droits pour vos clients.

Modèle Simulink d'un détecteur de voies de circulation et de véhicules.

Générer du code CUDA à partir de Simulink

Utilisez Simulink Coder avec GPU Coder pour générer du code CUDA à partir de vos modèles Simulink et le déployer sur les GPU NVIDIA. Accélérez les parties des simulations Simulink nécessitant des calculs intensifs sur les GPU NVIDIA.

Photo de la plateforme NVIDIA Jetson.

Déployer sur NVIDIA Jetson et DRIVE

GPU Coder automatise le déploiement du code généré sur les plateformes NVIDIA Jetson et DRIVE. Accédez aux périphériques, faites l'acquisition de données de capteurs et déployez votre algorithme accompagné du code d'interface aux périphériques, sur la carte pour une exécution autonome.

Deux vues de caméras de la circulation routière dans le cadre d'une application de détection de véhicules et de voies de circulation dans Simulink.

Générer du code pour le Deep Learning

Déployez une variété de réseaux de Deep Learning prédéfinis ou personnalisés sur les GPU NVIDIA. Générez du code pour le prétraitement et le post-traitement avec vos réseaux de Deep Learning entraînés afin de déployer des algorithmes complets.

Graphique à barres intitulé « Inference with ResNet-50 » montrant l'augmentation du nombre d'images/seconde avec l'utilisation des types de données FP32 et INT8.

Optimiser le code généré 

GPU Coder applique automatiquement des optimisations telles que la gestion de la mémoire, la fusion de kernels et l'auto-tuning. Réduisez l'empreinte mémoire en générant du code INT8 ou bfloat16. Améliorez encore les performances en intégrant TensorRT.

Un rapport de l'outil GPU Performance Analyzer montrant des informations de profilage sur le code généré.

Profiler et analyser le code généré

Utilisez GPU Performance Analyzer pour profiler le code CUDA généré et identifier les possibilités d'amélioration de la vitesse d'exécution et de l'empreinte mémoire.

Diagramme illustrant le fonctionnement conceptuel du design pattern de type stencil.

Utiliser des design patterns pour améliorer les performances

Les design patterns, notamment les traitements des stencils et les réductions, sont appliqués automatiquement lorsqu'ils sont disponibles afin d'augmenter les performances du code généré. Vous pouvez également les invoquer manuellement au moyen de pragmas spécifiques.

Rapport de génération de code montrant la traçabilité bidirectionnelle interactive entre le code MATLAB et le code CUDA généré.

Enregistrer des signaux, ajuster des paramètres et vérifier le comportement du code 

Utilisez GPU Coder avec Simulink Coder pour enregistrer les signaux et ajuster les paramètres en temps réel. Ajoutez Embedded Coder pour établir une trace interactive entre MATLAB et le code CUDA généré afin de vérifier numériquement le comportement du code CUDA généré par le biais de tests SIL. 

Modèle Simulink d'un algorithme de prédiction ECG avec GPU Coder et des GPU NVIDIA utilisés pour l'accélération.

Accélérer les simulations Simulink et MATLAB

Appelez le code CUDA généré sous forme de fonction MEX depuis votre code MATLAB pour accélérer son exécution. Utilisez Simulink Coder avec GPU Coder pour accélérer les parties des blocs MATLAB Function qui exigent des calculs intensifs dans vos modèles Simulink sur des GPU NVIDIA.

« De l'annotation des données au choix de notre modèle de Deep Learning suivi de l’apprentissage, des tests et de l'ajustement du modèle, MATLAB disposait de tous les outils dont nous avions besoin, et GPU Coder nous a permis un déploiement rapide sur nos GPU NVIDIA, malgré notre expérience limitée. »

FAQ sur GPU Coder

GPU Coder génère du code CUDA optimisé à partir de code MATLAB et de modèles Simulink pour des applications telles que le Deep Learning, la vision embarquée, ainsi que le radar et le traitement du signal sur des GPU NVIDIA.

GPU Coder génère du code qui s'exécute sur des cartes RTX pour postes de travail, des GPU de centres de données et des plateformes embarquées, notamment NVIDIA Jetson, NVIDIA DRIVE et NVIDIA Clara.

Oui. Vous pouvez utiliser Simulink Coder avec GPU Coder pour générer du code CUDA à partir de modèles Simulink et accélérer les parties intensives en calcul de vos simulations sur des GPU NVIDIA.

Vous pouvez exécuter le code généré sous forme de fonction MEX dans MATLAB, utiliser les tests Software-in-the-Loop (SIL) et Processor-in-the-Loop (PIL), et assurer la traçabilité entre le code MATLAB et le code CUDA généré grâce à des liens bidirectionnels avec Embedded Coder.

Oui. GPU Coder applique automatiquement des optimisations telles que la gestion de la mémoire, la fusion de noyaux (kernel fusion) et l'auto-tuning, et peut générer du code INT8 ou bfloat16 afin de réduire l'empreinte mémoire.

Oui. Pour améliorer les performances, le code généré peut appeler NVIDIA TensorRT ainsi que d'autres bibliothèques NVIDIA optimisées telles que cuDNN.

Utilisez GPU Coder Performance Analyzer pour profiler le code CUDA généré et identifier des opportunités d'amélioration de la vitesse d'exécution et de l'empreinte mémoire.

Oui. Vous pouvez déployer le code CUDA généré sans redevances auprès de vos clients, gratuitement, sous forme de code source ou de bibliothèques statiques ou dynamiques.

Vous souhaitez en savoir plus sur le produit  GPU Coder ?