Delavnica: Pospeševanje aplikacij CUDA C++ z več grafičnimi procesorji

Europe/Ljubljana
MS Teams

MS Teams

Domen Verber, Jani Dugonik
Description

Opis: Na delavnici boste spoznali kako izdelati aplikacijo v programskem ogrodju CUDA C/C++, ki učinkovito izkorišča vse razpoložljive grafične procesorje nameščene v lokalnem strežniku oziroma v enem od vozlišč visoko zmogljivega računalniškega centra. To lahko bistveno poveča zmogljivost vaših aplikacij in omogoča stroškovno učinkovito uporabo sistemov z več grafičnimi procesorji.

Podrobnejši opis: Programsko ogrodje CUDA C++ omogoča učinkovito izrabo grafičnih procesorjev za pospešitev delovanja računsko intenzivnih aplikacij na področjih kot so visokozmogljivo računalništvo, podatkovna znanost, bioinformatika, globoko učenje in drugje. Z sočasno uporabo več grafičnih pospeševalnikov lahko bistveno povečamo prepustnost oziroma skrajšamo skupni čas izvajanja opravil v primerjavi z uporabo ene pospeševalne enote. Dodatno lahko, s sočasnim prekrivanjem prenosa podatkov in računskih opravil, bistveno zmanjšajmo vpliv omejitve hitrosti prenosa podatkov med CPE in GPE. Kombinacija obeh tehnik nam omogoča maksimalno učinkovitost za strežnike z več grafičnimi pospeševalniki, bodisi v oblaku, omrežju ali lokalnih sistemih. Implementacija tehnik z več grafičnimi pospeševalniki na enem vozlišču je bistvenega pomena tudi za nadgradnjo aplikacij, ki se bodo izvajale na več vozliščih.

Potek izobraževanja: Delavnica bo potekala na daljavo preko brskalnika na oblačni infrastrukturi AWS.

Zahtevnost: Napredna

Jezik: Slovenski

Priporočeno predznanje: Praktično izkušnje s programiranjem aplikacij v programskem ogrodju CUDA C/C++, vključno z uporabo prevajalnika nvcc, zagonom jedra, pospešitvijo izvajanja zank, prenosi pomnilnika med napravami ter obravnave napak. Poznavanje ukazne vrstice Linux. Izkušnje z uporabo datotek Make za prevajanje kode C/C++.

Ciljna publika: Razvijalci visokozmogljivih aplikacij, ki uporabljajo programsko ogrodje CUDA lokalno ali v oblaku.

Na izobraževanju pridobljena znanja:

  • Kako uporabiti tokove CUDA za prekrivanje prenosov podatkov z izvajanjem jeder na grafičnih procesorjih,
  • kako učinkoviti uporabiti vse razpoložljive grafične procesorje na enem vozlišču,
  • kako učinkovito združiti uporabo tehnike prekrivanja faz kopiranja podatkov in izračuna z uporabo več grafičnimi procesorjev, in
  • kako uporabiti orodje NVIDIA Nsight™ Systems Visual Profiler za analizo in izboljšanje uporabe tehnik, obravnavanih na delavnici.

 

Omejitev števila udeležencev: 20

Virtualna lokacija: MS Teams

Organizator:

 


Predavatelji:

Ime:Domen Verber
Opis:Domen Verber je docent na Fakulteti za elektrotehniko in računalništvo Univerze v Mariboru (UM FERI) ter ambasador NVIDIA Deep Learning Institute za Univerzo v Mariboru in njihov specialist za umetno inteligenco in HPC. S problematiko HPC in umetne inteligence se ukvarja že več kot 25 let.
 domen.verber@um.si, deep.learning@um.si

 

Ime:Jani Dugonik
Opis:Jani Dugonik je raziskovalec na Fakulteti za elektrotehniko, računalništvo in informatiko Univerze v Mariboru (UM FERI). Že več kot 10 let dela na področju obdelave naravnega jezika (predvsem strojnega prevajanja) in evolucijskih algoritmov.
 jani.dugonik@um.si

    • Uvod (Spoznajte inštruktorja. Ustvarite račun na courses.nvidia.com/join. Spoznajte svoje interaktivno okolje JupyterLab, ki ga pospešuje GPE.)
      Conveners: Domen Verber, Jani Dugonik
    • Pregled aplikacije (Usmerite se z eno samo aplikacijo GPU CUDA C++, ki bo izhodišče za tečaj. Opazujte trenutno zmogljivost posamezne aplikacije GPU CUDA C++ z uporabo Nsight Systems.)
    • Uvod v tokove CUDA (- Naučite se pravil, ki urejajo sočasno vedenje toka CUDA. - Uporabite več tokov CUDA za izvajanje hkratnih prenosov pomnilnika od gostitelja do naprave in od naprave do gostitelja. - Uporabite več tokov CUDA za zagon jeder GPE. - Opazujte več tokov v pogledu časovne osi Nsight Systems Visual Profiler.)
    • Odmor
    • Prekrivanje kopiranja/računanja s tokovi CUDA (- Naučite se ključnih konceptov za učinkovito izvajanje prekrivanja kopiranja/računanja. - Raziščite zanesljive strategije indeksiranja za prilagodljivo uporabo prekrivanja kopiranja/računanja v aplikacijah. - Preoblikujte aplikacijo CUDA C++ z enim GPE-jem za izvedbo prekrivanja kopiranja/računanja. - Oglejte si prekrivanje kopiranja/računanja na časovnici vizualnega profilerja Nsight Systems.)
    • Več grafičnih procesorjev s CUDA C++ (- Naučite se ključnih konceptov za učinkovito uporabo več grafičnih procesorjev na enem vozlišču s CUDA C++. - Raziščite robustne strategije indeksiranja za prilagodljivo uporabo več grafičnih procesorjev v aplikacijah. - Preoblikujte aplikacijo CUDA C++ z enim GPE-jem za uporabo več GPE. - Oglejte si uporabo več grafičnih procesorjev na časovnici Nsight Systems Visual Profiler.)
    • Odmor
    • Prekrivanje kopiranja/računanja z več grafičnimi procesorji (- Naučite se ključnih konceptov za učinkovito izvajanje prekrivanja kopiranja/računanja na več grafičnih procesorjih. - Raziščite robustne strategije indeksiranja za prilagodljivo uporabo prekrivanja kopiranja/računanja na več grafičnih procesorjih. - Preoblikujte aplikacijo CUDA C++ z enim GPE-jem za izvajanje prekrivanja kopiranja/računanja na več GPE-jih. - Opazujte prednosti zmogljivosti za prekrivanje kopiranja/računanja na več grafičnih procesorjih. - Oglejte si prekrivanje kopiranja/računanja na več grafičnih procesorjih na časovnici vizualnega profilerja Nsight Systems. )
    • Ocena tečaja (Opravite nalogo za oceno in pridobite certifikat.)
    • Končni pregled (- Pregled ključnih spoznanj. - Naučite se zgraditi svoje okolje za usposabljanje iz vsebnika osnovnega okolja DLI. - Izpolnite anketo na delavnici. )