Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

današnje vježbe (informacija)

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 19:23 pon, 15. 4. 2013    Naslov: današnje vježbe Citirajte i odgovorite

Za one koji nisu bili danas (a i one koji jesu), pogledajte si primjere za redukciju i scan iz CUDA Samples (na Fermiju je to pod /usr/local/cuda/samples/6_Advanced/??? gdje je ???=reduction ili ???=scan).
Za one koji nisu bili danas (a i one koji jesu), pogledajte si primjere za redukciju i scan iz CUDA Samples (na Fermiju je to pod /usr/local/cuda/samples/6_Advanced/??? gdje je ???=reduction ili ???=scan).


[Vrh]
Korisnički profil Pošaljite privatnu poruku
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 14:29 uto, 14. 5. 2013    Naslov: Citirajte i odgovorite

Obećao sam pokazati inline assembler a nisam.
Isprika, ali nije teško pogledati dokument
[tt]Using_Inline_PTX_Assembly_In_CUDA.pdf[/tt]
u [tt]doc/pdf[/tt] poddirektoriju CUDA instalacije.

Da biste od toga imali koristi, pogledajte
[tt]ptx_isa_3.1.pdf[/tt]
na istom mjestu.
Recimo, [tt]red[/tt] instrukcije, specijalni registri - kao što su [tt]%laneid[/tt], [tt]%smid[/tt] i sl. mogu biti upotrebljeni u "normalnom" kodu.

Evo dva primjera:
[code:1]unsigned lid; // u ovu ćemo varijablu spremiti lane ID ("redni broj" threada u warpu)
asm ("mov.u32 %0, %%laneid;" : "=r"(lid)); // dohvatimo i spremimo lane ID u varijablu
if (lid ...) ... // sad možemo nešto učiniti temeljem pozicije threada u warpu[/code:1]
[code:1]// pokazivač na mapiranu CPU memoriju u kojoj će pisati "dogovor" svih thredova jednog kernela o nekom statusu,
// npr. broj threadova koji su uspjeli izvršiti neku predviđenu operaciju
// pokazivač je mogao biti i na GPU memoriju, ovo je samo ilustracija da to radi
__constant__ volatile unsigned long *statusOnCPU;
// ...negdje u kernelu...
unsigned long mySuccess = // 1 ili 0;
// atomarno dodaj mySuccess na statusOnCPU, ne zanima me nova vrijednost statusa
asm volatile ("red.global.add.u64 [%0], %1;" :: "l"(statusOnCPU), "l"(mySuccess) : "memory");[/code:1]
Obećao sam pokazati inline assembler a nisam.
Isprika, ali nije teško pogledati dokument
Using_Inline_PTX_Assembly_In_CUDA.pdf
u doc/pdf poddirektoriju CUDA instalacije.

Da biste od toga imali koristi, pogledajte
ptx_isa_3.1.pdf
na istom mjestu.
Recimo, red instrukcije, specijalni registri - kao što su %laneid, %smid i sl. mogu biti upotrebljeni u "normalnom" kodu.

Evo dva primjera:
Kod:
unsigned lid; // u ovu ćemo varijablu spremiti lane ID ("redni broj" threada u warpu)
asm ("mov.u32 %0, %%laneid;" : "=r"(lid)); // dohvatimo i spremimo lane ID u varijablu
if (lid ...) ... // sad možemo nešto učiniti temeljem pozicije threada u warpu

Kod:
// pokazivač na mapiranu CPU memoriju u kojoj će pisati "dogovor" svih thredova jednog kernela o nekom statusu,
// npr. broj threadova koji su uspjeli izvršiti neku predviđenu operaciju
// pokazivač je mogao biti i na GPU memoriju, ovo je samo ilustracija da to radi
__constant__ volatile unsigned long *statusOnCPU;
// ...negdje u kernelu...
unsigned long mySuccess = // 1 ili 0;
// atomarno dodaj mySuccess na statusOnCPU, ne zanima me nova vrijednost statusa
asm volatile ("red.global.add.u64 [%0], %1;" :: "l"(statusOnCPU), "l"(mySuccess) : "memory");


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan