Formation NVIDIA GPU Programming - Extended
Cette formation en direct, animée par un instructeur, explique comment programmer des GPU pour le calcul parallèle, comment utiliser différentes plates-formes, comment utiliser la plate-forme CUDA et ses fonctionnalités et comment appliquer diverses techniques d'optimisation à l'aide de CUDA. Certaines applications incluent l'apprentissage en profondeur, l'analyse, le traitement d'images et les applications d'ingénierie.
Plan du cours
Introduction
Comprendre les principes fondamentaux de la méthodologie informatique hétérogène
Pourquoi le calcul parallèle ? Comprendre la nécessité du calcul parallèle
Processeurs multicœurs - Architecture et conception
Introduction aux threads, aux bases des threads et aux concepts de base du parallèle Programming
Comprendre les principes fondamentaux des GPU processus d'optimisation logicielle
OpenMP - Une norme pour le parallèle basé sur des directives Programming
Travaux pratiques / Démonstration de divers programmes sur des machines multicœurs
Introduction à GPU Informatique
GPUs pour le calcul parallèle
Modèle GPU Programming
Pratique / Démonstration de divers programmes sur GPU
SDK, boîte à outils et installation de l'environnement pour GPU
Travailler avec diverses bibliothèques
Démonstration de GPU et d'outils avec des exemples de programmes et OpenACC
Comprendre le modèle CUDA Programming
Apprendre l'architecture CUDA
Explorer et configurer les environnements de développement CUDA
Travailler avec l'API d'exécution CUDA
Comprendre le modèle de mémoire CUDA
Explorer les fonctionnalités supplémentaires de l'API CUDA
Accessing efficacement la mémoire globale dans CUDA : optimisation de la mémoire globale
Optimisation des transferts de données dans CUDA à l'aide des flux CUDA
Utiliser la mémoire partagée dans CUDA
Comprendre et utiliser les opérations et instructions atomiques dans CUDA
Étude de cas : traitement d'images numériques de base avec CUDA
Travailler avec plusieurs GPU Programming
Profilage matériel avancé et échantillonnage sur NVIDIA / CUDA
Utilisation de l'API de parallélisme dynamique CUDA pour le lancement dynamique du noyau
Sommaire et conclusion
Pré requis
- C Programming
- Linux GCC
Les formations ouvertes requièrent plus de 3 participants.
Formation NVIDIA GPU Programming - Extended - Booking
Formation NVIDIA GPU Programming - Extended - Enquiry
NVIDIA GPU Programming - Extended - Demande d'informations consulting
Demande d'informations consulting
Nos clients témoignent (1)
L'énergie et l'humour des formateurs.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Formation - NVIDIA GPU Programming - Extended
Traduction automatique
Cours à venir
Cours Similaires
AMD GPU Programming
28 HeuresCette formation en Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau débutant à intermédiaire qui souhaitent utiliser ROCm et HIP pour programmer les AMD GPUs et exploiter leur parallélisme.
A la fin de cette formation, les participants seront capables de :
- Mettre en place un environnement de développement comprenant la plate-forme ROCm, un code AMD GPU et Visual Studio.
- Créer un programme ROCm de base qui effectue une addition vectorielle sur le GPU et récupère les résultats de la mémoire GPU.
- Utiliser l'API ROCm pour demander des informations sur le périphérique, allouer et désallouer la mémoire du périphérique, copier des données entre l'hôte et le périphérique, lancer des noyaux et synchroniser des threads.
- Utiliser le langage HIP pour écrire des noyaux qui s'exécutent sur la mémoire GPU et manipulent des données.
- Utiliser les fonctions intégrées, les variables et les bibliothèques HIP pour effectuer des tâches et des opérations courantes.
- Utiliser les espaces mémoire ROCm et HIP, tels que les espaces globaux, partagés, constants et locaux, pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser les modèles d'exécution ROCm et HIP pour contrôler les threads, les blocs et les grilles qui définissent le parallélisme.
- Déboguer et tester les programmes ROCm et HIP à l'aide d'outils tels que ROCm Debugger et ROCm Profiler.
- Optimiser les programmes ROCm et HIP en utilisant des techniques telles que le coalescing, le caching, le prefetching et le profiling.
Administration of CUDA
35 HeuresCette formation en direct avec instructeur à Belgique (en ligne ou sur site) s'adresse aux administrateurs système débutants et aux professionnels de l'informatique qui souhaitent installer, configurer, gérer et dépanner les environnements CUDA.
A l'issue de cette formation, les participants seront capables de :
- Comprendre l'architecture, les composants et les capacités de CUDA.
- Installer et configurer les environnements CUDA.
- Gérer et optimiser les ressources CUDA.
- Déboguer et résoudre les problèmes CUDA les plus courants.
GPU Programming with CUDA and Python
14 HeuresCette formation dispensée par un instructeur en direct à Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau intermédiaire qui souhaitent utiliser CUDA pour créer des applications Python qui s'exécutent en parallèle sur les NVIDIA GPU.
A l'issue de cette formation, les participants seront capables de :
- Utiliser le compilateur Numba pour accélérer les applications Python s'exécutant sur les GPU NVIDIA GPU.
- Créer, compiler et lancer des kernels CUDA personnalisés.
- Gérer la mémoire des GPU GPU.
- Convertir une application basée sur le CPU en une application accélérée par les GPU GPU.
Introduction to GPU Programming
21 HeuresCette formation en direct avec instructeur en Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau débutant à intermédiaire qui souhaitent apprendre les bases de la programmation GPU et les principaux cadres et outils pour le développement d'applications GPU.
- A l'issue de cette formation, les participants seront capables de :
Comprendre la différence entre le CPU et l'informatique GPU ainsi que les avantages et les défis de la programmation GPU. - Choisir le cadre et l'outil appropriés pour leur application GPU.
- Créer un programme GPU de base qui effectue une addition vectorielle en utilisant un ou plusieurs cadres et outils.
- Utiliser les API, langages et bibliothèques respectifs pour demander des informations sur le périphérique, allouer et désallouer la mémoire du périphérique, copier des données entre l'hôte et le périphérique, lancer des noyaux et synchroniser des threads.
- Utiliser les espaces mémoire respectifs, tels que global, local, constant et privé, pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser les modèles d'exécution respectifs, tels que les éléments de travail, les groupes de travail, les threads, les blocs et les grilles, pour contrôler le parallélisme.
- Déboguer et tester les programmes GPU à l'aide d'outils tels que CodeXL, CUDA-GDB, CUDA-MEMCHECK et NVIDIA Nsight.
- Optimiser les programmes GPU à l'aide de techniques telles que le coalescing, la mise en cache, le prefetching et le profilage.
GPU Programming with CUDA
28 HeuresCette formation en direct avec instructeur en Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau débutant à intermédiaire qui souhaitent utiliser CUDA pour programmer les NVIDIA GPU et exploiter leur parallélisme.
A l'issue de cette formation, les participants seront capables de :
- Configurer un environnement de développement comprenant CUDA Toolkit, un NVIDIA GPU et un code Visual Studio.
- Créer un programme CUDA de base qui effectue une addition vectorielle sur le GPU et récupère les résultats dans la mémoire du GPU.
- Utiliser l'API CUDA pour demander des informations sur les périphériques, allouer et désallouer la mémoire des périphériques, copier des données entre l'hôte et le périphérique, lancer des noyaux et synchroniser des threads.
- Utiliser le langage CUDA C/C++ pour écrire des noyaux qui s'exécutent sur la mémoire GPU et manipulent des données.
- Utiliser les fonctions intégrées, les variables et les bibliothèques CUDA pour effectuer des tâches et des opérations courantes.
- Utiliser les espaces mémoire CUDA, tels que les espaces globaux, partagés, constants et locaux, pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser le modèle d'exécution CUDA pour contrôler les threads, les blocs et les grilles qui définissent le parallélisme.
- Déboguer et tester les programmes CUDA à l'aide d'outils tels que CUDA-GDB, CUDA-MEMCHECK et NVIDIA Nsight.
- Optimiser les programmes CUDA à l'aide de techniques telles que le coalescing, la mise en cache, le prefetching et le profilage.
97% de clients satisfaits.
GPU Programming with OpenACC
28 HeuresCette formation en Belgique (en ligne ou sur site) est destinée aux développeurs de niveau débutant à intermédiaire qui souhaitent utiliser OpenACC pour programmer des dispositifs hétérogènes et exploiter leur parallélisme.
A l'issue de cette formation, les participants seront capables de :
- Configurer un environnement de développement comprenant le SDK OpenACC, un périphérique supportant OpenACC et du Visual Studio code.
- Créer un programme OpenACC de base qui effectue une addition vectorielle sur l'appareil et récupère les résultats de la mémoire de l'appareil.
- Utilisez les directives et clauses OpenACC pour annoter le code et spécifier les régions parallèles, le mouvement des données et les options d'optimisation.
- Utiliser l'API OpenACC pour demander des informations sur les périphériques, définir leur numéro, gérer les erreurs et synchroniser les événements.
- Utiliser les bibliothèques OpenACC et les fonctions d'interopérabilité pour intégrer OpenACC à d'autres modèles de programmation, tels que CUDA, OpenMP et MPI.
- Utiliser les outils OpenACC pour profiler et déboguer les programmes OpenACC et identifier les goulets d'étranglement et les opportunités en matière de performances.
- Optimiser les programmes OpenACC en utilisant des techniques telles que la localité des données, la fusion des boucles, la fusion des noyaux et l'auto-tuning.
GPU Programming with OpenCL
28 HeuresCette formation en direct dans Belgique (en ligne ou sur site) est destinée aux développeurs de niveau débutant à intermédiaire qui souhaitent utiliser OpenCL pour programmer des dispositifs hétérogènes et exploiter leur parallélisme.
A l'issue de cette formation, les participants seront capables de :
- Mettre en place un environnement de développement comprenant le SDK OpenCL, un appareil supportant le OpenCL et le code Visual Studio.
- Créer un programme OpenCL de base qui effectue une addition vectorielle sur l'appareil et récupère les résultats de la mémoire de l'appareil.
- Utiliser l'API OpenCL pour demander des informations sur le périphérique, créer des contextes, des files d'attente de commandes, des tampons, des noyaux et des événements.
- Utiliser le langage C OpenCL pour écrire des noyaux qui s'exécutent sur le périphérique et manipulent des données.
- Utiliser les fonctions intégrées, les extensions et les bibliothèques OpenCL pour effectuer des tâches et des opérations courantes.
- Utiliser les modèles de mémoire de l'hôte et de l'appareil pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser le modèle d'exécution OpenCL pour contrôler les éléments de travail, les groupes de travail et les plages ND.
- Déboguer et tester les programmes OpenCL à l'aide d'outils tels que CodeXL, Intel VTune et NVIDIA Nsight.
- Optimiser les programmes OpenCL en utilisant des techniques telles que la vectorisation, le déroulement des boucles, la mémoire locale et le profilage.
GPU Programming - OpenCL vs CUDA vs ROCm
28 HeuresCette formation en direct avec instructeur en Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau débutant à intermédiaire qui souhaitent utiliser différents frameworks pour la programmation GPU et comparer leurs caractéristiques, leurs performances et leur compatibilité.
A l'issue de cette formation, les participants seront capables de :
- Configurer un environnement de développement comprenant OpenCL SDK, CUDA Toolkit, ROCm Platform, un appareil prenant en charge OpenCL, CUDA ou ROCm, et Visual Studio Code.
- Créer un programme GPU de base qui effectue une addition vectorielle en utilisant OpenCL, CUDA et ROCm, et comparer la syntaxe, la structure et l'exécution de chaque cadre.
- Utiliser les API respectives pour demander des informations sur les périphériques, allouer et désallouer la mémoire des périphériques, copier des données entre l'hôte et le périphérique, lancer des noyaux et synchroniser des threads.
- Utiliser les langages respectifs pour écrire des noyaux qui s'exécutent sur l'appareil et manipulent des données.
- Utiliser les fonctions intégrées, les variables et les bibliothèques respectives pour effectuer des tâches et des opérations courantes.
- Utiliser les espaces mémoire respectifs, tels que global, local, constant et privé, pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser les modèles d'exécution respectifs pour contrôler les threads, les blocs et les grilles qui définissent le parallélisme.
- Déboguer et tester les programmes GPU à l'aide d'outils tels que CodeXL, CUDA-GDB, CUDA-MEMCHECK et NVIDIA Nsight.
- Optimiser les programmes GPU à l'aide de techniques telles que le coalescing, la mise en cache, le prefetching et le profilage.
ROCm for Windows
21 HeuresCette formation en Belgique (en ligne ou sur site) s'adresse aux développeurs de niveau débutant à intermédiaire qui souhaitent installer et utiliser ROCm sur Windows pour programmer les AMD GPUs et exploiter leur parallélisme.
A l'issue de cette formation, les participants seront capables de :
- Configurer un environnement de développement comprenant la plate-forme ROCm, un code AMD GPU et Visual Studio sur Windows.
- Créer un programme ROCm de base qui effectue une addition vectorielle sur le GPU et récupère les résultats de la mémoire GPU.
- Utiliser l'API ROCm pour demander des informations sur le périphérique, allouer et désallouer la mémoire du périphérique, copier des données entre l'hôte et le périphérique, lancer des noyaux et synchroniser des threads.
- Utiliser le langage HIP pour écrire des noyaux qui s'exécutent sur la mémoire GPU et manipulent des données.
- Utiliser les fonctions intégrées, les variables et les bibliothèques HIP pour effectuer des tâches et des opérations courantes.
- Utiliser les espaces mémoire ROCm et HIP, tels que les espaces globaux, partagés, constants et locaux, pour optimiser les transferts de données et les accès à la mémoire.
- Utiliser les modèles d'exécution ROCm et HIP pour contrôler les threads, les blocs et les grilles qui définissent le parallélisme.
- Déboguer et tester les programmes ROCm et HIP à l'aide d'outils tels que ROCm Debugger et ROCm Profiler.
- Optimiser les programmes ROCm et HIP en utilisant des techniques telles que le coalescing, le caching, le prefetching et le profiling.