.[ ČeskéHry.cz ].
Flame o smysluplnosti OpenCL
Jdi na stránku 1, 2, 3  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Popelnice
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 19. prosinec 2010, 03:43:10    Předmět: Flame o smysluplnosti OpenCL Odpovědět s citátem

By Fila: Odtrzeno z puvodniho dotazu na local promenne v OpenCL: http://www.ceske-hry.cz/forum/viewtopic.php?t=2519

Race condition tam skutečně je, protože += není atomická operace. Ale podle mě to samo o sobě není důvod toho popsaného jevu (té chyby).

OpenCL se mi vůbec nelíbí. Paralelním programováním se zabývám už 14 let a mám opravdu pocit, že velmi málo programů v praxi možnosti paralelních výpočtů používá. A důvod? Je to moc složité. Moc moc moc, řada programátorů to prostě nezvládá. Proto si troufám tvrdit, že od knihovny či platformy nebo jazyka pro paralelní programování očekávám v prvé řadě maximální jednoduchost použití a OpenCL jde snad přímoukázkově proti tomuto duchu - zavádí obludný systém překomplikovaných zbytečností a nesmyslů, které z hlediska teoreticko-vědeckých jsou sice pěkné, ale z praktického hlediska jsou zcela kontraproduktivní. Proto moje rada, jak vyřešit tento problém: Panebože vyhoď OpenCL!!! Snažíš se tu dělat něco, co máš zle vymyšleno, v knihovně, která je tak zvrhlá, že ti umožní se o to pokoušet a ani to nemá srozumitelně zdokumentováno, abys sám pochopil, co děláš špatně.

P.S. Na to, abych paralelně sečetl ID čísla deseti vláken, jak bylo zamýšleno, nepotřebuju žádné šílenosti jako work groupy se sdílenou pamětí. Je potřeba, aby programátor používal jen minimální sadu paralelních konstrukcí, kterým opravdu rozumí, a naprogramuje pak cokoliv, co bude potřebovat, a ještě to i bude fungovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 19. prosinec 2010, 08:58:09    Předmět: Odpovědět s citátem

Al OpenCL je na urovni OpenGL teda dost nizko urvnovy pristup k HW. no a problem je ze ten HW naozaj takyto je.

GPGPU je prilis nove. ono ani na klasicke paralelne programovanie sme zatial nevymysleli nejaky super ulahcujuci framework.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1823

PříspěvekZaslal: 19. prosinec 2010, 11:46:48    Předmět: Odpovědět s citátem

AFAIK atomicke instrukcie nad lokalnou (zdielanou) pamatou nie su na vsetkych zariadeniach, hlavne nie na starsich (napr ATI Radeon HD 4xxx, NV G80, ...)a podobne problemy sa daju vyriesit len spravnymi permutaciami a obycajnou barierovou synchronizaciou.

No a Al, ktory framework je podla teba nejako lepsi teda? CUDA, OpenCL aj DirectX 11 ponukaju podla mojho doterajsieho porovnavania naozaj takmer zhodnu funkcionalitu a programator proste MUSI pochopit ako funguje GPU. Akakolvek vyssia uroven abstrakcie je IMHO kontraproduktivna, cize s tebou nesuhlasim. Kniznice paralelnych primitiv a inych veci, ktore su dostupne pre CUDA su na druhej strane super, lenze ak niekto pouzije napriklad paralelny prefixovy sucet z kniznice, bez toho, aby chapal, co sa tam deje... ehm.

nou spravne poukazuje na to, ze OpenCL (aj CUDA, aj DX11 cs_5_0, cs_4_0) su myslene na relativne nizko-urovnovy pristup k dnesnym GPU -- aby si mal moznost ziskat vysoky vykon, co isto chapes.

oakus - co ti hovoria pojmy ako paralelny prefixovy sucet, paralelna redukcia, bitonicky merge-sort?
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 19. prosinec 2010, 12:56:49    Předmět: Odpovědět s citátem

Al napsal:
A důvod? Je to moc složité. Moc moc moc, řada programátorů to prostě nezvládá. Proto si troufám tvrdit, že od knihovny či platformy nebo jazyka pro paralelní programování očekávám v prvé řadě maximální jednoduchost použití


