Schulungsübersicht

Einführung

  • Was ist GPU-Programmierung?
  • Warum sollte man GPU-Programmierung verwenden?
  • Welche Herausforderungen und Handelsabzüge hat die GPU-Programmierung?
  • Was sind Frameworks für GPU-Programmierung?
  • Die Wahl des richtigen Frameworks für Ihre Anwendung

OpenCL

  • Was ist OpenCL?
  • Welche Vorteile und Nachteile hat OpenCL?
  • Die Einrichtung der Entwicklungsumgebung für OpenCL
  • Erstellen eines grundlegenden OpenCL-Programms zur Vektoraddition
  • Verwenden der OpenCL-API zum Abfragen von Geräteinformationen, Zuteilen und Freigeben des Gerätenspeichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernels und Synchronisieren von Threads
  • Verwenden der OpenCL-C-Sprache zum Schreiben von Kernen, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden der eingebauten Funktionen, Variablen und Bibliotheken in OpenCL für gängige Aufgaben und Operationen
  • Verwenden der OpenCL-Speicherbereiche wie globaler, lokaler, konstanter und privater Speicher zum Optimieren von Datenübertragungen und Speichergewinnzugriffen
  • Verwenden des OpenCL-Ausführungsmodells zur Kontrolle der Work-Items, Work-Gruppen und ND-Bereiche, die die Parallelität definieren
  • Debuggen und Testen von OpenCL-Programmen mit Werkzeugen wie CodeXL
  • Optimieren von OpenCL-Programmen mit Techniken wie Zusammenführung, Caching, Vorrausspeicherung und Profiling

CUDA

  • Was ist CUDA?
  • Welche Vorteile und Nachteile hat CUDA?
  • Die Einrichtung der Entwicklungsumgebung für CUDA
  • Erstellen eines grundlegenden CUDA-Programms zur Vektoraddition
  • Verwenden der CUDA-API zum Abfragen von Geräteinformationen, Zuteilen und Freigeben des Gerätenspeichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernels und Synchronisieren von Threads
  • Verwenden von CUDA C/C++-Sprache zum Schreiben von Kernen, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden der eingebauten Funktionen, Variablen und Bibliotheken in CUDA für gängige Aufgaben und Operationen
  • Verwenden der CUDA-Speicherbereiche wie globaler, geteilter, konstanter und lokaler Speicher zum Optimieren von Datenübertragungen und Speichergewinnzugriffen
  • Verwenden des CUDA-Ausführungsmodells zur Kontrolle der Threads, Blöcke und Gitter, die die Parallelität definieren
  • Debuggen und Testen von CUDA-Programmen mit Werkzeugen wie CUDA-GDB, CUDA-MEMCHECK und NVIDIA Nsight
  • Optimieren von CUDA-Programmen mit Techniken wie Zusammenführung, Caching, Vorrausspeicherung und Profiling

ROCm

  • Was ist ROCm?
  • Welche Vorteile und Nachteile hat ROCm?
  • Die Einrichtung der Entwicklungsumgebung für ROCm
  • Erstellen eines grundlegenden ROCm-Programms zur Vektoraddition
  • Verwenden der ROCm-API zum Abfragen von Geräteinformationen, Zuteilen und Freigeben des Gerätenspeichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernen und Synchronisieren von Threads
  • Verwenden von ROCm C/C++-Sprache zum Schreiben von Kernen, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden der eingebauten Funktionen, Variablen und Bibliotheken in ROCm für gängige Aufgaben und Operationen
  • Verwenden der ROCm-Speicherbereiche wie globaler, lokaler, konstanter und privater Speicher zum Optimieren von Datenübertragungen und Speichergewinnzugriffen
  • Verwenden des ROCm-Ausführungsmodells zur Kontrolle der Threads, Blöcke und Gitter, die die Parallelität definieren
  • Debuggen und Testen von ROCm-Programmen mit Werkzeugen wie ROCm Debugger und ROCm Profiler
  • Optimieren von ROCm-Programmen mit Techniken wie Zusammenführung, Caching, Vorrausspeicherung und Profiling

Vergleich

  • Vergleichen der Funktionen, Leistung und Kompatibilität von OpenCL, CUDA und ROCm
  • Bewertung von GPU-Programmen mit Benchmarks und Metriken
  • Lernen von Best Practices und Tipps für die GPU-Programmierung
  • Erforschen der aktuellen und zukünftigen Trends und Herausforderungen bei der GPU-Programmierung

Zusammenfassung und Nächste Schritte

Voraussetzungen

  • Ein Verständnis von C/C++-Sprache und Konzepten der parallelen Programmierung
  • Grundlegendes Wissen über Computerarchitektur und Speicherebene
  • Erfahrung mit Kommandozeilenwerkzeugen und Code-Editoren

Zielgruppe

  • Entwickler, die lernen möchten, wie man verschiedene Frameworks für GPU-Programmierung einsetzt und ihre Funktionen, Leistung und Kompatibilität vergleicht
  • Entwickler, die portable und skalierbare Code schreiben möchten, der auf verschiedenen Plattformen und Geräten ausgeführt werden kann
  • Programmierer, die sich für die Vorteile und Herausforderungen der GPU-Programmierung und -Optimierung interessieren
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien