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