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
- Ü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.