Kontakt aufnehmen

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

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien