Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
Cursusaanbod
Inleiding
- Wat is OpenACC?
- OpenACC vergeleken met OpenCL, CUDA en SYCL
- Overzicht van de mogelijkheden en architectuur van OpenACC
- Het instellen van een ontwikkelomgeving
Aan de slag
- Een OpenACC-project aanmaken in Visual Studio Code
- De projectstructuur en bestanden verkennen
- Het programma compileren en uitvoeren
- Uitvoer weergeven met printf en fprintf
OpenACC-directieven en clausules
- Inzicht krijgen in OpenACC-directieven en clausules
- Parallelle directieven gebruiken om parallelle regio’s te creëren
- Kernel-directieven gebruiken voor door de compiler beheerde parallelisme
- Loop-directieven gebruiken om lussen parallel te maken
- Gegevensbeweging beheren met data-directieven
- Gegevens synchroniseren met update-directieven
- Gegevenshergebruik verbeteren met cache-directieven
- Apparatafhankelijke functies maken met routine-directieven
- Gebeurtenissen synchroniseren met wait-directieven
OpenACC-API
- Inzicht in de rol van de OpenACC-API
- Informatie en mogelijkheden van apparaten opvragen
- Het selecteren van een apparaattype en -nummer
- Fouten en uitzonderingen afhandelen
- Gebeurtenissen aanmaken en synchroniseren
Bibliotheken en interoperabiliteit in OpenACC
- Inzicht krijgen in OpenACC-bibliotheken en hun interoperabiliteit
- Wiskundige, willekeurige getal- en complexe bibliotheken gebruiken
- Integratie met andere modellen (CUDA, OpenMP, MPI)
- Integratie met GPU-bibliotheken zoals cuBLAS en cuFFT
Gebruik van tools voor OpenACC
- Inzicht krijgen in hulpmiddelen voor ontwikkeling met OpenACC
- OpenACC-programma’s profileren en debuggen
- Prestatieanalyse uitvoeren met PGI Compiler, NVIDIA Nsight Systems en Allinea Forge
Optimalisatie
- Factoren die de prestaties van OpenACC-programma’s beïnvloeden
- Gegevenslocatie optimaliseren en gegevensoverdracht verminderen
- Parallelisme in lussen verbeteren en luss fusie optimaliseren
- Kernel-parallelisme en -fusie verder optimaliseren<\/li>
- Vectorisering en automatische tuning verbeteren
Samenvatting en volgende stappen
Vereisten
- Grondige kennis van C/C++ of Fortran, evenals begrip van parallelle programmeringstechnieken
- Basiskennis van computerarchitectuur en de hiërarchie van het geheugen
- Ervaring met commandoregeltools en code-editors
Doelgroep
- Ontwikkelaars die leren hoe ze OpenACC kunnen gebruiken voor het programmeren op heterogene apparaten en hun parallelisme optimaliseren
- Ontwikkelaars die draagbare en schaalbare code willen schrijven die op verschillende platforms en apparaten werkt
- Programmeurs die de hogere aspecten van heterogeen programmeren willen verkennen en hun productiviteit door optimalisatie wil verhogen
28 Uren