Vielen Dank für die Zusendung Ihrer Anfrage! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
Vielen Dank, dass Sie Ihre Buchung abgeschickt haben! Eines unserer Teammitglieder wird Sie in Kürze kontaktieren.
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