Kontakt aufnehmen

Schulungsübersicht

Einführung

  • Was ist GPU-Programmierung?
  • Warum GPU-Programmierung verwenden?
  • Welche Herausforderungen und Kompromisse gibt es bei der GPU-Programmierung?
  • Welche Frameworks existieren für die GPU-Programmierung?
  • Auswahl des richtigen Frameworks für Ihre Anwendung

OpenCL

  • Was ist OpenCL?
  • Welche Vor- und Nachteile hat OpenCL?
  • Einrichten der Entwicklungsumgebung für OpenCL
  • Erstellen eines grundlegenden OpenCL-Programms, das Vektoraddition durchführt
  • Verwenden der OpenCL-API zur Abfrage von Geräteinformationen, Allokation und Deallokation des Geräte-Speichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernels und Synchronisieren von Threads
  • Verwenden der OpenCL-C-Sprache zum Schreiben von Kernels, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden integrierter Funktionen, Variablen und Bibliotheken in OpenCL für gängige Aufgaben und Operationen
  • Nutzen der Speicherbereiche in OpenCL wie global, lokal, konstant und privat zur Optimierung von Datenübertragungen und Speicherzugriffen
  • Steuerung der Work-Items, Work-Groups und ND-Ranges, die die Parallelität definieren, mittels des OpenCL-Ausführungsmodells
  • Debuggen und Testen von OpenCL-Programmen mit Tools wie CodeXL
  • Optimieren von OpenCL-Programmen durch Techniken wie Coalescing, Caching, Prefetching und Profiling

CUDA

  • Was ist CUDA?
  • Welche Vor- und Nachteile hat CUDA?
  • Einrichten der Entwicklungsumgebung für CUDA
  • Erstellen eines grundlegenden CUDA-Programms, das Vektoraddition durchführt
  • Verwenden der CUDA-API zur Abfrage von Geräteinformationen, Allokation und Deallokation des Geräte-Speichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernels und Synchronisieren von Threads
  • Verwenden der CUDA C/C++-Sprache zum Schreiben von Kernels, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden integrierter Funktionen, Variablen und Bibliotheken in CUDA für gängige Aufgaben und Operationen
  • Nutzen der Speicherbereiche in CUDA wie global, shared, konstant und local zur Optimierung von Datenübertragungen und Speicherzugriffen
  • Steuerung der Threads, Blöcke und Grids, die die Parallelität definieren, mittels des CUDA-Ausführungsmodells
  • Debuggen und Testen von CUDA-Programmen mit Tools wie CUDA-GDB, CUDA-MEMCHECK und NVIDIA Nsight
  • Optimieren von CUDA-Programmen durch Techniken wie Coalescing, Caching, Prefetching und Profiling

ROCm

  • Was ist ROCm?
  • Welche Vor- und Nachteile hat ROCm?
  • Einrichten der Entwicklungsumgebung für ROCm
  • Erstellen eines grundlegenden ROCm-Programms, das Vektoraddition durchführt
  • Verwenden der ROCm-API zur Abfrage von Geräteinformationen, Allokation und Deallokation des Geräte-Speichers, Kopieren von Daten zwischen Host und Gerät, Starten von Kernels und Synchronisieren von Threads
  • Verwenden der ROCm C/C++-Sprache zum Schreiben von Kernels, die auf dem Gerät ausgeführt werden und Daten manipulieren
  • Verwenden integrierter Funktionen, Variablen und Bibliotheken in ROCm für gängige Aufgaben und Operationen
  • Nutzen der Speicherbereiche in ROCm wie global, lokal, konstant und privat zur Optimierung von Datenübertragungen und Speicherzugriffen
  • Steuerung der Threads, Blöcke und Grids, die die Parallelität definieren, mittels des ROCm-Ausführungsmodells
  • Debuggen und Testen von ROCm-Programmen mit Tools wie dem ROCm Debugger und ROCm Profiler
  • Optimieren von ROCm-Programmen durch Techniken wie Coalescing, Caching, Prefetching und Profiling

Vergleich

  • Vergleich der Funktionen, Leistung und Kompatibilität von OpenCL, CUDA und ROCm
  • Bewertung von GPU-Programmen mittels Benchmarks und Metriken
  • Erlernen von Best Practices und Tipps für die GPU-Programmierung
  • Erkunden aktueller und zukünftiger Trends sowie Herausforderungen der GPU-Programmierung

Zusammenfassung und nächste Schritte

Voraussetzungen

  • Verständnis der C/C++-Sprache und paralleler Programmierungskonzepte
  • Grundkenntnisse in Computerarchitektur und Speicherhierarchie
  • Erfahrung mit Kommandozeilen-Tools und Code-Editoren

Zielgruppe

  • Entwickler, die lernen möchten, wie verschiedene Frameworks für die GPU-Programmierung genutzt werden können und deren Funktionen, Leistung und Kompatibilität vergleichen wollen
  • Entwickler, die portablen und skalierbaren Code schreiben möchten, der auf verschiedenen Plattformen und Geräten läuft
  • Programmierer, die die Vor- und Nachteile sowie Herausforderungen der GPU-Programmierung und Optimierung erkunden wollen
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien