Schulungsübersicht

Einführung

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

Einstieg

  • Erstellen eines OpenACC-Projekts in Visual Studio Code
  • Explorieren der Projektstruktur und Dateien
  • Kompilieren und Ausführen des Programms
  • Anzeigen von Ausgaben mit printf und fprintf

OpenACC-Direktiven und -Klauseln

  • Verstehen von OpenACC-Direktiven und -Klauseln
  • Verwenden paralleler Direktiven zur Erstellung paralleler Bereiche
  • Verwenden von Kernels-Direktiven für compilergesteuerte Parallelität
  • Verwenden von Schleifen-Direktiven zur Parallelisierung von Schleifen
  • Verwalten der Datenbewegung mit Daten-Direktiven
  • Synchronisieren von Daten mit Update-Direktiven
  • Verringern des Datenaufwands durch Cache-Direktiven
  • Erstellen von Gerätefunktionen mit Routine-Direktiven
  • Synchronisieren von Ereignissen mit Wait-Direktiven

OpenACC-API

  • Verstehen der Rolle der OpenACC-API
  • Abrufen von Geräteinformationen und -funktionen
  • Festlegen der Gerätenummer und -art
  • Behandeln von Fehlern und Ausnahmen
  • Erstellen und Synchronisieren von Ereignissen

OpenACC-Bibliotheken und Interoperabilität

  • Verstehen von OpenACC-Bibliotheken und -Interoperabilität
  • Verwenden mathematischer, zufälliger und komplexer Bibliotheken
  • Integration mit anderen Modellen (CUDA, OpenMP, MPI)
  • Integration mit GPU-Bibliotheken (cuBLAS, cuFFT)

OpenACC-Tools

  • Verstehen von OpenACC-Tools in der Entwicklung
  • Profilieren und Debuggen von OpenACC-Programmen
  • Leistungsanalyse mit PGI Compiler, NVIDIA Nsight Systems, Allinea Forge

Optimierung

  • Faktoren, die die Leistung von OpenACC-Programmen beeinflussen
  • Optimieren der Datenlokalisierung und Verringerung des Transfers
  • Optimieren der Schleifenparallelität und Fusion
  • Optimieren der Kernels-Parallelität und Fusion
  • Optimieren der Vektorisierung und Auto-Tuning

Zusammenfassung und Nächste Schritte

Voraussetzungen

  • Grundverständnis der C/C++- oder Fortran-Sprache und Parallelisierungskonzepte
  • Grundkenntnisse in Computerarchitektur und Speicherhierarchie
  • Erfahrung mit Befehlszeilenwerkzeugen und Codeeditoren

Zielgruppe

  • Entwickler, die lernen möchten, wie sie OpenACC verwenden können, um heterogene Geräte zu programmieren und deren Parallelität auszunutzen.
  • Entwickler, die portierbaren und skalierbaren Code schreiben möchten, der auf verschiedenen Plattformen und Geräten ausgeführt werden kann.
  • Programmierer, die die hohen Aspekte der heterogenen Programmierung erkunden und ihre Codeproduktivität optimieren möchten.
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien