Kontakt aufnehmen

Schulungsübersicht

Einführung

  • Was ist ROCm?
  • Was ist HIP?
  • ROCm im Vergleich zu CUDA und OpenCL
  • Überblick über Funktionen und Architektur von ROCm und HIP
  • ROCm für Windows im Vergleich zu ROCm für Linux

Installation

  • Installation von ROCm unter Windows
  • Verifikation der Installation und Prüfung der Gerätekompatibilität
  • Aktualisieren oder Deinstallieren von ROCm unter Windows
  • Lösung häufig auftretender Installationsprobleme

Erste Schritte

  • Ein neues ROCm-Projekt mit Visual Studio Code unter Windows erstellen
  • Projektknotenstruktur und Dateien erkunden
  • Kompilieren und Ausführen des Programms
  • Ausgabe mittels printf und fprintf anzeigen

ROCm API

  • Nutzung der ROCm API im Host-Programm
  • Abfrage von Geräteinformationen und Fähigkeiten
  • Allozieren und Freigeben von Gerätespeicher
  • Kopieren von Daten zwischen Host und Gerät
  • Ausführen von Kernels und Synchronisieren von Threads
  • Umgang mit Fehlern und Ausnahmen

HIP-Sprache

  • Nutzung der HIP-Sprache im Device-Programm
  • Schreiben von Kernels, die auf der GPU ausgeführt werden und Daten bearbeiten
  • Nutzung von Datentypen, Qualifizierern, Operatoren und Ausdrücken
  • Nutzung eingebauter Funktionen, Variablen und Bibliotheken

ROCm- und HIP-Speichermodell

  • Nutzung verschiedener Speicherbereiche wie global, shared, constant und local
  • Nutzung verschiedener Speicherojekte wie Pointer, Arrays, Texturen und Surfaces
  • Nutzung verschiedener Speicherzugriffsmodi (read-only, write-only, read-write etc.)
  • Nutzung des Speicher-Konsistenzmodells und Synchronisationsmechanismen

ROCm- und HIP-Ausführungsmodell

  • Nutzung verschiedener Ausführungsmodelle wie Threads, Blocks und Grids
  • Nutzung von Thread-Funktionen wie hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x etc.
  • Nutzung von Block-Funktionen wie __syncthreads, __threadfence_block etc.
  • Nutzung von Grid-Funktionen wie hipGridDim_x, hipGridSync, Cooperative Groups etc.

Debugging

  • Debuggen von ROCm- und HIP-Programmen unter Windows
  • Nutzung des Visual Studio Code Debuggers zum Untersuchen von Variablen, Breakpoints, Call Stack etc.
  • Nutzung des ROCm Debuggers zum Debuggen von ROCm- und HIP-Programmen auf AMD-Geräten
  • Nutzung des ROCm Profilers zur Analyse von ROCm- und HIP-Programmen auf AMD-Geräten

Optimierung

  • Optimieren von ROCm- und HIP-Programmen unter Windows
  • Einsatz von Coalescing-Techniken zur Verbesserung des Speicher-Durchsatzes
  • Einsatz von Caching- und Prefetching-Techniken zur Reduzierung der Speicherlatenz
  • Nutzung von Shared Memory und Local Memory Techniken zur Optimierung von Speicherzugriffen und Bandbreite
  • Messung und Verbesserung der Ausführungszeit und Ressourcennutzung mittels Profiling und Profiling-Tools

Zusammenfassung und nächste Schritte

Voraussetzungen

  • Kenntnisse in der C/C++-Sprache und Parallelprogrammierung
  • Grundlegendes Verständnis der Computerarchitektur und Speicherebenen
  • Erfahrung mit Befehlszeilentools und Code-Editoren
  • Bekanntschaft mit dem Windows-Betriebssystem und PowerShell

Zielgruppe

  • Entwicklerinnen und Entwickler, die lernen möchten, wie man ROCm unter Windows installiert und nutzt, um AMD-GPUs zu programmieren und deren Parallelität auszunutzen.
  • Entwicklerinnen und Entwickler, die hochperformanten und skalierbaren Code schreiben möchten, der auf verschiedenen AMD-Geräten läuft.
  • Programmierende, die die Low-Level-Aspekte der GPU-Programmierung erkunden und ihre Code-Leistung optimieren wollen.
 21 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien