Kontakt aufnehmen

Schulungsübersicht

GPU-Computing und CUDA-Architektur

  • Architektonische Unterschiede zwischen CPU und GPU
  • Streaming-Multiprozessor-Modell der NVIDIA-GPU
  • Übersicht über das CUDA-Programmiermodell
  • Heterogenes Computing und das Host-Gerät-Paradigma

Einrichtung der CUDA-Entwicklungsumgebung

  • Installation des CUDA Toolkit 13.x
  • NVCC-Compiler und Build-Ablauf
  • Überprüfung der Umgebung mit Device Queries
  • IDE-Integration und Entwicklungstools

Schreiben und Aufrufen von CUDA-Kerneln

  • Syntax und Qualifikatoren für Kernel-Funktionen
  • Aufrufkonfiguration und Ausführung
  • Vektoraddition und grundlegende Datenparallel-Muster
  • CUDA-Fehlerprüfungs-Makros

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 (Single Instruction Multiple Threads)
  • Belegung und Ressourcenutilisierung

GPU-Speicherarchitektur und -Verwaltung

  • Speichertypen: global, shared, konstant, Register
  • Allokation und Freigabe von Gerätespeicher
  • Host-to-Device- und Device-to-Host-Übertragungen
  • Shared Memory für die Zusammenarbeit innerhalb eines Blocks

Unified Memory und Datenmigration

  • Unified Memory-Modell und verwaltete Allokationen
  • Seitenmigration und Paging on Demand
  • Asynchrones Vorausladen mit cudaMemPrefetchAsync
  • Speicherberatungshinweise (Memory Advice Hints) für Zugriffsmuster

Systemweites Profiling mit Nsight Systems

  • Analyse der Nsight Systems-Zeitleiste
  • Identifizierung von CPU-GPU-Synchronisationspunkten
  • Visualisierung der Kernel-Ausführung und Speicherübertragungen
  • Interpretation systemweiter Leistungsdaten

Kernel-Optimierung mit Nsight Compute

  • Interaktives Kernel-Profiling mit Nsight Compute
  • Analyse des Speicherdurchsatzes und der Bandbreite
  • Berechnungsutilisierung und Warp-Zustandsstatistiken
  • Geführte Analyse und Optimierungsregeln

Konkurrierende Streams und asynchrone Operationen

  • CUDA-Streams und der Standardstream
  • Überlappung der Kernel-Ausführung mit Datenübertragungen
  • Stream-Synchronisation und CUDA-Ereignisse
  • Muster für Multi-Stream-Pipelines

Fehlerbehandlung und Debugging-Tools

  • CUDA-API-Fehlercodes und Wiederherstellungsstrategien
  • Compute-Sanitizer zur Überprüfung des Speicherzugriffs
  • cuda-gdb zum Debuggen von Kerneln
  • Assertions und synchronen Fehlererkennung

Profiling-gesteuerter Optimierungsworkflow

  • Iterative Profilierungsmethodik
  • Identifizierung und Priorisierung von Engpässen
  • Testen auf Performance-Regression
  • Dokumentation der Optimierungsentcheidungen

End-to-End-Projekt für beschleunigte Anwendungen

  • Entwurf einer vollständigen GPU-beschleunigten Lösung
  • Integration des Profilings während der gesamten Entwicklung
  • Leistungsbenchmarking und Berichterstellung
  • Berücksichtigungen bei der Bereitstellung in Produktionsumgebungen

Voraussetzungen

  • Grundlegende C/C++-Programmierung Kenntnisse, einschließlich Variablentypen, Schleifen, bedingten Anweisungen, Funktionen und Array-Manipulationen
  • Vertrautheit mit dem Kompilieren und Ausführen von Programmen über die Befehlszeile
  • Keine vorherigen GPU- oder CUDA-Programmierkenntnisse erforderlich

Zielgruppe

  • Softwareentwickler und Ingenieure, die C/C++-Anwendungen mit GPUs beschleunigen möchten
  • Wissenschaftliche Forscher und HPC-Experten (High Performance Computing), die vom reinen CPU-Betrieb zur heterogenen Datenverarbeitung wechseln
  • Technische Führungskräfte, die GPU-Beschleunigung für Produktionsarbeitslasten evaluieren
 8 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien