Course Outline

Invoering

  • Wat is ROCm?
  • Wat is HIP?
  • ROCm versus CUDA versus OpenCL
  • Overzicht van ROCm- en HIP-functies en architectuur
  • ROCm for Windows versus ROCm voor Linux

Installatie

  • ROCm installeren op Windows
  • Verificatie van de installatie en controleer de apparaatcompatibiliteit
  • ROCm bijwerken of verwijderen op Windows
  • Veelvoorkomende installatieproblemen oplossen

Aan de slag

  • Een nieuw ROCm-project maken met behulp van Visual Studio Code op Windows
  • Het verkennen van de projectstructuur en bestanden
  • Het compileren en uitvoeren van het programma
  • De uitvoer weergeven met printf en fprintf

ROCm-API

  • ROCm API gebruiken in het hostprogramma
  • Apparaatinformatie en -mogelijkheden opvragen
  • Apparaatgeheugen toewijzen en de toewijzing ongedaan maken
  • Gegevens kopiëren tussen host en apparaat
  • Kernels starten en threads synchroniseren
  • Afhandelen van fouten en uitzonderingen

HIP-taal

  • HIP-taal gebruiken in het apparaatprogramma
  • Kernels schrijven die worden uitgevoerd op de GPU en gegevens manipuleren
  • Gegevenstypen, kwalificaties, operators en expressies gebruiken
  • Ingebouwde functies, variabelen en bibliotheken gebruiken

ROCm- en HIP-geheugenmodel

  • Verschillende geheugenruimten gebruiken, zoals globaal, gedeeld, constant en lokaal
  • Verschillende geheugenobjecten gebruiken, zoals pointers, arrays, texturen en oppervlakken
  • Gebruik van verschillende geheugentoegangsmodi, zoals alleen-lezen, alleen-schrijven, lezen-schrijven, enz.
  • Gebruik maken van een geheugenconsistentiemodel en synchronisatiemechanismen

ROCm- en HIP-uitvoeringsmodel

  • Gebruik maken van verschillende uitvoeringsmodellen, zoals threads, blokken en rasters
  • Thread-functies gebruiken, zoals hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, enz.
  • Blokfuncties gebruiken, zoals __synctreads, __threadfence_block, enz.
  • Met behulp van rasterfuncties, zoals hipGridDim_x, hipGridSync, coöperatieve groepen, enz.

Foutopsporing

  • Debuggen van ROCm- en HIP-programma's op Windows
  • Gebruik Visual Studio Code debugger om variabelen, breekpunten, call-stack, enz. te inspecteren.
  • ROCm Debugger gebruiken om ROCm- en HIP-programma's op AMD-apparaten te debuggen
  • ROCm Profiler gebruiken om ROCm- en HIP-programma's op AMD-apparaten te analyseren

Optimalisatie

  • Optimaliseren van ROCm- en HIP-programma's op Windows
  • Coalescentietechnieken gebruiken om de geheugendoorvoer te verbeteren
  • Het gebruik van caching- en prefetch-technieken om de geheugenlatentie te verminderen
  • Gebruik van gedeeld geheugen en lokale geheugentechnieken om geheugentoegang en bandbreedte te optimaliseren
  • Het gebruik van profilering en profileringstools om de uitvoeringstijd en het gebruik van middelen te meten en te verbeteren

Samenvatting en volgende stap

Requirements

  • Een goed begrip van de C/C++-taal en parallelle programmeerconcepten
  • Basiskennis van computerarchitectuur en geheugenhiërarchie
  • Ervaring met opdrachtregelprogramma's en code-editors
  • Kennis van het Windows besturingssysteem en PowerShell

Publiek

  • Ontwikkelaars die willen leren hoe ze ROCm op Windows kunnen installeren en gebruiken om AMD GPU's te programmeren en hun parallellisme te exploiteren
  • Ontwikkelaars die hoogwaardige en schaalbare code willen schrijven die op verschillende AMD-apparaten kan draaien
  • Programmeurs die de lagere aspecten van GPU programmeren willen verkennen en hun codeprestaties willen optimaliseren
 21 Hours

Getuigenissen (1)

Related Courses

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

Related Categories