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

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

Ljama

Dobiva li još netko grešku (-46) pri pokretanju kostur++.cpp nakon postavljanja projekta iz mini SDK-a prema gornjim uputama? Pri pokretanju kostur.cpp ne javlja se nikakva greška, ali se ništa ni ne ispiše.


SuperSaiyano

Ljama Slomio sam se sinoć oko toga ali sam riješio. Greška označava pogrešno ime kernela, međutim svako je ime pogrešno kada putanja SOURCE_FILE ne valja :/. Kernel datoteku (primjeri.cl ili .cl općenito) sam stavio unutar projekta kao na slici (pored onih filters i user datoteka) i za SOURCE_FILE stavio sam ime kernel datoteke tj. primjeri.cl


Ljama

SuperSaiyano Hvala puno!


branimir1999

Sinusan Ukoliko nekome se OpenCL ne želi include-ati nakon ovog tutorijala, pazite da su vam sve postavke za ispravnu konfiguraciju (x86/x64; Debug/Release) te da trenutno radite u ispravnoj konfiguraciji u samom VS. Najjednostanvije da radite u All Configurations i na x64.

SuperSaiyano zar nije dovoljno samo da maknes tocku tako da ../primjeri.cl -> ./primjeri.cl i da ostavis .cl datoteke u istom direktoriju kao kostur++.cpp?


Me1

Kasperinac pogledaj ovaj post, mislim da mi je to pomoglo kod toga

SuperSaiyano


BillIK

Može li mi netko pojasniti ovaj labos? Što se sve zahtjeva da imamo kako bi ga napisali i što sve moramo napisati?
Moram li stvarno imati gpu za ovo ili? Ne kužim se u te stvari baš


indythedog

BillIK

Sokol

Ja mogu pisati samo za PyOpenCl jer s njim radim, ali pošto se radi o specifikaciji OpenCL koja bi trebala biti neovisna o platformi, pretpostavljam da vrijedi i za C/C++. Ukratko, OpenCL će raditi na bilo čemu, ako nemate GPU procesor s više jezgri je dovoljan, samo je potrebno instalirati odgovarajuće drivere koji će podržavati rad s OpenCL-om - npr. za NVIDIA GPU “driver” koji podržava OpenCL je cuda, za ostale gpu-ove/procesore postoje odgovarajući driveri itd.

https://documen.tician.de/pyopencl/misc.html - Ovdje su upute za podešavanje pyopencl-a, pa možda može pomoći. Konkretno za pyopencl dovoljno je imati odgovarajući driver i instalirati pyopencl paket korištenjem npr. conde i tjt, onda program možete pokrenuti doslovno klikanjem “run” u PyCharmu.


strole55

Jel radi opencl na integriranij grafickoj?


SuperSaiyano

branimir1999 To sam i ja isto pretpostavio, stavio tako, apsolutnu putanju i nije nijedno radilo…


madoxx

Prevođenje bez ikakvog IDE-a na Ubuntu 20.04:

g++ kostur++.cpp -I/home/<moj_username>/fer/OpenCL/include -L/home/<moj_username>/fer/OpenCL/lib -lOpenCL.
Prevođenje baca jedan warning, ali nadam se da nije ništa bitno.

Ako vam pokretanje vrati status 46, promijenite vrijednost varijable SOURCE_FILE u datoteci kostur++.cpp u “./primjeri.cl” jer se ipak ta datoteka nalazi u istom folderu iz kojeg vi pokrećete projekt.


indythedog

Za neki kratki crash course o gradivu labosa jako preporučam slajdove i primjere sa ovog repoa: https://github.com/HandsOnOpenCL/
Ima primjere programa u C, C++ i Pythonu i ide od osnova, neusporedivo je bolje od službenih materijala koji su praktički nepostojeći


indythedog

U 1. zadatku, može netko pojasniti na što točno misle pod “ Funkciju dretve obvezatno ostvarite tako da jedna dretva može obraditi više elemenata niza (N/G). ” Kao, ako ja jedan zadatak definiram da obrađuje i-ti element niza jel, kako tu mogu išta posebno naglasiti da jedna dretva može obraditi više elemenata niza? Ne kužim baš na što ciljaju


Multimedija

indythedog
Ako je broj elemenata niza (N) veći od broja dretvi (G) onda jedna dretva ima više od jednog zadatka tj. treba obraditi N/G elemenata. To testiraš u kernelu - ja imam 2 for loopa i svaka dretva provjerava N/G elemenata.


neksi

Multimedija Kako odrediš veličinu za G? Jel to treba postaviti na maksimalni broj koji G može biti ili samo neki bezveze broj npr 1000?


Multimedija

Ima li tko problem u 2. zadatku gdje mu za određeni broj iteracija (npr. N=500) krivo izračuna pi, a za određeni (npr. 50 ili 500000) dobro?


hellvetica

Koristim pyopencl i nije mi skroz jasno kako bi trebao definirat globalnu i lokalnu grupu dretvi (za prvi zadatak)
Pokrecem kernel ovako
knl = prg.prime
knl(queue, a_np.shape, None, a_g, res_g)

I sa np.shape definiram globalnu velicinu. Kernel funkcija mi uzima globalni index sa
int gid = get_global_id(0); i tako cita/pise podatke.
Kako bi ovo trebao modificirat da mi radi sa lokalnim/globalnim dretvama i kako bi trebao nac optimalnu kombinaciju?


hellvetica

hellvetica
Aha izgleda da trebam samo dodat broj za lokalni wg
knl(queue, a_np.shape, (32,), a_g, res_g)
Jel trebam onda kernel promijenit da koristi neke lokalne id-eve ili?
Kako da nadem optimalnu kombinaciju?


Kasperinac

Kaj je ovaj 3. zadatak??


Kasperinac


Itko se susreo s ovakvim errorom pri pokusaju setupanja visual studija za opencl? Pokusavam pokrenuti onaj njihov kostur++ kod.


Kasperinac

Me Hvala puno, visual studio je debil koji kad importas fileove ti pokaze da su u projektu, ali i dalje ne zna di su. Rucno kopiranje svih tih fileova u project folder je fixalo.


Me1

jel potrebno rijesit 3. da se zadovolji ona predaja svih labosa?


« Prethodna stranica Sljedeća stranica »