Kontakt aufnehmen

Schulungsübersicht

GPU-Computing und CUDA-Architektur

  • Unterschiede in der Architektur zwischen CPU und GPU
  • Streaming-Multiprozessor-Modell von NVIDIA-GPUs
  • Übersicht über das CUDA-Programmiermodell
  • Heterogenes Computing und das Host-Device-Paradigma

Einrichten der CUDA-Entwicklungsumgebung

  • Installieren des CUDA Toolkits 13.x
  • NVCC-Compiler und Build-Arbeitsablauf
  • Überprüfen der Umgebung mit Device-Abfragen
  • IDE-Integration und Entwicklungswerkzeuge

Schreiben und Starten von CUDA-Kernels

  • Syntax und Qualifizierer von Kernel-Funktionen
  • Startkonfiguration und Ausführung
  • Vektoraddition und grundlegende datenparallele 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
  • Besetzung (Occupancy) und Ressourcenutilisation

GPU-Speicherarchitektur und -Verwaltung

  • Speichertypen: Globaler Speicher, Shared Memory, konstante Daten, Register
  • Allokation und Freigabe des Gerätespeichers
  • Host-zu-Gerät- und Gerät-zu-Host-Übertragungen
  • Gemeinsamer Speicher (Shared Memory) für die Zusammenarbeit innerhalb eines Blocks

Unified Memory und Datenmigration

  • Unified-Speichermodell und verwaltete Allokationen
  • Seitenmigration und On-Demand-Paging
  • Asynchrones Vorpuffern mit cudaMemPrefetchAsync
  • Speicherhinweise (Memory Advice Hints) für Zugriffsmuster

Systemweites Profiling mit Nsight Systems

  • Zeitleistenanalyse in Nsight Systems
  • Identifizieren von CPU-GPU-Synchronisationspunkten
  • Visualisierung der Kernel-Ausführung und Speicherübertragungen
  • Interpretieren systemweiter Leistungsdaten

Kernel-Optimierung mit Nsight Compute

  • Interaktives Kernel-Profiling in Nsight Compute
  • Analyse des Speicher-Durchsatzes und der Bandbreite
  • Utilisation der Berechnungsressourcen und Warp-Zustandsstatistiken
  • Geführte Analyse und Optimierungshinweise

Gleichzeitige Streams und asynchrone Operationen

  • CUDA-Streams und der Standardstream
  • Überlappende Kernel-Ausführung mit Datenübertragungen
  • Stream-Synchronisation und CUDA-Ereignisse
  • Mehrstufige Pipeline-Designmuster

Fehlerbehandlung und Debugging-Werkzeuge

  • CUDA-API-Fehlercodes und Wiederherstellungsstrategien
  • Compute-sanitizer zur Überprüfung von Speicherzugriffen
  • cuda-gdb zum Debuggen von Kernels
  • Assertions und synchrone Fehlererkennung

Profilgesteuerte Optimierungsmethodik

  • Iterative Profiling-Methodik
  • Identifizierung und Priorisierung von Engpässen
  • Leistungstests zur Erkennung von Regressionen
  • Dokumentation von Optimierungsentscheidungen

Vollständige beschleunigte Anwendungsprojektarbeit

  • Entwurf einer vollständigen GPU-beschleunigten Lösung
  • Integration des Profilings während der gesamten Entwicklung
  • Leistungsbenchmarking und Berichterstellung
  • Berücksichtigungen für die Produktivbereitstellung

Voraussetzungen

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

Zielgruppe

  • Softwareentwickler und Ingenieure, die C/C++-Anwendungen mit GPUs beschleunigen möchten
  • Wissenschaftliche Forscher und HPC-Praktiker, die vom reinen CPU-Rechnung auf heterogene Computing-Umgebungen wechseln
  • Technische Führungskräfte, die GPU-Beschleunigung für Produktions-Workloads bewerten
 8 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien