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 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