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
Introductie
- Wat is OpenACC?
- OpenACC vs OpenCL vs CUDA vs SYCL
- Overzicht van OpenACC-functies en -architectuur
- Opzetten van de ontwikkelomgeving
Slag
- Een nieuw OpenACC-project maken met behulp van Visual Studio Code
- Verkennen van de projectstructuur en bestanden
- Samenstellen en uitvoeren van het programma
- Weergave van de uitvoer met printf en fprintf
OpenACC-richtlijnen en -clausules
- Inzicht in de rol van OpenACC-richtlijnen en -clausules in de host- en apparaatcode
- OpenACC parallelle richtlijn en clausules gebruiken om parallelle regio's te maken en het aantal bendes, workers en vectoren te specificeren
- OpenACC kernels directive en clauses gebruiken om kernels regio's te maken en de compiler het parallellisme te laten bepalen
- OpenACC-lusinstructie en -clausules gebruiken om lussen te parallelliseren en de lusverdeling, samenvouwing, reductie en tegel te specificeren
- OpenACC-gegevensrichtlijnen en -clausules gebruiken om gegevensverplaatsing en gegevensregio's te beheren
- OpenACC-updaterichtlijnen en -clausules gebruiken om gegevens tussen de host en het apparaat te synchroniseren
- OpenACC-cache-instructies en -clausules gebruiken om het hergebruik en de lokalisatie van gegevens te verbeteren
- OpenACC-routinerichtlijnen en -clausules gebruiken om apparaatfuncties te maken en het functietype en de vectorlengte te specificeren
- OpenACC-wachtinstructie en -clausules gebruiken om gebeurtenissen en afhankelijkheden te synchroniseren
OpenACC-API
- Inzicht in de rol van OpenACC API in het hostprogramma
- OpenACC API gebruiken om apparaatinformatie en -mogelijkheden op te vragen
- OpenACC API gebruiken om apparaatnummer en apparaattype in te stellen
- OpenACC API gebruiken om fouten en uitzonderingen af te handelen
- OpenACC API gebruiken om gebeurtenissen te maken en te synchroniseren
OpenACC-bibliotheken en interoperabiliteit
- Inzicht in de rol van OpenACC-bibliotheken en interoperabiliteitsfuncties in het apparaatprogramma
- OpenACC-bibliotheken gebruiken, zoals wiskundige, willekeurige en complexe, om algemene taken en bewerkingen uit te voeren
- OpenACC-interoperabiliteitsfuncties gebruiken, zoals deviceptr, use_device en acc_memcpy, om OpenACC te integreren met andere programmeermodellen, zoals CUDA, OpenMP en MPI
- OpenACC-interoperabiliteitsfuncties gebruiken, zoals host_data en declareren, om OpenACC te integreren met GPU-bibliotheken, zoals cuBLAS en cuFFT
OpenACC-hulpprogramma's
- Inzicht in de rol van OpenACC-tools in het ontwikkelingsproces
- OpenACC-tools gebruiken om OpenACC-programma's te profileren en te debuggen en prestatieknelpunten en -kansen te identificeren
- OpenACC-tools gebruiken, zoals PGI Compiler, NVIDIA Nsight Systems en Allinea Forge, om de uitvoeringstijd en het gebruik van resources te meten en te verbeteren
Optimalisering
- Inzicht in de factoren die van invloed zijn op de prestaties van OpenACC-programma's
- OpenACC-richtlijnen en -clausules gebruiken om de gegevenslokalisatie te optimaliseren en gegevensoverdrachten te verminderen
- OpenACC-richtlijnen en -clausules gebruiken om lusparallellisme en fusie te optimaliseren
- OpenACC-richtlijnen en -clausules gebruiken om kernelparallellisme en fusie te optimaliseren
- OpenACC-richtlijnen en -clausules gebruiken om vectorisatie en auto-tuning te optimaliseren
Samenvatting en volgende stappen
Vereisten
- Een goed begrip van C/C++ of Fortran taal en parallelle programmeerconcepten
- Basiskennis van computerarchitectuur en geheugenhiërarchie
- Ervaring met command-line tools en code editors
Audiëntie
- Ontwikkelaars die willen leren hoe ze OpenACC kunnen gebruiken om heterogene apparaten te programmeren en hun parallellisme te benutten
- Ontwikkelaars die draagbare en schaalbare code willen schrijven die op verschillende platforms en apparaten kan worden uitgevoerd
- Programmeurs die de high-level aspecten van heterogeen programmeren willen verkennen en hun codeproductiviteit willen optimaliseren
28 Uren
Testimonials (2)
Zeer interactief met diverse voorbeelden, met een goede progressie in complexiteit tussen start en einde van de training.
Jenny - Andheo
Cursus - GPU Programming with CUDA and Python
Automatisch vertaald
Trainers, energie en humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Cursus - NVIDIA GPU Programming - Extended
Automatisch vertaald