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
  • Erforschung der Projektstruktur und Dateien
  • Kompilieren und Ausführen des Programms
  • Ausgabe anzeigen mit printf und fprintf

OpenACC-Anweisungen und Klauseln

  • Verständnis von OpenACC-Anweisungen und Klauseln
  • Verwendung paralleler Anweisungen zur Erstellung paralleler Regionen
  • Verwendung von Kernels-Anweisungen für compiler-gesteuerte Parallelität
  • Verwendung von Schleifenanweisungen zur Parallelisierung von Schleifen
  • Verwaltung der Datenbewegung mit Datendirektiven
  • Synchronisieren von Daten mit Update-Direktiven
  • Verbesserung der Wiederverwendung von Daten durch Cache-Direktiven
  • Erstellung von Gerätefunktionen mit Routinen-Direktiven
  • Synchronisation von Ereignissen mit Wait-Direktiven

OpenACC-API

  • Verständnis der Rolle der OpenACC-API
  • Abfrage von Geräteinformationen und -fähigkeiten
  • Festlegen der Gerätenummer und des Typs
  • Behandlung von Fehlern und Ausnahmen
  • Erstellung und Synchronisation von Ereignissen

OpenACC-Bibliotheken und Interoperabilität

  • Verständnis der OpenACC-Bibliotheken und Interoperabilität
  • Nutzung mathematischer, Zufalls- und komplexer Bibliotheken
  • Integration mit anderen Modellen (CUDA, OpenMP, MPI)
  • Integration mit GPU-Bibliotheken (cuBLAS, cuFFT)

OpenACC-Tools

  • Verständnis der OpenACC-Tools in der Entwicklung
  • Profiling und Debugging von OpenACC-Programmen
  • Leistungsanalyse mit PGI-Compiler, NVIDIA Nsight Systems, Allinea Forge

Optimierung

  • Faktoren, die die Leistung von OpenACC-Programmen beeinflussen
  • Optimierung der Datenlokalität und Reduzierung von Übertragungen
  • Parallelisierung und Fusion von Schleifen
  • Parallelisierung und Fusion von Kernels
  • Optimierung der Vektorisierung und Auto-Tuning

Zusammenfassung und weitere Schritte

Voraussetzungen

  • Grundkenntnisse in C/C++ oder Fortran sowie Konzepte der parallelen Programmierung
  • Grundlagenwissen über Computerarchitektur und Speicherkonzepte
  • 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 ausnutzt
  • Entwickler, die portierbaren und skalierbaren Code schreiben möchten, der auf verschiedenen Plattformen und Geräten läuft
  • Programmierer, die die höherstufigen Aspekte der heterogenen Programmierung erkunden und ihre Produktivität beim Coden optimieren wollen
 28 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Kommende Kurse

Verwandte Kategorien