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

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