Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
Introduction
- Qu'est-ce que le ROCm ?
- Qu'est-ce que HIP ?
- ROCm vs CUDA vs OpenCL
- Aperçu des caractéristiques et de l'architecture de ROCm et de HIP
- Mise en place de l'environnement de développement
Pour commencer
- Création d'un nouveau projet ROCm à l'aide de Visual Studio Code
- Exploration de la structure et des fichiers du projet
- Compilation et exécution du programme
- Affichage de la sortie à l'aide de printf et fprintf
API ROCm
- Comprendre le rôle de l'API ROCm dans le programme hôte
- Utilisation de l'API ROCm pour interroger les informations et les capacités des périphériques
- Utilisation de l'API ROCm pour allouer et désallouer la mémoire du périphérique
- Utilisation de l'API ROCm pour copier des données entre l'hôte et l'appareil
- Utilisation de l'API ROCm pour lancer des noyaux et synchroniser des threads
- Utilisation de l'API ROCm pour gérer les erreurs et les exceptions
Langage HIP
- Comprendre le rôle du langage HIP dans le programme de l'appareil
- Utiliser le langage HIP pour écrire des noyaux qui s'exécutent sur le GPU et manipulent des données
- Utiliser les types de données, les qualificateurs, les opérateurs et les expressions du langage HIP
- Utiliser les fonctions intégrées, les variables et les bibliothèques HIP pour effectuer des tâches et des opérations courantes.
Modèle de mémoire ROCm et HIP
- Comprendre la différence entre les modèles de mémoire de l'hôte et du périphérique
- Utilisation des espaces mémoire ROCm et HIP, tels que global, partagé, constant et local
- Utilisation des objets de mémoire ROCm et HIP, tels que les pointeurs, les tableaux, les textures et les surfaces
- Utilisation des modes d'accès à la mémoire ROCm et HIP, tels que lecture seule, écriture seule, lecture-écriture, etc.
- Utilisation du modèle de cohérence de la mémoire et des mécanismes de synchronisation de ROCm et HIP
Modèle d'exécution de ROCm et HIP
- Comprendre la différence entre les modèles d'exécution de l'hôte et du périphérique
- Utiliser les threads, les blocs et les grilles de ROCm et HIP pour définir le parallélisme
- Utilisation des fonctions de threads ROCm et HIP, telles que hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Utilisation de ROCm et des fonctions de bloc HIP, telles que __syncthreads, __threadfence_block, etc.
- Utilisation des fonctions de grille ROCm et HIP, telles que hipGridDim_x, hipGridSync, groupes coopératifs, etc.
Débogage
- Comprendre les erreurs et les bogues courants dans les programmes ROCm et HIP
- Utiliser le débogueur de code Visual Studio pour inspecter les variables, les points d'arrêt, la pile d'appels, etc.
- Utilisation du débogueur ROCm pour déboguer les programmes ROCm et HIP sur les appareils AMD
- Utilisation de ROCm Profiler pour analyser les programmes ROCm et HIP sur les appareils AMD
Optimisation
- Comprendre les facteurs qui affectent la performance des programmes ROCm et HIP
- Utilisation des techniques de coalescence ROCm et HIP pour améliorer le débit de la mémoire
- Utiliser les techniques de mise en cache et de préemption de ROCm et HIP pour réduire la latence de la mémoire
- Utilisation des techniques de mémoire partagée et de mémoire locale de ROCm et HIP pour optimiser les accès à la mémoire et la bande passante
- Utilisation des outils de profilage ROCm et HIP pour mesurer et améliorer le temps d'exécution et l'utilisation des ressources.
Résumé et prochaines étapes
Pré requis
- Compréhension du langage C/C++ et des concepts de programmation parallèle
- Connaissance de base de l'architecture des ordinateurs et de la hiérarchie de la mémoire
- Expérience des outils de ligne de commande et des éditeurs de code
Public
- Développeurs souhaitant apprendre à utiliser ROCm et HIP pour programmer les processeurs AMD GPU et exploiter leur parallélisme.
- Les développeurs qui souhaitent écrire un code performant et évolutif pouvant être exécuté sur différents dispositifs AMD
- Les programmeurs qui souhaitent explorer les aspects de bas niveau de la programmation GPU et optimiser les performances de leur code
28 Heures
Nos clients témoignent (2)
Très interactif avec des exemples variés, avec une bonne progression de la complexité entre le début et la fin de la formation.
Jenny - Andheo
Formation - GPU Programming with CUDA and Python
Traduction automatique
L'énergie et l'humour des formateurs.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Formation - NVIDIA GPU Programming - Extended
Traduction automatique