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

Nombre de participants


Prix ​​par Participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires