tipuri de memorie

Tabelul 3.1: Tipuri de memorie

sincronizare

__syncthreads () funcție vă permite să sincronizați fire din bloc, care va aștepta până atunci, până când toate firele de funcționare vor lucra până la acel moment. Funcția este necesară pentru datele prelucrate de un fir vor fi apoi utilizate de către alte fire.

__syncthreads () permite punctului de sincronizare ca o barieră până în momentul în care toate filamentele unitare au terminat executarea tuturor instrucțiunilor precedente, nici unul dintre codurile următoare nu va fi executat. Nu este recomandat pentru utilizare în condiții.

Puteți utiliza, de asemenea eveniment „pentru a sincroniza CPU.

Pentru a urmări performanța codului GPU CUDA folosește un eveniment“. Pentru a lucra cu ei sunt următoarele:

cudaError_t cudaEventCreate (cudaEvent_t * eveniment);

Această funcție este utilizată pentru a crea un tonomat.

cudaError_t cudaEventRecord (cudaEvent_t flux eveniment CUstream.);

Funcția cudaEventRecord este utilizată pentru a specifica locul, dintre care trecerea trebuie să semnalizeze evenimentul. Dacă fluxul este non-zero, atunci doar monitorizate finalizarea tuturor operațiunilor din flux. Trebuie remarcat faptul că această cerere este asincron - de fapt, ea se referă doar la locul în fluxul de instrucțiuni, trecerea care vor fi apoi solicitate.

cudaError_t cudaEventQuery (eveniment cudaEvent_t);

Funcția cudaEventQuery efectuează verificarea instantanee a „trecerea“ de Eventa - controlul se întoarce imediat. În cazul în care toate operațiile precedente acest event'u s-au terminat, se întoarce cudaSuccess. altfel returnează
cudaErrorNotReady.

cudaError_t cudaEventSynchronize (eveniment cudaEvent_t);

sincronizare Explicit, și anume așteptați până când toate operațiunile pentru tonomat să nu fie finalizată cu condiția ca această echipă.

cudaError_t cudaEventElapsedTime (float * timp cudaEvent_t startEvent cudaEvent_t stopEvent..);

Cu ajutorul funcției cudaEventElapsedTime de a cunoaște timpul în milisecunde (până la o jumătate de microsecundă) scurs între event'ami (între momentele în care fiecare dintre aceste event'ov a fost „scris“).

cudaError_t cudaEventDestroy (eveniment cudaEvent_t);

Funcția efectuează pentru a elimina tonomat.