Nechápu, jak může člověk, co programuje vlákna 14 let, pustit z huby "moc složité. Moc moc moc". OpenCL je fakt dost jednoduché, pokud člověk trochu chápe ten programovací model a jak na to napasovat algoritmy.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1823

PříspěvekZaslal: 19. prosinec 2010, 13:13:16    Předmět: Odpovědět s citátem

Aby bolo jasne, ja si myslim, ze paralelne programovanie tazke fakt je, snad najtazsie (aj ked pre niekoho moze byt tazsie uribit 2 selecty a 1 insert Smile).
OpenCL aj OpenGL v principe jednoduche su, ale tych veci, co sa tam moze posrat... je milion Sad
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 19. prosinec 2010, 13:25:02    Předmět: Odpovědět s citátem

Al napsal:
OpenCL se mi vůbec nelíbí. Paralelním programováním se zabývám už 14 let a mám opravdu pocit, že velmi málo programů v praxi možnosti paralelních výpočtů používá. A důvod? Je to moc složité. Moc moc moc, řada programátorů to prostě nezvládá. Proto si troufám tvrdit, že od knihovny či platformy nebo jazyka pro paralelní programování očekávám v prvé řadě maximální jednoduchost použití a OpenCL jde snad přímoukázkově proti tomuto duchu - zavádí obludný systém překomplikovaných zbytečností a nesmyslů, které z hlediska teoreticko-vědeckých jsou sice pěkné, ale z praktického hlediska jsou zcela kontraproduktivní. Proto moje rada, jak vyřešit tento problém: Panebože vyhoď OpenCL!!! Snažíš se tu dělat něco, co máš zle vymyšleno, v knihovně, která je tak zvrhlá, že ti umožní se o to pokoušet a ani to nemá srozumitelně zdokumentováno, abys sám pochopil, co děláš špatně.

Ehm, emh. EHM.

Paralelni programovani je dost casto slozite prave proto, ze je dost slozite sformulovat korektni a _efektivni_ paralelni algoritmus. Navic u GPGPU prichazis do styku s relativne dost omezenym HW, kteremu musis psat kod dost "na telo" (dostanes-li 10x rychlejsi GPU, nemuzes udelat chybu napr. ve vzoru pristupu do pameti, protoze si tim 10x zpomalis kod a pak se nemusis s nejakym GPU vubec obtezovat). Samotne OCL se da naucit za jedno odpoledne, co se ficur a programovaciho modelu tyce...

Pochopitelne genericke problemy vyresi knihovny, ale ty jaksi neresi vse, ze... V automaticky paralelizujicich kompilatorech ci jazycich umoznujicich snadnou paralelizaci a pritom neznemoznujicich kompilaci do rozumne efektivniho kodu dela desitky let vyzkum armada velmi chytrych lidi a porad tu toho moc nemame, takze nam stale nezbyva, nez programovat...

Ps. OpenCL neni knihovna.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 19. prosinec 2010, 15:21:52    Předmět: Odpovědět s citátem

Eosie napsal:
Al napsal:
A důvod? Je to moc složité. Moc moc moc, řada programátorů to prostě nezvládá. Proto si troufám tvrdit, že od knihovny či platformy nebo jazyka pro paralelní programování očekávám v prvé řadě maximální jednoduchost použití


Nechápu, jak může člověk, co programuje vlákna 14 let, pustit z huby "moc složité. Moc moc moc". OpenCL je fakt dost jednoduché, pokud člověk trochu chápe ten programovací model a jak na to napasovat algoritmy.

Pro nechápavého kolegu: Já jsem neříkal, že je to pro mě složité, ale trvám na tom, že je to moc složité. Vidím, jak miliony programů jsou rozseté po webu ke stažení, ale jen pár jednotlivých z nich dokáže zužitkovat paralelizmus. Je to bída. I kdyby všichni lidi prostě byli blbci, tak stejně je to chyba těch paralelních knihoven, platforem, jazyků. Musejí být pro lidi, protože dokud lidi nebudou masově schopni to používat a prakticky nasazovat, nepřinese to ten užitek. To je technologie pro lidi, musí hlavně přinášet užitek, nemusí být matematicky dokonalá. Naopak OpenCL je vypiplaná low level věc jak na úrovni 70. let 20. století. K dobové atmosféře chybí už jen příkaz goto. (Kua, nebo tam je?) Nehledě na to, že v oficiálních materiálech, co jsem tak četl, se vůbec nepíše varování, ať si začátečníci dají bacha. Naopak tam bez skurpulí lžou lidem, že to je věc srovnatelná s OpenGL - vogo OpenGL používají i studenti začátečníci a dělají v tom pohodové věcičky třeba i do hodin geometrie. Tohleto by stejní studenti nijak užitečně nezvládli. Tohleto je moc low level na to, abych to dával na roveň široce používanému OpenGL. Nevěřím prostě tomu, že tohle má šanci být široce používaným prvkem.

