GPU Coder

Génération de code CUDA pour des GPU NVIDIA

Learning, la vision embarquée et les systèmes autonomes. Le code généré fait appel aux bibliothèques CUDA de NVIDIA optimisées, notamment cuDNN, cuSolver et cuBLAS. Il peut être intégré dans votre projet sous forme de code source, de bibliothèques statiques ou dynamiques, et peut être utilisé pour le prototypage sur des GPU tels que NVIDIA Tesla® et NVIDIA Tegra®. Vous pouvez utiliser le code CUDA généré dans MATLAB afin d'accélérer les parties du code MATLAB qui exigent des calculs intensifs. GPU Coder vous permet d'incorporer du code CUDA existant dans vos algorithmes MATLAB et dans le code généré.

Lorsque vous l'utilisez avec Embedded Coder®, GPU Coder vous permet également de vérifier le comportement numérique du code généré en réalisant des tests SIL (Software-in-the-loop).

Génération de code CUDA rapide et flexible

Générez du code CUDA optimisé. Déployez du code libre de droits.

Déploiement d'algorithmes libres de droits

Compilez et exécutez votre code généré sur des GPU NVIDIA courants depuis un PC, sur des data centers ou du matériel embarqué. Le code généré est libre de droits, vous pouvez donc le déployer gratuitement dans des applications commerciales pour vos clients.

Explorer la galerie (2 images)

Génération de code à partir des toolboxes et fonctions supportées

GPU Coder génère du code à partir d'un large éventail de fonctionnalités du langage MATLAB que les ingénieurs de conception utilisent pour développer des algorithmes en tant que composants de systèmes plus importants. Ceci inclut plus de 390 opérateurs et fonctions MATLAB ainsi que des toolboxes connexes.

Support du langage et des toolboxes MATLAB pour la génération de code.

Incorporation de code existant

Utilisez les fonctionnalités d'intégration de code existant pour incorporer du code CUDA fiable ou hautement optimisé dans vos algorithmes MATLAB pour les tester, puis appelez ce même code CUDA à partir du code généré.

Incorporation du code CUDA existant dans le code généré.

Génération de code CUDA à partir de réseaux de Deep Learning

Déployez des réseaux de Deep Learning entraînés à l'aide de Deep Learning Toolbox.

Déploiement d'algorithmes de Deep Learning de bout en bout

Déployez de nombreux réseaux de Deep Learning entraînés, tels que ResNet-50 et SegNet, à partir de Deep Learning Toolbox™ sur des GPU NVIDIA. Générez du code de prétraitement et de post-traitement en parallèle avec vos réseaux de Deep Learning afin de déployer des algorithmes complets.

Déployez SegNet ainsi que de nombreux autres réseaux de Deep Learning entraînés.

Génération de code optimisé pour l'inférence

GPU Coder génère du code avec une empreinte réduite par rapport aux autres solutions de Deep Learning car il ne génère que le code nécessaire pour exécuter l'inférence avec votre algorithme spécifique. Le code généré appelle des bibliothèques optimisées, notamment TensorRT™ et cuDNN.

Inférence d'une image unique avec VGG-16 sur un GPU Titan V à l'aide de cuDNN.

Optimisation poussée avec TensorRT

Générez du code s'intégrant à NVIDIA TensorRT, un outil haute performance pour l'optimisation et l'exécution d'inférences de Deep Learning. Utilisez des données de types INT8 ou FP16 pour obtenir de meilleures performances qu'avec le type de données FP32.

Amélioration de la vitesse d'exécution avec des données de types TensorRT et INT8.

Optimisation du code généré

Bénéficiez des optimisations automatiques appliquées au code généré par GPU Coder. Utilisez des modèles de conception pour améliorer les performances.

Réduction des transferts entre les mémoires du CPU et du GPU et optimisation de l'utilisation de la mémoire

GPU Coder analyse, identifie et partitionne automatiquement les segments de code MATLAB à exécuter sur le CPU ou le GPU. Il minimalise également le nombre de copies de données entre le CPU et le GPU. Utilisez des outils de profilage pour identifier les autres goulots d'étranglement possibles.

Rapports de profils identifiant les goulots d'étranglements possibles.

Invocation de bibliothèques optimisées

Le code généré avec GPU Coder fait appel aux bibliothèques CUDA de NVIDIA optimisées, notamment TensorRT, cuDNN, cuSolver, cuFFT, cuBLAS, et Thrust. Le code généré à partir des fonctions issues de toolboxes MATLAB est mappé sur des librairies optimisées dans la mesure du possible.

Le code généré appelle des bibliothèques CUDA optimisées telles que cuFFT.

Utilisation de modèles de conception pour une accélération plus poussée

Les modèles de conception de type stencil utilisent une mémoire partagée pour améliorer la bande passante mémoire. Ils sont appliqués automatiquement lorsque vous utilisez certaines fonctions telles que la convolution. Vous pouvez également les invoquer manuellement au moyen de pragmas spécifiques.

Le modèle de conception de type stencil.

Prototypage sur hardware

Implémentez votre algorithme rapidement sur hardware grâce à la conversion automatique en code CUDA.

Prototypage sur les plateformes NVIDIA Jetson et DRIVE

Automatisez la compilation croisée et le déploiement du code généré sur les plateformes NVIDIA Jetson™ et DRIVE™ à l'aide du support package pour les GPU NVIDIA® de GPU Coder™

Prototypage sur la plateforme NVIDIA Jetson.

Accès aux périphériques et aux capteurs depuis MATLAB et le code généré

Communiquez à distance avec la cible NVIDIA depuis MATLAB pour collecter les données de webcams et d'autres périphériques supportés pour un prototypage dès le début du cycle de développement. Créez et déployez votre algorithme en parallèle du code d'interface périphérique sur la carte pour une exécution autonome.

Accès aux périphériques et aux capteurs depuis MATLAB et le code généré.

Du prototypage à la production

Utilisez GPU Coder avec Embedded Coder® pour effectuer un suivi interactif de votre code MATLAB à côté du code CUDA généré. Vérifiez le comportement numérique du code généré exécuté sur le hardware à l'aide de tests SIL (Software-in-the-loop) et PIL (Processor-in-the-loop).

Rapport de traçabilité interactif à l'aide de GPU Coder et d'Embedded Coder.

Accélération des algorithmes

Générez du code CUDA et compilez-le pour l'utiliser dans MATLAB.

Accélération des algorithmes à l'aide de GPU

Appelez le code CUDA généré sous forme de fonction MEX depuis votre code MATLAB pour accélérer son exécution. Les performances observées dépendront de la nature de votre code MATLAB. Profilez les fonctions MEX générées pour identifier les goulots d'étranglement et ainsi cibler vos efforts d'optimisation.

Nouveautés

Réseaux LSTM (Long Short-Term Memory)

générez du code pour des réseaux récurrents, tels que les LSTM.

Déployer le Deep Learning

déployez des réseaux de Deep Learning sur des processeurs GPU Arm Mali.

Réseaux de Deep Learning

générez du code pour DeepLab-v3+, MobileNet-v2, Xception et DenseNet-201.

Détecteur d’objets YOLO V2

générez du code à partir de détecteurs d’objets YOLO V2 pour les cibles cuDNN et TensorRT.

Parallélisme dynamique

lancez des noyaux à partir de threads s’exécutant sur le GPU.

Opérations de réduction 1D sur GPU.

Tests Processor-in-the-loop (PIL)

vérifiez le comportement numérique du code CUDA généré sur des GPU NVIDIA.

Support du hardware NVIDIA

accédez à des modules de caméra embarqués et générez du code CUDA pour la fonction VideoReader.

Reportez-vous aux notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.

Version d’évaluation

Bénéficiez d'une version d'évaluation de 30 jours.

Télécharger

Prêt à acheter ?

Obtenez les tarifs et explorez les produits associés.

Vous êtes étudiant ?

Obtenez la version étudiante des logiciels MATLAB et Simulink.

En savoir plus