Course Outline

Invoering

  • Wat is ROCm?
  • Wat is HIP?
  • ROCm versus CUDA versus OpenCL
  • Overzicht van ROCm- en HIP-functies en architectuur
  • Het opzetten van de ontwikkelomgeving

Aan de slag

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

ROCm-API

  • Inzicht in de rol van ROCm API in het hostprogramma
  • ROCm API gebruiken om apparaatinformatie en -mogelijkheden op te vragen
  • ROCm API gebruiken om apparaatgeheugen toe te wijzen en de toewijzing ongedaan te maken
  • ROCm API gebruiken om gegevens tussen host en apparaat te kopiëren
  • ROCm API gebruiken om kernels te starten en threads te synchroniseren
  • ROCm API gebruiken om fouten en uitzonderingen af te handelen

HIP-taal

  • Inzicht in de rol van HIP-taal in het apparaatprogramma
  • HIP-taal gebruiken om kernels te schrijven die worden uitgevoerd op de GPU en gegevens manipuleren
  • HIP-gegevenstypen, kwalificaties, operators en expressies gebruiken
  • Gebruik van ingebouwde HIP-functies, variabelen en bibliotheken om algemene taken en bewerkingen uit te voeren

ROCm- en HIP-geheugenmodel

  • Het verschil begrijpen tussen host- en apparaatgeheugenmodellen
  • ROCm- en HIP-geheugenruimten gebruiken, zoals globaal, gedeeld, constant en lokaal
  • ROCm- en HIP-geheugenobjecten gebruiken, zoals pointers, arrays, texturen en oppervlakken
  • ROCm- en HIP-geheugentoegangsmodi gebruiken, zoals alleen-lezen, alleen-schrijven, lezen-schrijven, enz.
  • Gebruik van ROCm- en HIP-geheugenconsistentiemodel en synchronisatiemechanismen

ROCm- en HIP-uitvoeringsmodel

  • Het verschil begrijpen tussen host- en apparaatuitvoeringsmodellen
  • ROCm- en HIP-threads, blokken en rasters gebruiken om het parallellisme te definiëren
  • ROCm- en HIP-threadfuncties gebruiken, zoals hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, enz.
  • ROCm- en HIP-blokfuncties gebruiken, zoals __syncthreads, __threadfence_block, enz.
  • Met behulp van ROCm- en HIP-rasterfuncties, zoals hipGridDim_x, hipGridSync, coöperatieve groepen, enz.

Foutopsporing

  • Inzicht in de veelvoorkomende fouten en bugs in ROCm- en HIP-programma's
  • 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

  • Inzicht in de factoren die de prestaties van ROCm- en HIP-programma's beïnvloeden
  • ROCm- en HIP-coalescentietechnieken gebruiken om de geheugendoorvoer te verbeteren
  • ROCm- en HIP-caching en prefetching-technieken gebruiken om de geheugenlatentie te verminderen
  • Gebruik van ROCm en HIP gedeeld geheugen en lokale geheugentechnieken om geheugentoegang en bandbreedte te optimaliseren
  • ROCm- en HIP-profilering en profileringstools gebruiken 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

Publiek

  • Ontwikkelaars die willen leren hoe ze ROCm en HIP kunnen 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
 28 Hours

Number of participants



Price per participant

Getuigenissen (1)

Related Courses

Administration of CUDA

35 Hours

GPU Programming with CUDA and Python

14 Hours

NVIDIA GPU Programming

14 Hours

Introduction to GPU Programming

21 Hours

GPU Programming with CUDA

28 Hours

GPU Programming with OpenACC

28 Hours

GPU Programming with OpenCL

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

NVIDIA GPU Programming - Extended

21 Hours

ROCm for Windows

21 Hours

Hardware-Accelerated Video Analytics

14 Hours

Raster and Vector Graphics (Adobe Photoshop, CorelDraw)

28 Hours

Adobe LiveCycle Designer

14 Hours

Affinity Designer

14 Hours

Adobe Illustrator

14 Hours

Related Categories