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 ROCm ?
- Qu'est-ce que HIP ?
- ROCm par rapport à CUDA par rapport à OpenCL
- Aperçu des fonctionnalités et de l'architecture de ROCm et HIP
- ROCm pour Windows par rapport à ROCm pour Linux
Installation
- Installation de ROCm sous Windows
- Vérification de l'installation et contrôle de la compatibilité de l'appareil
- Mise à jour ou désinstallation de ROCm sous Windows
- Dépannage des problèmes d'installation courants
Démarrage
- Création d'un nouveau projet ROCm utilisant Visual Studio Code sous Windows
- Exploration de la structure du projet et des fichiers
- Compilation et exécution du programme
- Affichage de la sortie en utilisant printf et fprintf
API ROCm
- Utilisation de l'API ROCm dans le programme hôte
- Interrogation des informations et des capacités de l'appareil
- Allocation et libération de la mémoire de l'appareil
- Copie des données entre l'hôte et l'appareil
- Lancement des noyaux et synchronisation des threads
- Gestion des erreurs et des exceptions
Langage HIP
- Utilisation du langage HIP dans le programme appareil
- Écriture de noyaux qui s'exécutent sur le GPU et manipulent les données
- Utilisation des types de données, qualificatifs, opérateurs et expressions
- Utilisation des fonctions intégrées, variables et bibliothèques
Modèle mémoire ROCm et HIP
- Utilisation de différents espaces mémoire, tels que global, partagé, constant et local
- Utilisation de différents objets mémoire, tels que pointeurs, tableaux, textures et surfaces
- Utilisation de différents modes d'accès mémoire, tels que en lecture seule, en écriture seule, en lecture-écriture, etc.
- Utilisation du modèle de cohérence mémoire et des mécanismes de synchronisation
Modèle d'exécution ROCm et HIP
- Utilisation de différents modèles d'exécution, tels que threads, blocs et grilles
- Utilisation des fonctions de thread, telles que hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
- Utilisation des fonctions de bloc, telles que __syncthreads, __threadfence_block, etc.
- Utilisation des fonctions de grille, telles que hipGridDim_x, hipGridSync, groupes coopératifs, etc.
Débuggage
- Débuggage des programmes ROCm et HIP sous Windows
- Utilisation du débogueur de Visual Studio Code pour inspecter les variables, les points d'arrêt, la pile d'appels, etc.
- Utilisation de ROCm Debugger 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
- Optimisation des programmes ROCm et HIP sous Windows
- Utilisation de techniques de regroupement pour améliorer le débit mémoire
- Utilisation de techniques de mise en cache et de précharge pour réduire la latence mémoire
- Utilisation de la mémoire partagée et locale pour optimiser les accès mémoire et la bande passante
- Utilisation du profilage et des outils de profilage pour mesurer et améliorer le temps d'exécution et l'utilisation des ressources
Résumé et prochaines étapes
Pré requis
- Une compréhension du langage C/C++ et des concepts de programmation parallèle
- Connaissances de base en architecture informatique et hiérarchie de la mémoire
- Expérience avec les outils de ligne de commande et les éditeurs de code
- Connaissance du système d'exploitation Windows et de PowerShell
Public cible
- Développeurs souhaitant apprendre à installer et à utiliser ROCm sur Windows pour programmer des GPU AMD et exploiter leur parallélisme
- Développeurs souhaitant écrire du code performant et évolutive capable de s'exécuter sur différents appareils AMD
- Programmeurs souhaitant explorer les aspects bas niveau de la programmation GPU et optimiser les performances de leur code
21 Heures