Na druhou stranu veklá chyba je opravdu v těch PR kecičkách kolem toho, kdyby to podávali realisticky a nemazali lidem med kolem huby, problémů by bylo míň. Protože jak tu správně kdosi podotknul, GPU mají omezené funkce, tak ten jazyk prostě musí být krkolomný. Jenže srovnejte si to se začátky OpenGL - to nebylo tak, že by ethdejší výrobci tehdejších omezených grafických akcelerátorů diktovali, jak má OpenGL vypadat. Naopak! OpenGL bylo nadefinováno tak, aby bylo výhodné a užitečné k použití a pak výrobci HW museli přizpůsobovat své HW výrobky, aby standardu OpenGL vyhověly. OpenCL jde na to nějak odzadu analyzováním možností současných HW zařízení, kua, tak jak to pak má mít srovnatelný výsledek.
_________________
Děcka, mám doktorát z informatiky a aplikované matematiky, tak se se mnou laskavě nehádejte.

(Každej tu má nějakej zaručeně tvrďáckej podpis, tak já teď taky. Very Happy)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 19. prosinec 2010, 15:25:22    Předmět: Odpovědět s citátem

A co ten úvodní problém tazatele? To tu není nikdo, kdo by dokázal odpovědět? To je jen další důkaz, že to OpenCL není úplně masová věc. V každémjiném prostředí by řada z vás jistě ten "problém" harvě paralelně vyřešila. Podle toho, co jsem tak četl, tak to OpenCL je prošpikované chybami, takže třeba tady tazatel na jednu takovou nějakou chybu narazil. ???? Ale to fakt jen spekuluji....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 19. prosinec 2010, 16:29:08    Předmět: Odpovědět s citátem

ale ved na to som odpovedal vo svojom prvom prispevku. zaprve spravil tam chybu ze += nie je atomicka operacia. a to druhe vyzera proste na bug. odporucam aby upgradoval na Stream SDK 2.3 (pouziva tam printf() a to funguje len na AMD implementacii)
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 19. prosinec 2010, 23:42:24    Předmět: Odpovědět s citátem

Al napsal:
Vidím, jak miliony programů jsou rozseté po webu ke stažení, ale jen pár jednotlivých z nich dokáže zužitkovat paralelizmus. Je to bída. I kdyby všichni lidi prostě byli blbci, tak stejně je to chyba těch paralelních knihoven, platforem, jazyků. Musejí být pro lidi, protože dokud lidi nebudou masově schopni to používat a prakticky nasazovat, nepřinese to ten užitek. To je technologie pro lidi, musí hlavně přinášet užitek, nemusí být matematicky dokonalá.

Tyvole sorry ale to je skoro jak slyset Paroubka, kdyby byl informatik. Co nezvladne obycejny clovek, to je spatne, to delaji ti zli vyrobci schvalne tak, aby to zustalo jen pro nejakou elitni mafii Smile.

To, ze nedokaze vetsina "programatoru" napsat paralelni program je proto, ze proste nejsou tak dobri programatori. Nechci rikat, ze nelze udelat nastroj, ktery s paralelizaci vyrazne pomuze (ostatne treba OpenMP je docela jednoduche, byt pokud v nem chces psat efektivni kod tak je to casto drina tak jako tak). Nicmene obecne formulovat paralelni algoritmy je nesrovnatelne slozitejsi, nez ty sekvencni.

