Prenez contact avec nous

Plan du cours

Introduction

  • Qu'est-ce que ROCm ?
  • Qu'est-ce que HIP ?
  • ROCm vs CUDA vs OpenCL
  • Aperçu des fonctionnalités et de l'architecture de ROCm et HIP
  • ROCm pour Windows vs ROCm pour Linux

Installation

  • Installation de ROCm sur Windows
  • Vérification de l'installation et contrôle de la compatibilité du dispositif
  • Mise à jour ou désinstallation de ROCm sur Windows
  • Résolution des problèmes d'installation courants

Premiers pas

  • Création d'un nouveau projet ROCm à l'aide de 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 du dispositif
  • Allocation et libération de la mémoire du dispositif
  • Copie des données entre l'hôte et le dispositif
  • Lancement des noyaux et synchronisation des threads
  • Gestion des erreurs et des exceptions

Langage HIP

  • Utilisation du langage HIP dans le programme de dispositif
  • Écriture de noyaux qui s'exécutent sur le GPU et manipulent les données
  • Utilisation des types de données, des qualifiants, des opérateurs et des expressions
  • Utilisation des fonctions intégrées, des variables et des 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 de fonctions de thread, telles que hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Utilisation de 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 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 dispositifs AMD
  • Utilisation de ROCm Profiler pour analyser les programmes ROCm et HIP sur les dispositifs AMD

Optimisation

  • Optimisation des programmes ROCm et HIP sous Windows
  • Utilisation de techniques de concaténation (coalescing) pour améliorer le débit mémoire
  • Utilisation de techniques de mise en cache et de prérecherche (prefetching) 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

  • Compréhension du langage C/C++ et des concepts de programmation parallèle.
  • Connaissances de base en architecture informatique et hiérarchie mémoire.
  • Expérience avec les outils en ligne de commande et les éditeurs de code.
  • Maîtrise du système d'exploitation Windows et de PowerShell.

Audience

  • 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 haute performance et évolutif pouvant s'exécuter sur différents périphériques AMD.
  • Programmateurs souhaitant explorer les aspects bas niveau de la programmation GPU et optimiser les performances de leur code.
 21 Heures

Nombre de participants


Prix par participant

Cours à venir

Catégories Similaires