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

 28 Hours

Résztvevők száma



Ár per résztvevő

Vélemények (1)

Rokon tanfolyam

GPU Programming with OpenCL

28 Hours

GPU Programming with CUDA

28 Hours

GPU Programming - OpenCL vs CUDA vs ROCm

28 Hours

AMD GPU Programming

28 Hours

ROCm for Windows

21 Hours

Introduction to GPU Programming

21 Hours

Rokon kategóriák