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

Résztvevők száma


Ár résztvevőnként

Vélemények (2)

Közelgő kurzusok

Rokon kategóriák