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

Nombre de participants


Prix ​​par Participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires