Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Kurzusleírás
Bevezetés
- Mi az az OpenACC?
- OpenACC vs OpenCL vs CUDA vs SYCL
- Az OpenACC szolgáltatásainak és architektúrájának áttekintése
- A Fejlesztési Környezet kialakítása
Elkezdeni
- Új OpenACC projekt létrehozása Visual Studio kóddal
- A projekt szerkezetének és fájljainak feltárása
- A program összeállítása és futtatása
- A kimenet megjelenítése a printf és fprintf használatával
OpenACC irányelvek és záradékok
- Az OpenACC direktívák és záradékok szerepének megértése a gazdagép- és eszközkódban
- OpenACC párhuzamos direktíva és záradékok használata párhuzamos régiók létrehozására és a bandák, munkások és vektorok számának megadására
- OpenACC kernels direktíva és záradékok használata kernel régiók létrehozásához, és hagyja, hogy a fordító döntse el a párhuzamosságot
- OpenACC loop direktíva és záradékok használata a ciklusok párhuzamosításához, valamint a hurok eloszlásának, összecsukásának, redukciójának és csempéjének megadásához
- OpenACC adatirányelv és záradékok használata adatmozgás és adatrégiók kezelésére
- OpenACC frissítési direktíva és záradékok használata az adatok szinkronizálására a gazdagép és az eszköz között
- OpenACC gyorsítótár direktíva és záradékok használata az adatok újrafelhasználásának és helyének javítására
- OpenACC rutin direktíva és záradékok használata eszközfüggvények létrehozására, valamint a függvény típusának és vektorhosszának megadására
- OpenACC várakozási utasítás és záradékok használata az események és függőségek szinkronizálására
OpenACC API
- Az OpenACC API szerepének megértése a gazdagép programban
- OpenACC API használata eszközinformációk és képességek lekérdezésére
- OpenACC API használata az eszköz számának és típusának beállításához
- OpenACC API használata a hibák és kivételek kezelésére
- OpenACC API használata események létrehozására és szinkronizálására
OpenACC könyvtárak és együttműködési képesség
- Az OpenACC könyvtárak és az interoperabilitási funkciók szerepének megértése az eszközprogramban
- OpenACC könyvtárak, például matematikai, véletlenszerű és összetett könyvtárak használata általános feladatok és műveletek végrehajtására
- Az OpenACC interoperabilitási szolgáltatásai, például a deviceptr, a use_device és acc_memcpy használata az OpenACC integrálására más programozási modellekkel, mint például a CUDA, OpenMP és MPI
- Az OpenACC interoperabilitási szolgáltatásai, például a host_data és a deklaráció használata az OpenACC integrálására GPU könyvtárakkal, például cuBLAS és cuFFT
OpenACC eszközök
- Az OpenACC eszközök szerepének megértése a fejlesztési folyamatban
- OpenACC-eszközök használata az OpenACC-programok profiljához és hibakereséséhez, valamint a teljesítmény szűk keresztmetszete és lehetőségei azonosításához
- OpenACC-eszközök, például a PGI Compiler, az NVIDIA Nsight Systems és az Allinea Forge használata a végrehajtási idő és az erőforrás-kihasználás mérésére és javítására
Optimalizálás
- Az OpenACC programok teljesítményét befolyásoló tényezők megértése
- OpenACC direktívák és záradékok használata az adatok helyének optimalizálására és az adatátvitel csökkentésére
- OpenACC direktívák és záradékok használata a hurok párhuzamosságának és fúziójának optimalizálására
- OpenACC direktívák és záradékok használata a kernel párhuzamosságának és fúziójának optimalizálására
- OpenACC direktívák és záradékok használata a vektorizálás és az automatikus hangolás optimalizálására
Összegzés és a következő lépések
Követelmények
- A C/C++ vagy Fortran nyelv és a párhuzamos programozási koncepciók ismerete
- Számítógép-architektúra és memóriahierarchia alapismeretei
- Parancssori eszközökben és kódszerkesztőkben szerzett tapasztalat
Közönség
- Fejlesztők, akik szeretnék megtanulni az OpenACC használatát heterogén eszközök programozására és párhuzamosságuk kihasználására
- Fejlesztők, akik hordozható és méretezhető kódot szeretnének írni, amely különböző platformokon és eszközökön futhat
- Programozók, akik szeretnék felfedezni a heterogén programozás magas szintű aspektusait, és optimalizálni szeretnék kódjuk termelékenységét
28 Hours
Vélemények (1)
Nagyon interaktív különféle példákkal, a képzés kezdete és vége között jó összetettséggel.
Jenny - Andheo
Kurzus - GPU Programming with CUDA and Python
Machine Translated