Differences

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

Link to this comparison view

asc:laboratoare:06 [2025/04/09 07:38]
alexandru.bala [Fluxuri nonimplicite]
asc:laboratoare:06 [2025/04/09 09:11] (current)
alexandru.bala [Fluxuri nonimplicite]
Line 212: Line 212:
 ==== Executie asincrona Host si Device ==== ==== Executie asincrona Host si Device ====
  
-Folosind apeluri asincrone, operatiile de executie catre device sunt puse in coada avand controlul intors catre host instant. Astfel unitatea host poate continua executia fara sa fie blocata in asteptarea ​executiei+Folosind apeluri asincrone, operatiile de executie catre device sunt puse in coada avand controlul intors catre host instant. Astfel unitatea host poate continua executia fara sa fie blocata in asteptarea ​altor task-uri
 Urmatoarele operatii sunt asincrone relativ la host: Urmatoarele operatii sunt asincrone relativ la host:
   - Lansari de kernel   - Lansari de kernel
-  - Copieri in cadrul spatiului de memorie ​unui device+  - Copieri in cadrul spatiului de memorie ​al unui device
   - Copiere memorie host -> device, avand < 64 KB   - Copiere memorie host -> device, avand < 64 KB
   - Copiere memorie host -> device, avand functii cu sufix Async   - Copiere memorie host -> device, avand functii cu sufix Async
Line 224: Line 224:
 ==== Fluxuri nonimplicite ==== ==== Fluxuri nonimplicite ====
  
-Pentru a folosi cudaMemcpyAsync,​ este necesar lucrul cu fluxuri ​nonimplictie ​(non-default streams), care, in C/C++ pot fi declarate, create si distruse in partea de cod de pe host (CPU) in urmatorul fel: +Pentru a folosi cudaMemcpyAsync,​ este necesar lucrul cu fluxuri ​nonimplicite ​(non-default streams), care, in C/C++ pot fi declarate, create si distruse in partea de cod de pe host (CPU) in urmatorul fel: 
  
 <code C> <code C>
Line 237: Line 237:
  
 <code C> <code C>
-result = cudaMemcpyAsync(d_a,​ a, N, cudaMemcpyHostToDevice,​ stream1);+// num_bytes = N * sizeof (type_a); 
 +result = cudaMemcpyAsync(d_a,​ a, num_bytes, cudaMemcpyHostToDevice,​ stream1);
 </​code>​ </​code>​
  
-Pentru a emite un kernel către un flux nonimplicit,​ specificăm identificatorul fluxului ca al patrulea parametru de configurare a execuției. Se observă și un al treilea parametru de configurare a execuției, care este folosit pentru a aloca memorie partajată device-ului (GPU-ului), utilizându-se 0 dacă nu se dorește acest aspect.+Pentru a emite un kernel către un flux nonimplicit,​ specificăm identificatorul fluxului ca al patrulea parametru de configurare a execuției. Se observă și un al treilea parametru de configurare a execuției, care este folosit pentru a aloca memorie partajată ​(shared memory) ​device-ului (GPU-ului), utilizându-se 0 dacă nu se dorește acest aspect.
  
 <code C> <code C>
asc/laboratoare/06.1744173501.txt.gz · Last modified: 2025/04/09 07:38 by alexandru.bala
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