Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
- ROCm pour ROCm for Windows vs ROCm pour Linux
Installation
- Installation de ROCm sur Windows
- Vérifier l'installation et la compatibilité des appareils
- Mise à jour ou désinstallation de ROCm sur Windows
- Résolution des problèmes d'installation les plus courants
Pour commencer
- Création d'un nouveau projet ROCm à l'aide de Visual Studio Code sous Windows
- Explorer la structure et les fichiers du projet
- Compilation et exécution du programme
- Affichage de la sortie à l'aide de printf et fprintf
API ROCm
- Utilisation de l'API ROCm dans le programme hôte
- Interroger les informations et les capacités du dispositif
- Attribution et désattribution de la mémoire du périphérique
- Copie de données entre l'hôte et le périphérique
- Lancer des noyaux et synchroniser des threads
- Gestion des erreurs et des exceptions
Langage HIP
- Utilisation du langage HIP dans le programme de l'appareil
- Écriture de noyaux qui s'exécutent sur le GPU et manipulent des données
- Utilisation des types de données, des qualificateurs, des opérateurs et des expressions
- Utilisation des fonctions intégrées, des variables et des bibliothèques
Modèle de 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 les pointeurs, les tableaux, les textures et les surfaces
- Utilisation de différents modes d'accès à la mémoire, 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
Modèle d'exécution ROCm et HIP
- Utilisation de différents modèles d'exécution, tels que les threads, les blocs et les 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 de fonctions de grille, telles que hipGridDim_x, hipGridSync, groupes coopératifs, etc.
Débogage
- Débogage des programmes ROCm et HIP sous Windows
- Utilisation du 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
- Optimisation des programmes ROCm et HIP sous Windows
- Utilisation de techniques de coalescence pour améliorer le débit de la mémoire
- Utilisation de techniques de mise en cache et d'extraction préalable pour réduire la latence de la mémoire
- Utilisation des techniques de mémoire partagée et de mémoire locale pour optimiser les accès à la mémoire et la bande passante
- Utilisation d'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
- 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
- Familiarité avec le système d'exploitation Windows et PowerShell
Public
- Développeurs souhaitant apprendre à installer et à utiliser ROCm sur Windows pour programmer des AMDGPU et exploiter leur parallélisme.
- Développeurs souhaitant écrire un code performant et évolutif pouvant être exécuté sur différents appareils AMD
- Les programmeurs qui souhaitent explorer les aspects de bas niveau de la programmation GPU et optimiser les performances de leur code
21 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