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.
Schulungsübersicht
Einführung
- Was ist ROCm?
- Was ist HIP?
- ROCm im Vergleich zu CUDA und OpenCL
- Übersicht ü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
- Überprüfung der Installation und Prüfung der Gerätekompatibilität
- Aktualisierung oder Deinstallation von ROCm unter Windows
- Lösung häufiger Installationsprobleme
Erste Schritte
- Erstellung eines neuen ROCm-Projekts mit Visual Studio Code unter Windows
- Erkundung der Projektstruktur und -dateien
- Kompilieren und Ausführen des Programms
- Anzeige der Ausgabe mittels printf und fprintf
ROCm-API
- Nutzung der ROCm-API im Host-Programm
- Abfrage von Geräteinformationen und -fähigkeiten
- Allokation und Freigabe von Gerätespeicher
- Kopieren von Daten zwischen Host und Gerät
- Starten 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 manipulieren
- Nutzung von Datentypen, Qualifiern, Operatoren und Ausdrücken
- Nutzung eingebauter Funktionen, Variablen und Bibliotheken
Speichermodell von ROCm und HIP
- Nutzung verschiedener Speicherbereiche wie global, shared, constant und local
- Nutzung verschiedener Speicherobjekte wie Zeiger, Arrays, Texturen und Surfaces
- Nutzung verschiedener Speicherzugriffsmodi wie nur-lesend, nur-schreibend, lesen-schreiben usw.
- Anwendung des Speicherkonsistenzmodells und von Synchronisierungsmechanismen
Ausführungsmodell von ROCm und HIP
- Nutzung verschiedener Ausführungsmodelle wie Threads, Blöcke und Grids
- Nutzung von Thread-Funktionen wie hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x usw.
- Nutzung von Block-Funktionen wie __syncthreads, __threadfence_block usw.
- Nutzung von Grid-Funktionen wie hipGridDim_x, hipGridSync, Cooperative Groups usw.
Debugging
- Debuggen von ROCm- und HIP-Programmen unter Windows
- Nutzung des Debuggers in Visual Studio Code zum Untersuchen von Variablen, Haltepunkten, Aufrufstapel usw.
- 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
- Optimierung von ROCm- und HIP-Programmen unter Windows
- Anwendung 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 zur Optimierung von Speicherzugriffen und Bandbreite
- Messung und Verbesserung der Ausführungszeit und Ressourcenauslastung durch Profiling und Profiling-Tools
Zusammenfassung und nächste Schritte
Voraussetzungen
- Grundkenntnisse in der C/C++-Sprache und Konzepten des parallelen Programmierens
- Basiswissen über Computerarchitektur und Speicherschichtung
- Erfahrung mit Befehlszeilentools und Code-Editoren
- Vertrautheit 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 auszuschöpfen.
- Entwicklerinnen und Entwickler, die hochleistungsstarke und skalierbaren Code schreiben möchten, der auf verschiedenen AMD-Geräten ausgeführt werden kann.
- Programmiererinnen und Programmierer, die die Low-Level-Aspekte der GPU-Programmierung erkunden und die Leistung ihres Codes optimieren möchten.
21 Stunden