Cursusaanbod

Inleiding

  • Wat is OpenACC?
  • OpenACC versus OpenCL versus CUDA versus SYCL
  • Overzicht van OpenACC-functies en -architectuur
  • Het opzetten van de ontwikkelomgeving

Aan de slag gaan

  • Een OpenACC-project maken in Visual Studio Code
  • Projectstructuur en bestanden verkennen
  • Programma compileren en uitvoeren
  • Output weergeven met printf en fprintf

OpenACC-directives en -clausules

  • Begrip van OpenACC-directives en -clausules
  • Parallelle directieven gebruiken voor het creëren van parallelle regio's
  • Kernels-directieven gebruiken voor compilerbeheerd parallelisme
  • Lusdirectieven gebruiken voor lusparallelisering
  • Databeweging beheren met datadirectieven
  • Data synchroniseren met update-directieven
  • Data-gebruik verbeteren met cachecommando's
  • Apparaatfuncties creëren met routine-directieven
  • Evenementen synchroniseren met wait-directieven

OpenACC-API

  • Begrip van de rol van de OpenACC-API
  • Toestel-informatie en -capaciteiten opvragen
  • Toestelnummer en -type instellen
  • Fouten en uitzonderingen afhandelen
  • Evenementen creëren en synchroniseren

OpenACC-bibliotheken en interoperabiliteit

  • Begrip van OpenACC-bibliotheken en -interoperabiliteit
  • Math, random en complexe bibliotheken gebruiken
  • Incorporeren met andere modellen (CUDA, OpenMP, MPI)
  • Incorporeren met GPU-bibliotheken (cuBLAS, cuFFT)

OpenACC-tools

  • Begrip van de rol van OpenACC-tools in ontwikkeling
  • Programma's profileren en debuggeren met OpenACC
  • Prestatieanalyse met PGI Compiler, NVIDIA Nsight Systems, Allinea Forge

Optimalisatie

  • Factoren die de prestaties van een OpenACC-programma beïnvloeden
  • Data-lokaliteit optimaliseren en overdrachten verminderen
  • Lusparallelisme en -fusie optimaliseren
  • Kernel-parallelisme en -fusie optimaliseren
  • Vectrisering en auto-tuning optimaliseren

Samenvatting en volgende stappen

Vereisten

  • Een begrip van de C/C++ of Fortran-talen en parallelle programmeringconcepten
  • Basiswetenschap over computerarchitectuur en geheiershiërarchie
  • Ervaring met command-line-tools en code-editors

Doelgroep

  • Ontwikkelaars die willen leren hoe ze OpenACC kunnen gebruiken om heterogene apparaten te programmeren en hun parallelisme te benutten
  • Ontwikkelaars die portabel en schaalbaar code willen schrijven die op verschillende platforms en apparaten kan draaien
  • Programmeurs die de hoogniveauaspecten van heterogene programmering willen verkennen en hun codewerkzaamheden optimaliseren
 28 Uren

Aantal deelnemers


Prijs Per Deelnemer

Voorlopige Aankomende Cursussen

Gerelateerde categorieën