Differences

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

Link to this comparison view

asc:laboratoare:07 [2026/04/22 07:16]
alexandru.bala [Executie asincrona Host si Device]
asc:laboratoare:07 [2026/04/22 07:25] (current)
alexandru.bala [Executie si transfer date asincron]
Line 220: Line 220:
   - Functii memorie set (setare / initializare de memorie la o valoare)   - Functii memorie set (setare / initializare de memorie la o valoare)
  
-Pentru a face debug unor scenarii de execuție asincronă, se poate dezactiva complet asincronismul CPU-GPU setând variabila de mediu CUDA_LAUNCH_BLOCKING la 1. De asemenea, execuția kernel-urilor este adesea serializată în timpul profilării:​ în timp ce Nsight Systems permite vizualizarea asincronismului real, unelte de analiză detaliată precum Nsight Compute (sau vechiul Visual Profiler) forțează o execuție sincronă și secvențială pentru a putea colecta metricii hardware.+Pentru a face debug unor scenarii de execuție asincronă, se poate dezactiva complet asincronismul CPU-GPU setând variabila de mediu ''​CUDA_LAUNCH_BLOCKING'' ​la 1. De asemenea, execuția kernel-urilor este adesea serializată în timpul profilării:​ în timp ce Nsight Systems permite vizualizarea asincronismului real, unelte de analiză detaliată precum Nsight Compute (sau vechiul Visual Profiler) forțează o execuție sincronă și secvențială pentru a putea colecta metricii hardware.
 ==== Fluxuri nonimplicite ==== ==== Fluxuri nonimplicite ====
  
Line 248: Line 248:
 ==== Executie asincrona programe kernel ==== ==== Executie asincrona programe kernel ====
  
-Arhitecturile cu compute capability 2.x sau mai nou, pot executa in paralel instante de kernel diferite. Aceste unitati de executie o sa aibe proprietate concurrentKernels setata la 1 (se face query la device properties inainte). Numarul maxim de lansari asincrone de kernele diferite este dependent de arhitectura (se verifica in functie de compute capability). Singura restrictie este ca programele kernel sa fie in acelasi context.+Arhitecturile cu compute capability 2.x sau mai nou, pot executa in paralel instante de kernel diferite. Aceste unitati de executie o sa aibe proprietate ​''​concurrentKernels'' ​setata la 1 (se face query la ''​device properties'' ​inainte). Numarul maxim de lansari asincrone de kernele diferite este dependent de arhitectura (se verifica in functie de compute capability). Singura restrictie este ca programele kernel sa fie in acelasi context.
  
 +
 +<note important>​
 +Deși hardware-ul permite execuția paralelă, activarea variabilei ''​CUDA_LAUNCH_BLOCKING=1''​ anulează practic această capacitate. Deoarece driverul este forțat să aștepte finalizarea fiecărui kernel înainte de a lansa următorul, kernelele vor fi executate strict secvențial,​ indiferent de disponibilitatea resurselor hardware sau de utilizarea fluxurilor (streams) diferite.
 +</​note>​
 ==== Executie si transfer date asincron ​ ==== ==== Executie si transfer date asincron ​ ====
  
-Anumite device-uri pot executa un transfer asincron memorie alaturi de o executie de kernel. Acest lucru este dependent de compute capability si se poate verifica in device property asyncEngineCount.+Anumite device-uri pot executa un transfer asincron memorie alaturi de o executie de kernel. Acest lucru este dependent de compute capability si se poate verifica in device property ​''​asyncEngineCount''​.
  
 {{:​asc:​lab9:​cuda_async.png?​900|}} {{:​asc:​lab9:​cuda_async.png?​900|}}
  
-De asemenea, se pot face transferuri de memorie intra-device simultan cu executia de kernel cand atat device property concurrentKernels,​ cat si asyncEngineCount sunt 1.+De asemenea, se pot face transferuri de memorie intra-device simultan cu executia de kernel cand atat device property ​''​concurrentKernels''​, cat si ''​asyncEngineCount'' ​sunt 1.
  
 {{:​asc:​lab9:​cuda_async_2.png?​900|}} {{:​asc:​lab9:​cuda_async_2.png?​900|}}
asc/laboratoare/07.1776831388.txt.gz · Last modified: 2026/04/22 07:16 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