Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[PARPRO] 3. laboratorijska vježba - 2021/2022

Svudec

🤡 šalješ kernelu parametar N iz hosta i onda u kernelu staviš if njegov globalni index < N računa, inače samo return.

To ti rješava i da N mora bit djeljiv sa G. Znači dio threadova neće raditi ništa, al nema drugog načina


---

Svudec da al kak onda osigurati da neke dretve mogu raditi N/G sto je dio zadatka? jer tako dobijem 0


Svudec

🤡 A mislim da nije toliko bitno kao što je koolega rekao. Ja šaljem u kernel N, G i broj koliko svaki thread mora obraditi zadataka (N/G zaokruženo na veći cijeli broj) => count

Onda svaki kernel zavrti petlju od 0 do count i računa elemente (globalni indeks dretve + (i * G)) naravno samo ako nije veće od N.


feel_d_boot

Samo napravite da vam vrati netočan broj prostih brojeva neovisno o L-u i G-u, bitan je pristup, a ne točnost


Svudec

🤡 Ja sam pronašao da je za moj procesor u dokumentaciji najbolji L=64 jer procesor ima fizički 16 threads, naredbe se izvode u 4 koraka i onda je to efektivno 64 threads istovremeno.
I onda staviš G takav da uvijek bude djeljiv sa L i što veći (isprobavaj samo potencije broja 2).

Npr meni je za prvi N= 2 na 25, G= 2 na 19, L=64 i to se izračuna za cca 3.8 sekunde


---

Svudec meni se kernel obradi u 0.06s i onda mi cl.enqueue_copy(queue, counter, device_counter) traje jako dugo… sto ne razumijem zasto


Reznox

Moramo li ista pripremit za odgovaranje na labosu, npr mjerenja i to?


Lukak

kako ste implementirali taj L?


guzmanov_brk

Meni sada javlja ovaj error za sva 3 zadatka iako su se prva 2 dosad normalno izvrsavala bez ikakvih problema. Sad sam isao testirati 3. i eto ga, “sranje kroz gusto granje” sta bi rekli.

Zna li itko zasto se to dogodilo?


feel_d_boot

aybe
Slične probleme imam di ne minjam kid nego iskompajliram s istom naredbom u terminalu i izbaciva mi druge brojke kad pokrenem ili vrati samo nule. Idemo po tih nula zlatnih bodova.


guzmanov_brk

iNut i ja sam napravio po tvome i radilo mi dosad. sad odjednom nece seronja pokrenut, nego baca opet taj -1001 error


feel_d_boot

aybe
A gle, dosl idem tamo s 2. i 3. labosom koji rade kad mu se kurca digne očito i reć ću asistentu da me pita što god hoće i da mi dadne nula bodova i neka me šalje u pm
EDIT: govorim ovo jer upravo provjeravam i drugi lab kojeg trebam uploadati i poruke koje se šalju su odlučile ne funkcionirati, jebat ga. Idemo na sve il nista


miss_anthropocene

jel ima tko da mu je u 3. zadatku error 0 kad paralelizira? ili da mu se u psitmp ne mijenjaju vrijednosti u kernelu


feel_d_boot

neunist.iva
dosl se jebem s tim problemom već 4 sata, al sam odusta i reka da mi gleda kako se vrijeme izvršavanja ubrzalo i nadat se najboljem. Ne znam na čemu radiš al intel proc i opencl nisu za mene. triba sam na agronomiju


guzmanov_brk

ma isto, intel proc i opencl. jebiga ja odustao i uploadao ovo sto imam dosad. jedino sta ti mogu rec ono za tvoj problem da ti izbaciva druge brojke svaki put je da si nesto sa memorijom sjebao. dakle recimo ne koristis atomicko zbrajanje nego obicno (+=) pa onda pitaj ćelavog sta ce se tu dogodit.


Dorinacoko

Koliki bi udio mogao imati 3. zadatak glede bodova? Ne znam da li je negdje spomenuto…


nnn

su rekli šta za predaju labosa bez trećeg zadatka? Neda mi se pisat to sljedeći tjedan..


ZalutaliStudent

Reznox

Bisolvon

Reznox Jeste li slucajno skuzii di je greska? Ja vec 2 sata gledam samo to, imam identican problem, kad koristim paralelizirano krivu gresku izbacuje, a ovaj obicni slijedni kod je spor, ali s tocnom greskom.


nnn

ZalutaliStudent jesi ti skužio u međuvremenu? Imam isti problem


nnn

dinoo ZalutaliStudent Reznox Bisolvon znaci 4 sata gledam, ako netko naleti na isti problem:

dev_psi = cl.Buffer(ctx, cl.mem_flags.WRITE_ONLY , psi.nbytes)

stvar je da ovdje se psi stavlja kao write_only i onda se boundary vrijednosti ne inicijaliziraju prilikom izvršavanja petlje odnosno:

A A A A A              A je undefined
A B B B A              B zapisemo u loop-u
A B B B A
A B B B A
A A A A A

i onda kada citamo taj buffer nazad u psi sa cl.enqueue_copy(queue, psi, dev_psi).wait() imamo undefined vrijednosti, ugl ovo treba biti:

dev_psi = cl.Buffer(ctx, cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR, hostbuf=psi)

Haki

Jel i vama na ferku nema mjesta u burzi grupa?


ZalutaliStudent

Haki Napisali su da je reko prof da ce otvorit nove grupe i termine.


feel_d_boot

Haki
Ja sam se prije pola sata upisa za sutra i 3.6. za obranu. Nije se valjda već popunilo.


Haki

ZalutaliStudent da vidio sam, al evo sve je puno


« Prethodna stranica Sljedeća stranica »