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 (1)

Cours Similaires

GPU Programming with OpenCL

28 heures

GPU Programming with CUDA

28 heures

GPU Programming - OpenCL vs CUDA vs ROCm

28 heures

ROCm for Windows

21 heures

Introduction to GPU Programming

21 heures

Catégories Similaires