Kontakt aufnehmen

Schulungsübersicht

Einführung

  • Was ist OpenACC?
  • OpenACC im Vergleich zu OpenCL, CUDA und SYCL
  • Übersicht über die Funktionen und Architektur von OpenACC
  • Einrichten der Entwicklungsumgebung

Erste Schritte

  • Erstellen eines OpenACC-Projekts in Visual Studio Code
  • Erkunden der Projektstruktur und Dateien
  • Kompilieren und Ausführen des Programms
  • Ausgabe anzeigen mit printf und fprintf

OpenACC-Direktiven und Klauseln

  • Verstehen von OpenACC-Direktiven und Klauseln
  • Verwendung von Parallel-Direktiven zum Erstellen paralleler Bereiche
  • Verwendung von Kernels-Direktiven für Compiler-verwaltete Parallelität
  • Verwendung von Schleifendirektiven zum Parallelschalten von Schleifen
  • Datenbewegung mit Data-Direktiven verwalten
  • Synchronisation der Daten mit Update-Direktiven
  • Datenwiederverwendung durch Cache-Direktiven verbessern
  • Gerädefunktionen mit Routine-Direktiven erstellen
  • Ereignisse mit Wait-Direktiven synchronisieren

OpenACC-API

  • Rolle der OpenACC-API verstehen
  • Geräteinformationen und -fähigkeiten abfragen
  • Gerätenummer und -typ festlegen
  • Fehler und Ausnahmen behandeln
  • Ereignisse erstellen und synchronisieren

OpenACC-Bibliotheken und Interoperabilität

  • Bibliotheken von OpenACC und deren Interoperabilität verstehen
  • Verwendung der Mathematik-, Random- und Complex-Bibliotheken
  • Integration mit anderen Modellen (CUDA, OpenMP, MPI)
  • Integration mit GPU-Bibliotheken (cuBLAS, cuFFT)

OpenACC-Tools

  • Verstehen der Entwicklungstools für OpenACC
  • Profilieren und Debuggen von OpenACC-Programmen
  • Leistungsanalyse mit PGI Compiler, NVIDIA Nsight Systems, Allinea Forge

Optimierung

  • Faktoren, die die Leistung von OpenACC-Programmen beeinflussen
  • Datenlokalität optimieren und Übertragungen reduzieren
  • Schleifenparallelität und Fusion optimieren
  • Kernels-Parallelität und Fusion optimieren
  • Vektorisierung und Auto-Tuning optimieren

Zusammenfassung und nächste Schritte

Voraussetzungen

  • Verständnis der C/C++- oder Fortran-Sprache sowie parallel-programmierender Konzepte
  • Grundlegende Kenntnisse in Computerarchitektur und Speichersystemhierarchie
  • Erfahrung mit Befehlszeilen-Tools und Code-Editoren

Zielgruppe

  • Entwickler, die lernen möchten, wie man OpenACC zur Programmierung heterogener Geräte nutzt und deren Parallelität ausschöpft.
  • Entwickler, die portablen und skalierbaren Code schreiben möchten, der auf verschiedenen Plattformen und Geräten läuft.
  • Programmierer, die die höheren Aspekte des heterogenen Programmierens erkunden und ihre Produktivität bei der Codeoptimierung steigern möchten.
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien