Differences

This shows you the differences between two versions of the page.

Link to this comparison view

asc:laboratoare:04 [2024/03/28 14:19]
matei.barbu1905
asc:laboratoare:04 [2025/03/26 11:44] (current)
alexandru.bala [Aplicatie compute CUDA]
Line 7: Line 7:
 Succesorul chipurilor de prelucrare grafică din jocurile aracade, procesoarul grafic, acronim **GPU** (**G**raphics **P**rocessing **U**nit), este un circuit electronic, specializat,​ în crearea și manipularea imaginilor trimise către un afișaj electronic (e.g. monitor). Succesorul chipurilor de prelucrare grafică din jocurile aracade, procesoarul grafic, acronim **GPU** (**G**raphics **P**rocessing **U**nit), este un circuit electronic, specializat,​ în crearea și manipularea imaginilor trimise către un afișaj electronic (e.g. monitor).
  
-Utilitatea lui s-a extins ulterior către probleme "​embarrassingly parallel",​ iar în astăzi sunt folosite la antrenarea ​antrenarea rețelelor neurale și minarea de criptomonede. Vorbim aici despre întrebuințarea unui **GPGPU** (**G**eneral **P**urpose GPU), un procesor grafic cu o flexibilitate ridicată de programare, capabil de a rezolva și probleme generale.+Utilitatea lui s-a extins ulterior către probleme "​embarrassingly parallel",​ iar astăzi sunt folosite la antrenarea rețelelor neurale și minarea de criptomonede. Vorbim aici despre întrebuințarea unui **GPGPU** (**G**eneral **P**urpose GPU), un procesor grafic cu o flexibilitate ridicată de programare, capabil de a rezolva și probleme generale.
  
 ==== Teorie ==== ==== Teorie ====
Line 40: Line 40:
   * Vivante http://​en.wikipedia.org/​wiki/​Vivante_Corporation   * Vivante http://​en.wikipedia.org/​wiki/​Vivante_Corporation
  
-Dacă un IP de GPU este integrat pe aceeași //pastilă de siliciu// a unui SoC (**S**ystem-**o**n-a-**C**hip),​ spunem că este un GPU integrat. Exemple de SoC-uri cu IP de GPU integrat includ procesoarele x86 Intel/AMD, cât și majoritatea SoC-urilor pentru dispozitive mobile bazate pe arhitectura ARM (ex. Qualcomm Snapdragon). Un GPU integrat împarte ierarhia de memorie cu alte IP-uri (exp. controllere PCIe/​USB/​SATA/​ETH).+Dacă un IP de GPU este integrat pe aceeași //pastilă de siliciu// a unui SoC (**S**ystem-**o**n-a-**C**hip),​ spunem că este un GPU integrat. Exemple de SoC-uri cu IP de GPU integrat includ procesoarele x86 Intel/AMD, cât și majoritatea SoC-urilor pentru dispozitive mobile bazate pe arhitectura ARM (ex. Qualcomm Snapdragon). Un GPU integrat împarte ierarhia de memorie cu alte IP-uri (ex. controllere PCIe/​USB/​SATA/​ETH).
  
-De altfel, un GPU dedicat (discrete GPU) presupune valorificarea unei unui spațiu de memorie, mapat peste **VRAM** (**V**ideo **R**andom-**A**ccess **M**emory),​ cât și o magistrală PCIe/​AGP8x/​USB pentru ​comunicare ​cu sistemul. Exemple de GPU-uri dedicate sunt seriile de plăci grafice Geforce (Nvidia) și Radeon (AMD).+De altfel, un GPU dedicat (discrete GPU) presupune valorificarea unei unui spațiu de memorie, mapat peste **VRAM** (**V**ideo **R**andom-**A**ccess **M**emory),​ cât și o magistrală PCIe/​AGP8x/​USB pentru ​comunicarea ​cu sistemul. Exemple de GPU-uri dedicate sunt seriile de plăci grafice Geforce (Nvidia) și Radeon (AMD).
  
 {{:​asc:​lab10:​dgpu_igpu.png?​direct&​750|}} {{:​asc:​lab10:​dgpu_igpu.png?​direct&​750|}}
Line 115: Line 115:
 Știind versiunea majoră și cea minoră cunoaștem facilitățile hardware oferite de către arhitectură. Știind versiunea majoră și cea minoră cunoaștem facilitățile hardware oferite de către arhitectură.
  
-O listă a GPU-urile NVIDIA și versiunile lor majore/​minore se regăsește [[https://​developer.nvidia.com/​cuda-gpus|aici]].+O listă a GPU-urilor ​NVIDIA și versiunile lor majore/​minore se regăsește [[https://​developer.nvidia.com/​cuda-gpus|aici]].
  
 ===== Programarea in CUDA ===== ===== Programarea in CUDA =====
Line 201: Line 201:
 O aplicatie CUDA are ca scop executia de cod pe GPU-uri NVIDIA CUDA. O aplicatie CUDA are ca scop executia de cod pe GPU-uri NVIDIA CUDA.
 In cadrul laboratoarelor partea de CPU (host) va fi folosita exclusiv pentru managementul executiei partii de GPU (device). In cadrul laboratoarelor partea de CPU (host) va fi folosita exclusiv pentru managementul executiei partii de GPU (device).
-Aplicatiilor ​vor viza executia folosind un singur GPU NVIDIA CUDA.+Aplicatiile ​vor viza executia folosind un singur GPU NVIDIA CUDA.
  
 ==== 0. Definire functie kernel ==== ==== 0. Definire functie kernel ====
Line 345: Line 345:
  
 {{:​asc:​lab7:​cuda-nvcc.png?​480|}} {{:​asc:​lab7:​cuda-nvcc.png?​480|}}
 +
 +<note important>​
 +Pentru editarea fișierelor pe cluster, recomandam sa va montați sistemul de pe fep8 pe mașină locală. Pașii sunt detaliați mai jos - multumiri lui Radu Millo pentru redactare.
 +
 +Tutorial chei ssh: https://​www.ssh.com/​academy/​ssh/​keygen
 +
 +Pe fep8, din directorul vostru home (''​%%~%%''​),​ dați comanda:
 +<code sh>
 +mkdir asc
 +cd asc
 +pwd # acesta va returna <​cale_absolută_director_asc_fep8>​
 +</​code>​
 +
 +Tutorial montare filesystem din fep pe local - comenzi date pe local:
 +<code sh>
 +mkdir asc # puteți da comanda din directorul vostru home
 +cd asc
 +pwd # acesta va returna <​cale_absolută_director_asc_local>​
 +sudo chown -R <​user>​ asc # numele user-ului vostru de pe local
 +decomentăm linia '​user_allow_other'​ din /​etc/​fuse.conf
 +sshfs -o allow_other <​user.moodle>​@fep8.grid.pub.ro:<​cale_absolută_director_asc_fep8>​ <​cale_absolută_director_asc_local>​
 +</​code>​
 +</​note>​
  
 Urmăriți instrucțiunile de pe GitLab [[https://​gitlab.cs.pub.ro/​asc/​asc-public/​-/​tree/​master/​labs/​cuda/​intro|GitLab]]. Urmăriți instrucțiunile de pe GitLab [[https://​gitlab.cs.pub.ro/​asc/​asc-public/​-/​tree/​master/​labs/​cuda/​intro|GitLab]].
Line 370: Line 393:
   * Advanced CUDA   * Advanced CUDA
     * [[https://​developer.download.nvidia.com/​CUDA/​training/​StreamsAndConcurrencyWebinar.pdf|CUDA Streams]]     * [[https://​developer.download.nvidia.com/​CUDA/​training/​StreamsAndConcurrencyWebinar.pdf|CUDA Streams]]
- 
-  * Extra 
     * [[http://​www-personal.umich.edu/​~smeyer/​cuda/​grid.pdf | CUDA Thread Basics]]     * [[http://​www-personal.umich.edu/​~smeyer/​cuda/​grid.pdf | CUDA Thread Basics]]
     * [[https://​devblogs.nvidia.com/​even-easier-introduction-cuda/​ | An Even Easier Introduction to CUDA]]     * [[https://​devblogs.nvidia.com/​even-easier-introduction-cuda/​ | An Even Easier Introduction to CUDA]]
  
asc/laboratoare/04.1711628350.txt.gz · Last modified: 2024/03/28 14:19 by matei.barbu1905
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0