Kontakt aufnehmen

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

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien