Schulungsübersicht

Einführung

  • Was ist ROCm?
  • Was ist HIP?
  • ROCm vs. CUDA vs. OpenCL
  • Überblick über die Funktionen und Architektur von ROCm und HIP
  • ROCm for Windows vs ROCm für Linux

Installation

  • Installation von ROCm unter Windows
  • Verifizierung der Installation und Überprüfung der Gerätekompatibilität
  • Aktualisieren oder Deinstallieren von ROCm unter Windows
  • Fehlersuche bei allgemeinen Installationsproblemen

Erste Schritte

  • Erstellen eines neuen ROCm-Projekts mit Visual Studio Code unter Windows
  • Erkunden der Projektstruktur und der Dateien
  • Kompilieren und Ausführen des Programms
  • Anzeige der Ausgabe mit printf und fprintf

ROCm-API

  • Verwendung von ROCm API im Host-Programm
  • Abfrage von Geräteinformationen und -fähigkeiten
  • Zuweisen und Freigeben von Gerätespeicher
  • Kopieren von Daten zwischen Host und Gerät
  • Starten von Kerneln und Synchronisieren von Threads
  • Behandlung von Fehlern und Ausnahmen

HIP-Sprache

  • Verwendung der HIP-Sprache im Geräteprogramm
  • Schreiben von Kernels, die auf dem GPU ausgeführt werden und Daten manipulieren
  • Verwendung von Datentypen, Qualifizierern, Operatoren und Ausdrücken
  • Verwendung von eingebauten Funktionen, Variablen und Bibliotheken

ROCm und HIP-Speichermodell

  • Verwendung verschiedener Speicherbereiche, z. B. global, gemeinsam genutzt, konstant und lokal
  • Verwendung verschiedener Speicherobjekte, wie z.B. Zeiger, Arrays, Texturen und Oberflächen
  • Verwendung verschiedener Speicherzugriffsmodi, wie z. B. Nur-Lesen, Nur-Schreiben, Lesen-Schreiben usw.
  • Verwendung von Speicherkonsistenzmodellen und Synchronisationsmechanismen

ROCm und HIP-Ausführungsmodell

  • Verwendung verschiedener Ausführungsmodelle, z. B. Threads, Blöcke und Grids
  • Verwendung von Thread-Funktionen, z. B. hipThreadIdx_x, hipBlockIdx_x, hipBlockDim_x usw.
  • Verwendung von Blockfunktionen wie __syncthreads, __threadfence_block, usw.
  • Verwendung von Grid-Funktionen, wie hipGridDim_x, hipGridSync, kooperative Gruppen, usw.

Fehlersuche

  • Fehlersuche in ROCm- und HIP-Programmen unter Windows
  • Verwendung des Visual Studio Code-Debuggers zur Untersuchung von Variablen, Haltepunkten, Aufrufstapel usw.
  • Verwendung des ROCm Debuggers zur Fehlersuche in ROCm- und HIP-Programmen auf AMD-Geräten
  • Verwendung von ROCm Profiler zur Analyse von ROCm- und HIP-Programmen auf AMD-Geräten

Optimierung

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

Zusammenfassung und nächster Schritt

Voraussetzungen

  • Kenntnisse der Sprache C/C++ und paralleler Programmierkonzepte
  • Grundkenntnisse der Computerarchitektur und der Speicherhierarchie
  • Erfahrung mit Befehlszeilentools und Code-Editoren
  • Vertrautheit mit dem Windows-Betriebssystem und PowerShell

Zielgruppe

  • Entwickler, die lernen möchten, wie man ROCm unter Windows installiert und verwendet, um AMD GPUs zu programmieren und deren Parallelität auszunutzen
  • Entwickler, die leistungsstarken und skalierbaren Code schreiben möchten, der auf verschiedenen AMD-Geräten ausgeführt werden kann
  • Programmierer, die die Low-Level-Aspekte der GPU-Programmierung erforschen und die Leistung ihres Codes optimieren möchten
 21 Stunden

Teilnehmerzahl



Preis je Teilnehmer

Erfahrungsberichte (1)

Kombinierte Kurse

GPU Programming with CUDA

28 Stunden

GPU Programming - OpenCL vs CUDA vs ROCm

28 Stunden

AMD GPU Programming

28 Stunden

Verwandte Kategorien