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
GPU-Computing und CUDA-Architektur
- Unterschiede zwischen CPU- und GPU-Architekturen
- NVIDIA GPU Streaming Multiprocessor-Modell
- Übersicht über das CUDA-Programmiermodell
- Heterogenes Computing und das Host-Gerät-Paradigma
Einrichten der CUDA-Entwicklungsumgebung
- Installation des CUDA Toolkit 13.x
- NVCC-Compiler und Build-Workflow
- Überprüfen der Umgebung mit Geräteabfragen (device queries)
- IDE-Integration und Entwicklungswerkzeuge
Schreiben und Ausführen von CUDA-Kernels
- Syntax und Qualifier von Kernel-Funktionen
- Launch-Konfiguration und Ausführung
- Vektoraddition und grundlegende datenparallele Muster
- CUDA-Fehlerüberprüfungsmakros
CUDA-Thread-Hierarchie und Ausführungsmodell
- Organisation von Grid, Block und Thread
- Thread-Indizierung und Berechnung der globalen ID
- Warp-Ausführung und SIMT-Modell
- Oberfläche (Occupancy) und Ressourcenauslastung
GPU-Speicherarchitektur und -Management
- Speichertypen: Global, Shared, Constant, Register
- Zuweisung und Freigabe von Gerätespeicher
- Host-zu-Gerät- und Gerät-zu-Host-Übertragungen
- Shared Memory für die Zusammenarbeit innerhalb eines Blocks
Unified Memory und Datenmigration
- Unified Memory-Modell und verwaltete Zuordnungen (managed allocations)
- Seitenmigration und bedarfsorientiertes Paging
- Asynchrones Vorausladen mit cudaMemPrefetchAsync
- Speicherhinweise für Zugriffsmuster
Systemweites Profiling mit Nsight Systems
- Zeitstrahlanalyse in Nsight Systems
- Identifizierung von CPU-GPU-Synchronisationspunkten
- Visualisierung der Kernel-Ausführung und Datentransfers
- Interpretation systemweiter Leistungsdaten
Kernel-Optimierung mit Nsight Compute
- Interaktives Kernel-Profiling in Nsight Compute
- Analyse des Speicherthroughputs und der Bandbreite
- Berechnungsauslastung und Warp-Zustandsstatistiken
- Geführte Analyse und Optimierungshinweise
Koncurrent Streams und asynchrone Operationen
- CUDA-Streams und der Standard-Stream
- Überlappung der Kernel-Ausführung mit Datentransfers
- Stream-Synchronisation und CUDA-Ereignisse (events)
- Mehrstrom-Pipelining-Designmuster
Fehlerbehandlung und Debugging-Tools
- CUDA-API-Fehlercodes und Wiederherstellungsstrategien
- Compute-Sanitizer zur Überprüfung von Speicherzugriffen
- cuda-gdb zum Kernel-Debugging
- Assertions und synchrones Fehlererkennung
Profiling-basierte Optimierungsmethodik
- Iterative Profilierungsmethodik
- Identifizierung und Priorisierung von Engpässen
- Regressionstests der Leistung
- Dokumentation der Optimierungsentscheidungen
Vollständiges beschleunigtes Anwendungsprojekt
- Design einer vollständigen GPU-beschleunigten Lösung
- Integration des Profilings während der gesamten Entwicklung
- Leistungsbenchmarking und Berichterstattung
- Berücksichtigungen für die Produktion bei der Bereitstellung
Voraussetzungen
- Grundlegende C/C++-Programmierung einschließlich Variablentypen, Schleifen, bedingten Anweisungen, Funktionen und Array-Manipulationen
- Vertrautheit mit dem Kompilieren und Ausführen von Programmen über die Kommandozeile
- Keine Vorkenntnisse in GPU- oder CUDA-Programmierung erforderlich
Zielgruppe
- Softwareentwickler und Ingenieure, die C/C++-Anwendungen mit GPUs beschleunigen möchten
- Wissenschaftliche Forschende und HPC-Praktiker, die vom reinen CPU-Computing zum heterogenen Computing wechseln
- Technische Leitungskräfte, die GPU-Beschleunigung für Produktionsarbeitslasten evaluieren
8 Stunden