Kontakt aufnehmen

Schulungsübersicht

Einführung

  • Was ist ROCm?
  • Was ist HIP?
  • ROCm im Vergleich zu CUDA und OpenCL
  • Übersicht über die Funktionen und Architektur von ROCm sowie HIP
  • Unterschiede zwischen ROCm für Windows und ROCm für Linux

Installation

  • ROCm unter Windows installieren
  • Installation überprüfen und Gerätekompatibilität prüfen
  • ROCm auf Windows aktualisieren oder deinstallieren
  • Lösung häufig auftretender Installationsprobleme

Erste Schritte

  • Mit Visual Studio Code unter Windows ein neues ROCm-Projekt erstellen
  • Struktur und Dateien des Projekts erkunden
  • Programm kompilieren und ausführen
  • Ausgaben mit printf und fprintf anzeigen

ROCm-API

  • Einsatz der ROCm-API in Host-Programmen
  • Abfragen von Geräteinformationen sowie Funktionen
  • Speicher auf dem Device zuweisen bzw. freigeben
  • Datenübertragung zwischen Host und Device
  • Kernel starten und Threads synchronisieren
  • Fehlerbehandlung und Umgang mit Ausnahmen

HIP-Sprache

  • Einsatz der HIP-Sprache in Geräte-Programmen
  • Kernel schreiben, die auf der GPU ausgeführt werden und Daten verarbeiten können
  • Nutzung von Datentypen, Qualifizierern, Operatoren sowie Ausdrücken
  • Einsatz eingebauter Funktionen, Variablen und Bibliotheken

Speichermodell in ROCm und HIP

  • Nutzung verschiedener Speicherbereiche: global, geteilt, konstant sowie lokal
  • Einsatz unterschiedlicher Speicherobjekte wie Zeiger, Arrays, Texturen und Surfaces
  • Verwendung von Zugriffsmodi wie Lesezugriff nur, Schreibzugriff nur oder lese-/schreibzugreifend
  • Aktivierung des Speicherkonsistenzmodells sowie Synchonisierungsmechanismen

Ausführungsmodelle in ROCm und HIP

  • Anwendung verschiedener Ausführungsmodelle: Threads, Blöcke und Gitter
  • Nutzung von Thread-Funktionen wie hipThreadIdx_x, hipBlockIdx_x oder hipBlockDim_x
  • Einsatz von Block-Funktionen etwa __syncthreads oder __threadfence_block
  • Verwendung von Gitter-Funktionen wie hipGridDim_x, hipGridSync sowie kooperativer Gruppen

Debugging

  • Debuggen von ROCm- und HIP-Programmen unter Windows
  • Nutzung des Debuggers in Visual Studio Code zum Inspektieren von Variablen, Einrichten von Breakpoints oder Analyse des Aufrufstacks
  • Einsatz des ROCm Debuggers zur Fehlerbehebung bei Programmen auf AMD-Geräten
  • Analyse der Leistung mittels ROCm Profiler bei Ausführungen auf AMD-GPUs

Optimierung

  • Optimierung von ROCm- sowie HIP-Programmen unter Windows
  • Einsatz von Kohäsionstechniken zur Steigerung der Speicherdurchsatzrate
  • Caching und Vorkompensierung nutzen, um Latenzzeiten im Speicher reduzieren
  • Geteilter sowie lokaler Speicher als Mittel zur Beschleunigung des Datenzugriffs und der Bandbreitennutzung
  • Profiling mit entsprechenden Werkzeugen, um Laufzeit und Ressourcennutzung zu analysieren und zu verbessern

Zusammenfassung und weitere Schritte

Voraussetzungen

  • Grundkenntnisse in der C/C++-Programmierung sowie Verständnis von Konzepten der parallelen Programmierung
  • Basiswissen über Computerarchitektur und Speicherhierarchie
  • Erfahrung mit Kommandozeilenwerkzeugen und Code-Editoren
  • Vertrautheit mit dem Windows-Betriebssystem sowie PowerShell

Zielgruppe

  • Entwickler, die lernen möchten, wie man ROCm unter Windows installiert und nutzt, um AMD-GPUs zu programmieren und deren Parallelisierungspotenzial auszunutzen.
  • Entwickler, die hochleistungsfähigen und skalierbaren Code erstellen möchten, der auf unterschiedlichen AMD-Geräten lauffähig ist.
  • Programmierer, die tiefer in die Grundlagen der GPU-Programmierung eintauchen und die Leistung ihrer Programme optimieren wollen.
 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien