3. delavnica NVIDIA: Nadgradnja aplikacij CUDA C++ na več vozlišč

#nvidia #GPU #HPC #CUDA #C #C++ #accelerated #computing #students #academia #wie #young #professionals
Share

Opis: Na tej delavnici se boste spoznali in preizkusili orodja in tehnike potrebne za razvoj aplikacij CUDA C/C++, ki se lahko učinkovito prilagajajo superračunalniškim gručam opremljenimi z grafičnimi procesorji NVIDIA. Na praktičnih primerih boste dopolnili programsko kodo in preizkusili njeno izvajanje v interaktivnem oblačnem okolju, ki vsebuje več grafičnih procesorjev NVIDIA. Spoznali boste nekaj osnovnih programskih metod, ki omogočajo učinkovito izvajanje takšnih aplikacij v računalnikih gručah. Pričeli bomo z uporabo klasičnega MPI programskega vmesnika (Vmesnika za posredovanje sporočil/ Message Passing Interface - MPI), ki je nadgrajen z arhitekturno rešitvijo CUDA, in potem nadaljevali z glavno tematiko tega tečaja, programskim vmesnikom NVSHMEM.

Podrobnejši opis: Sodobno visokozmogljivo računalništvo (HPC), aplikacije za globoko učenje in podobne zahtevajo za učinkovito delovanje računsko moč grafičnih procesnih enot (GPE) na ravni računalniških gruč in omrežij. Razvoj aplikacij s arhitekturno rešitvijo CUDA, ki omogoča učinkovito izrabo grafičnih procesnih enot v računalniških gručah, zahteva poseben nabor veščin. Na tej delavnici boste spoznali in praktično preizkusili nekaj orodij in tehnik, potrebnih za pisanje aplikacij s programskim ogrodjem CUDA C/C++, ki se lahko učinkovito prilagajajo izvajanju aplikacij v gručah opremljenimi z GPE NVIDIA.

Tekom delavnice boste dopolnili praktične primere kode napisane s programskim ogrodjem CUDA C/C++ in jo preizkusili v interaktivnem oblačnem okolju, ki podpira več GPE. Spoznali boste nekaj osnovnih programskih metod za delo z več GPE, vključno s programskim vmesnikom za posredovanje sporočil (MPI), ki ima vključeno podporo arhitekture CUDA, in z NVSHMEM, ki bo osrednja točka delavnice.

NVSHMEM je programski vmesnik za vzporedno izvajanje programov na distribuiranih okoljih, ki temelji na odprtokodni rešitvi OpenSHMEM in ki zagotavlja učinkovito in razširljivo komunikacijo na gručah opremljeni z grafičnimi procesorji NVIDIA. NVSHMEM ustvari skupni pomnilniški prostor za podatke, ki obsegajo pomnilnike več grafičnih procesorjev. Do tega pomnilniškega prostora lahko transparentno dostopajo grafične procesne enote, centralne procesne enote in operacije povezane s tokovi CUDA. Asinhroni prenos podatkov, ki ga NVSHMEM omogoča, zmanjša stroške sinhronizacije med CPE in GPE. NVSMEM omogoča tudi zaganjanje jeder, ki se izvajajo daljši čas in vključujejo tako komunikacijo med enotami in tudi računanje. S sem se zmanjšajo režijski stroški velikih aplikacij, ki se izvajajo na večjem številu vozlišč. NVSHMEM je je učinkovito uporabljen v najzmogljivejših superračunalniških sistemi, kot je superračunalnik Summit (Oak Ridge, Leadership Computing Facility), superračunalnik Sierra (Nacionalni laboratorija Lawrence Livermore) in superračunalniška rešitev podjetja NVIDIA, DGX A100.

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

Zahtevnost: Napredna

Jezik: Slovenski

Priporočeno predznanje: Srednje izkušnje s programiranjem aplikacij CUDA C/C++

Predlagani materiali za izpolnjevanje predpogojev: 

- Osnove pospešenega računalništva s CUDA C/C++ 

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

- Pospeševanje aplikacij CUDA C++ s sočasnimi tokovi 

- Osnovno znanje uporabe in izvajanja aplikacij na računalniških gručah

Ciljna publika: Razvijalci HPC, ki uporabljajo CUDA v omrežju ali oblaku.

Na izobraževanju pridobljena znanja:

  • Uporaba več metod za pisanje aplikacij s pomočjo programskega ogrodja CUDA C/C++ in z uporabo več grafičnih procesnih enot (GPE).
  • Uporaba različne komunikacijskih vzorcev ob uporabi več GPE in razumevanje posledic njihove uporabe in kompromisov.
  • Pisanje prenosljive in razširljive kode CUDA z eno-programske/več-podatkovne paradigme (SPMD) z uporabo protokola MPI, ki vključuje podporo za arhitekturo CUDA in protokola NVSHMEM.
  • Optimizacija kode z več GPE in paradigmo SPDM s simetričnim pomnilniškim modelom NVSHMEM in upoštevanjem zmožnosti in omejitev prenosa podatkov med več GPE.
  • Praktične izkušnje pri delu s pogostimi programskimi paradigmami aplikacij z več GPE, kot sta dekompozicija domenske množice podatkov in izmenjava podatkov, ki se med vozlišči prekrivajo.
  • Poznavanje različnih vidikov konfiguriranja in razširjanja aplikacij na gručah z vozlišči opremljenimi z GPE.

 

Omejitev števila udeležencev: 20

Virtualna lokacija: MS Teams



  Date and Time

  Location

  Hosts

  Registration



  • Date: 21 May 2024
  • Time: 10:00 AM to 06:00 PM
  • All times are (UTC+02:00) Ljubljana
  • Add_To_Calendar_icon Add Event to Calendar
If you are not a robot, please complete the ReCAPTCHA to display virtual attendance info.
  • Contact Event Hosts


  Speakers

Domen Verber

Email:

Jani Dugonik

Email:






Agenda

Delavnica: Prilagoditev globokega učenja CUDA za aplikacije C++ na več vozlišč - May 21,
2024 - May 21, 2024, MS Teams.
Daily Program: Tuesday, May 21, 2024


Session: Uvod (Spoznajte inštruktorja. Ustvarite račun na courses.nvidia.com/join.
Spoznajte svoje interaktivno okolje JupyterLab, ki ga pospešuje GPE.)
Time and Place: (10:00 AM - 10:15 AM)
Conveners: Domen Verber; Jani Dugonik

Session: Paradigme programiranja z več GPE (Raziščite več tehnik za programiranje
aplikacij CUDA C++ za več grafičnih procesorjev z uporabo Monte Carlo približka programa
CUDA C++. - Uporabite CUDA za uporabo več grafičnih procesorjev. - Naučite se omogočiti
in uporabljati neposredno pomnilniško komunikacijo enakovrednih. - Napišite različico
SPMD z MPI, ki podpira CUDA. )
Time and Place: (10:15 AM - 12:15 PM)

Session: Odmor
Time and Place: (12:15 PM - 1:15 PM)

Session: Uvod v NVSHMEM (Naučite se pisati kodo z NVSHMEM in razumeti njegov simetrični
spominski model. - Uporabite NVSHMEM za pisanje kode SPMD za več grafičnih procesorjev.
- Uporabite simetrični pomnilnik, da vsem GPE omogočite dostop do podatkov na drugih
GPE. - Izvajajte prenose pomnilnika, ki jih sproži GPE.)
Time and Place: (1:15 PM - 3:15 PM)

Session: Odmor
Time and Place: (3:15 PM - 3:30 PM)

Session: Izmenjave Halo z NVSHMEM (Vadite pogoste motive kodiranja, kot so izmenjave
halojev in dekompozicija domen z uporabo NVSHMEM, in delajte na oceni. - Napišite
implementacijo NVSHMEM Jacobijevega reševalca Laplaceove enačbe. - Refaktorirajte enojni
reševalec valovnih enačb GPE 1D z NVSHMEM. - Opravite oceno in pridobite certifikat.)
Time and Place: (3:30 PM - 5:00 PM)

Session: Končni pregled (- Spoznajte kompromise aplikacij pri gručah GPE. - Preglejte
ključna spoznanja in odgovorite na vprašanja. - Izpolnite anketo na delavnici.)
Time and Place: (5:00 PM - 5:45 PM)