Al napsal:
Na druhou stranu veklá chyba je opravdu v těch PR kecičkách kolem toho, kdyby to podávali realisticky a nemazali lidem med kolem huby, problémů by bylo míň. Protože jak tu správně kdosi podotknul, GPU mají omezené funkce, tak ten jazyk prostě musí být krkolomný. Jenže srovnejte si to se začátky OpenGL - to nebylo tak, že by ethdejší výrobci tehdejších omezených grafických akcelerátorů diktovali, jak má OpenGL vypadat. Naopak! OpenGL bylo nadefinováno tak, aby bylo výhodné a užitečné k použití a pak výrobci HW museli přizpůsobovat své HW výrobky, aby standardu OpenGL vyhověly. OpenCL jde na to nějak odzadu analyzováním možností současných HW zařízení, kua, tak jak to pak má mít srovnatelný výsledek.

Hm, tak si to me podotknuti precti jeste jednou, pochop ho, a pak si precti jeste jednou svuj text... Pokud by ted nekdo OpenCL formuloval tak, aby se neobtezovalo vlastnostmi dnesnich akceleratoru (mimochodem je navrzene pomerne solidne obecne, na to jak low-level se v nem da psat), nepujde v nem napsat rozumne efektivni kod (na coz jsou treba GPU vyrazne haklivejsi nez CPU), coz z konstantne-krat rychlejsiho akceleratoru muze snadno udelat stejne rychly az pomalejsi kus zeleza. A snad se shodneme, ze neni rozumne prosazovat OpenCL tak, ze v nem nasledujicich 10 let nebude mit smysl psat, protoze jeho vystup bude pomalejsi nez pouziti C/C++ a CPU Smile.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 20. prosinec 2010, 11:38:52    Předmět: Odpovědět s citátem

Trochu OT: Ja osobne se na OpenCL divam spis tak, ze mne umoznilo pristup k dalsi casti HW, ke kterymu bych se jinak skoro nedostal (z pohledu vypoctu)... => sem rad ze OpenCL vubec existuje.
Nepocitam tady s CUDA, nebo podobnejma srandama od AMD.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 20. prosinec 2010, 22:18:44    Předmět: Odpovědět s citátem

Myslím, že tato diskuze čtenářům poskytla jakýsi náhled na OpenCL, které možná ještě neviděli, z více úhlů. A to je dobře.

A je pravda, že v poslední době jsem čímdál víc vyszenej proti všemu low-level. Je to prostě nějakej můj vývoj. Je to dáno i prostředím, kde sepohybuju. Programování už pro mě není jen věc na hraní, je to nástroj jak splnit nějaký cíl definovaný reálným světem. A v mém případě tam nikdy nejde o nějaké využívání hardwaru, ale o vyplňování formulářů, evidenci údajů, statistiky apod. A to člověka postupně naučí dívat se na programování jinak. Jak nedávno řekl jeden kolega na adresu ZX Spectrum: "1982 - when programming was still fun". Tehdy jsme "intenzivně" řešili i věci jako barvy proužků při nahrávání z kazety. Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 20. prosinec 2010, 22:35:13    Předmět: Odpovědět s citátem

Al napsal:
Programování už pro mě není jen věc na hraní, je to nástroj jak splnit nějaký cíl definovaný reálným světem.

Ty dvě věci si neodporují. Můžeš se u programování dobře zabavit a zároveň plnit nějaký reálný cíl (za $$$). Takoví vývojáři jsou se svou prací nejvíc spokojeni. No a pak je ještě jedna skupina lidí a to jsou ti nespokojení, co furt pindaj, jak je všechno na hovno. Wink
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 20. prosinec 2010, 23:41:01    Předmět: Odpovědět s citátem

Al -- tak pokud pises takove veci, tak te vubec paralelizace a optimalizace nemusi zajimat, na takove aplikace je OpenCL pochopitelne totalne nepouzitelne. Stejne tak je ale z pohledu vyplnovani formularu nesmyslny nejaky 3D engine a neznamena to, ze je to hovadina, a to ani kdyz jej pouziva minimum aplikaci valejicich-se po netu Smile.

A jinak pekne aplikace z realneho sveta, kde sakra zalezi na efektivite, jsou treba vedecke vypocty nebo obecne multimedialni aplikace...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
igor



Založen: 28. 07. 2007
Příspěvky: 196

PříspěvekZaslal: 21. prosinec 2010, 00:52:36    Předmět: Odpovědět s citátem

Naprosto všechny cíle jsou "definovány reálným světem" (uvozovky kvůli divné jazykové formulaci). Jiný pohled na věc může být docela omezující a možná i určitým způsobem nebezpečný.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Popelnice Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2, 3  Další
Strana 1 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna