Kursplan

Introduktion

  • Vad är ROCm?
  • Vad är HIP?
  • ROCm vs CUDA vs OpenCL
  • Översikt över ROCm och HIP funktioner och arkitektur
  • ROCm for Windows kontra ROCm för Linux

Installation

  • Installera ROCm på Windows
  • Verifiera installationen och kontrollera enhetens kompatibilitet
  • Uppdatera eller avinstallera ROCm på Windows
  • Felsökning av vanliga installationsproblem

Komma igång

  • Skapa ett nytt ROCm-projekt med hjälp av Visual Studio Code på Windows
  • Utforska projektstrukturen och filerna
  • Kompilera och köra programmet
  • Visar utdata med printf och fprintf

ROCm API

  • Använder ROCm API i värdprogrammet
  • Fråga efter enhetsinformation och funktioner
  • Tilldela och avallokera enhetsminne
  • Kopiera data mellan värd och enhet
  • Starta kärnor och synkronisera trådar
  • Hantering av fel och undantag

HIP-språk

  • Använder HIP-språk i enhetsprogrammet
  • Att skriva kärnor som körs på GPU och manipulerar data
  • Använda datatyper, kvalificerare, operatorer och uttryck
  • Använda inbyggda funktioner, variabler och bibliotek

ROCm och HIP minnesmodell

  • Använda olika minnesutrymmen, såsom globala, delade, konstanta och lokala
  • Använda olika minnesobjekt, såsom pekare, arrayer, texturer och ytor
  • Använda olika minnesåtkomstlägen, såsom skrivskyddad, skrivskyddad, läs-skriv, etc.
  • Använda minneskonsistensmodell och synkroniseringsmekanismer

ROCm och HIP Execution Model

  • Använda olika exekveringsmodeller, såsom trådar, block och rutnät
  • Använda trådfunktioner, som hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x, etc.
  • Använda blockfunktioner, såsom __syncthreads, __threadfence_block, etc.
  • Använda rutnätsfunktioner, såsom hipGridDim_x, hipGridSync, kooperativa grupper, etc.

Felsökning

  • Felsökning av ROCm- och HIP-program på Windows
  • Användning av Visual Studio kodfelsökning för att inspektera variabler, brytpunkter, anropsstack, etc.
  • Använda ROCm Debugger för att felsöka ROCm- och HIP-program på AMD-enheter
  • Använda ROCm Profiler för att analysera ROCm- och HIP-program på AMD-enheter

Optimering

  • Optimera ROCm- och HIP-program på Windows
  • Använder koalescerande tekniker för att förbättra minneskapaciteten
  • Använder caching och förhämtning för att minska minnesfördröjningen
  • Använda delat minne och lokala minnestekniker för att optimera minnesåtkomst och bandbredd
  • Använda profilerings- och profileringsverktyg för att mäta och förbättra exekveringstiden och resursutnyttjandet

Sammanfattning och nästa steg

Krav

  • En förståelse för C/C++ språk och parallella programmeringskoncept
  • Grundläggande kunskaper om datorarkitektur och minneshierarki
  • Erfarenhet av kommandoradsverktyg och kodredigerare
  • Kännedom om Windows operativsystem och PowerShell

Publik

  • Utvecklare som vill lära sig att installera och använda ROCm på Windows för att programmera AMD GPU och utnyttja deras parallellitet
  • Utvecklare som vill skriva högpresterande och skalbar kod som kan köras på olika AMD-enheter
  • Programmerare som vill utforska lågnivåaspekterna av GPU programmering och optimera sin kodprestanda
 21 timmar

Antal deltagare



Price per participant

Vittnesmål (1)

Relaterade Kurser

GPU Programming - OpenCL vs CUDA vs ROCm

28 timmar

Relaterade Kategorier