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 nutzen?
- Welche Herausforderungen und Handelsgänge gibt es bei der GPU-Programmierung?
- Welche Frameworks gibt es für die GPU-Programmierung?
- Wie wählt man das richtige Framework für die Anwendung aus?
OpenCL
- Was ist OpenCL?
- Welche Vor- und Nachteile bietet OpenCL?
- Einrichten der Entwicklungsgebung für OpenCL
- Erstellen eines grundlegenden OpenCL-Programms, das Vektorsummen ausführt
- Verwenden der OpenCL-API, um Geräteinformationen abzufragen, Gerätespeicher zuzuweisen und freizugeben, Daten zwischen Host und Gerät zu kopieren, Kerne zu starten und Threads zu synchronisieren
- Verwenden der OpenCL-C-Sprache, um Kerne zu schreiben, die auf dem Gerät ausgeführt werden und Daten manipulieren.
- Verwenden der integrierten Funktionen, Variablen und Bibliotheken von OpenCL, um übliche Aufgaben und Operationen durchzuführen
- Verwenden der Speicherbereiche von OpenCL wie global, lokal, konstant und privat, um Datenübertragungen und Speicherzugriffe zu optimieren
- Verwenden des Ausführungsmodells von OpenCL, um die Work-Items, Work-Groups und ND-Ranges zu steuern, die die Parallelität definieren
- Debuggen und Testen von OpenCL-Programmen mit Werkzeugen wie CodeXL
- Optimieren von OpenCL-Programmen unter Verwendung von Techniken wie Konsolidierung, Zwischenspeicherung, Vorausladen und Profiling
CUDA
- Was ist CUDA?
- Welche Vor- und Nachteile bietet CUDA?
- Einrichten der Entwicklungsgebung für CUDA
- Erstellen eines grundlegenden CUDA-Programms, das Vektorsummen ausführt
- Verwenden der CUDA-API, um Geräteinformationen abzufragen, Gerätespeicher zuzuweisen und freizugeben, Daten zwischen Host und Gerät zu kopieren, Kerne zu starten und Threads zu synchronisieren
- Verwenden der CUDA-C/C++-Sprache, um Kerne zu schreiben, die auf dem Gerät ausgeführt werden und Daten manipulieren.
- Verwenden der integrierten Funktionen, Variablen und Bibliotheken von CUDA, um übliche Aufgaben und Operationen durchzuführen
- Verwenden der Speicherbereiche von CUDA wie global, shared, konstant und lokal, um Datenübertragungen und Speicherzugriffe zu optimieren
- Verwenden des Ausführungsmodells von CUDA, um die Threads, Blöcke und Gitter zu steuern, 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 unter Verwendung von Techniken wie Konsolidierung, Zwischenspeicherung, Vorausladen und Profiling
ROCm
- Was ist ROCm?
- Welche Vor- und Nachteile bietet ROCm?
- Einrichten der Entwicklungsgebung für ROCm
- Erstellen eines grundlegenden ROCm-Programms, das Vektorsummen ausführt
- Verwenden der ROCm-API, um Geräteinformationen abzufragen, Gerätespeicher zuzuweisen und freizugeben, Daten zwischen Host und Gerät zu kopieren, Kerne zu starten und Threads zu synchronisieren
- Verwenden der ROCm-C/C++-Sprache, um Kerne zu schreiben, die auf dem Gerät ausgeführt werden und Daten manipulieren.
- Verwenden der integrierten Funktionen, Variablen und Bibliotheken von ROCm, um übliche Aufgaben und Operationen durchzuführen
- Verwenden der Speicherbereiche von ROCm wie global, lokal, konstant und privat, um Datenübertragungen und Speicherzugriffe zu optimieren
- Verwenden des Ausführungsmodells von ROCm, um die Threads, Blöcke und Gitter zu steuern, die die Parallelität definieren
- Debuggen und Testen von ROCm-Programmen mit Werkzeugen wie ROCm Debugger und ROCm Profiler
- Optimieren von ROCm-Programmen unter Verwendung von Techniken wie Konsolidierung, Zwischenspeicherung, Vorausladen und Profiling
Vergleich
- Vergleichen der Eigenschaften, Leistung und Kompatibilität von OpenCL, CUDA und ROCm
- Auswerten von GPU-Programmen mit Benchmarks und Metriken
- Lernen der besten Praktiken und Tipps für die GPU-Programmierung
- Erkunden aktueller und zukünftiger Trends und Herausforderungen der GPU-Programmierung
Zusammenfassung und Nächste Schritte
Voraussetzungen
- Kenntnisse der C/C++-Sprache und Paralleler Programmierkonzepte
- Grundlegende Kenntnisse der Computerarchitektur und Speicherhierarchie
- Erfahrung mit Kommandozeilenwerkzeugen und Code-Editoren
Zielgruppe
- Entwickler, die lernen möchten, wie sie verschiedene Frameworks für GPU-Programmierung verwenden und ihre Eigenschaften, Leistung und Kompatibilität vergleichen.
- Entwickler, die lernen möchten, portierbaren und skalierbaren Code zu schreiben, der auf verschiedenen Plattformen und Geräten ausgeführt werden kann.
- Programmierer, die sich mit den Handelsgängen und Herausforderungen von GPU-Programmierung und -Optimierung vertraut machen möchten.
28 Stunden