Köszönjük, hogy elküldte érdeklődését! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
Köszönjük, hogy elküldte foglalását! Csapatunk egyik tagja hamarosan felveszi Önnel a kapcsolatot.
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 Órák
Vélemények (2)
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
Gépi fordítás
Edzők energia és humor.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Kurzus - NVIDIA GPU Programming - Extended
Gépi fordítás