Schulungsübersicht
Einleitung
Grundlagen der heterogenen Rechenmethodik verstehen
Warum paralleles Rechnen? Die Notwendigkeit von Parallelisierung im Überblick
Mehrkernprozessoren – Architektur und Aufbau
Einführung in Threads, Grundlagen sowie Konzepte der parallelen Programmierung
Grundlegendes zu Verfahrenen zur Optimierung von GPU-Software verstehen
OpenMP – Ein Standard für direktivbasiertes paralleles Programmieren
Praktische Übungen/Demonstration verschiedener Programme auf Mehrkern-Systemen
Einführung in das GPU-Computing
GPUs im Dienste paralleler Berechnungen
Das Programmiermodell für GPUs
Praktische Übungen/Demonstration verschiedener Programme auf GPUs
SDK, Werkzeugkasten sowie Einrichtung der GPU-Entwicklungsumgebung
Umgang mit diversen Bibliotheken
Demonstration von GPUs und zugehörigen Tools anhand von Beispielprogrammen samt OpenACC
Grundlagen des CUDA-Programmiermodells verstehen
Einblick in die CUDA-Architektur gewinnen
Konfiguration der CUDA-Entwicklungsumgebung vornehmen
Arbeiten mit der CUDA Runtime API
Das Speichermodell von CUDA verstehen
Zusätzliche Funktionen der CUDA-API erkunden
Effizienter Zugriff auf den globalen Speicher in CUDA: Optimierung des globalen Speichers
Datenübertragungen in CUDA durch Verwendung von CUDA Streams optimieren
Nutzung des Shared Memory in CUDA
Atomare Operationen und Anweisungen im Kontext von CUDA nutzen
Fallstudie: Grundlegende digitale Bildverarbeitung mithilfe von CUDA
Programmierung mit mehreren GPUs verstehen
Fortgeschrittenes Hardware-Profiling und Sampling bei NVIDIA/CUDA
Einsatz der CUDA Dynamic Parallelism API zur dynamischen Kernel-Initialisierung
Zusammenfassung und Abschlussreflexion
Voraussetzungen
- C-Programmierung
- Linux GCC
Erfahrungsberichte (1)
Die Energie und der Humor des Trainers.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurs - NVIDIA GPU Programming - Extended
Maschinelle Übersetzung