Vielen Dank für die Zusendung Ihrer Anfrage! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Vielen Dank, dass Sie Ihre Buchung abgeschickt haben! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Dauer 21 Stunden
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.