Re: GTS450 - Collatz, gpugrid, ...
Napísané: St Jan 05, 2011 10:40 am
Dost vela otazok v jednom poste, az som sa stratil...
To, ci sa da vybrat ATI/NVIDIA/CPU zalezi od serverovej verzie BOINCu, teda kazdy projekt to moze mat inak. Einstein a SETI maju na vyber len NVIDIA/CPU (zrejme preto, ze oficialna ATI aplikacia od projektu nie je a pri neoficialnej sa v app_info.xml aj tak uvadza, kde to pocitat)
V Milkyway sa da vybrat zo vsetkych 3 moznosti, na Collatz sa teraz neviem dostat (aj robota mi dosla na masine), PrimeGrid/GPUGRID nepocitam...
Co sa tyka ATI vs. NVIDIA, tak kazdy z nich ma nieco za usami. NVIDIA tradicne za vyssiu cenu dava mensi hardverovy vykon, ale dorovnava to softverovou podporou. ATI zase vie urobit kvalitny kus hardveru, ale su problemy so softverom, kvoli nedotiahnutym ovladacom a problematickejsiemu pisaniu aplikacii. Neduhy ATI sa s prechodom k AMD trocha zlepsili, ale zase zacinaju od NVIDIE preberat niektore nepekne praktiky (ako preznacovanie starych cipov ci matuce oznacenie novej rady)...
Celkovo na GPU programovani je zle, ze neexistuje jednotny jazyk, v ktorom by sa dala napisat GPU aplikacia. Ked to porovnam s CPU, tak napriklad C/C++ je vyssi programovaci jazyk, kde sa da aplikacia pohodlne napisat. No a kompilatory su pre rozne procesory, takze aplikacia moze bezat na x86, arm, sparc, ... Vo vseobecnosti je viac roboty s napisanim aplikacie pre viacere OS, ako s napisanim aplikacie pre viacere archiektury procesorov. V GPU to neplati. Tam treba pisat inu aplikaciu pre ATI a inu pre NVIDIA, lebo neexistuje spolocny vyssi programovaci jazyk. NVIDIA si urobila CUDA, ale podmienuje to zvlastnymi podmienkami a konkurencia sa samozrejme nechce dostat do pasce, tak musi pouzivat riesenie vlastne. A tym sa zbytocne triesti vyvoj, lebo v ramci jedneho projektu treba pisat aplikaciu zvlast pre CPU, zvlast pre ATI a zvlast pre NVIDIA...
Ovsem zo situacie by som nevinil ani ATI, ani NVIDIU, ale "neviditelnu ruku trhu". Ak nic nenuti vyrobcov podporovat jednotny vyssi programovaci jazyk, tak preco by to robili? Na poli CPU, ktokolvek by chcel vymysliet uplne novy procesor, je si vedomy toho, ze k nemu musi dodat minimalne ceckovy kompilator, inak sa ten procak nema sancu rozsirit. U grafik je podmienkou len podpora DirectX vo verzii Y (pripadne OpenGL vo verzii Z)... a DirectX akosi nie je programovaci jazyk vyuzitelny na GPU vypocty (a ani OpenGL)...
To, ci sa da vybrat ATI/NVIDIA/CPU zalezi od serverovej verzie BOINCu, teda kazdy projekt to moze mat inak. Einstein a SETI maju na vyber len NVIDIA/CPU (zrejme preto, ze oficialna ATI aplikacia od projektu nie je a pri neoficialnej sa v app_info.xml aj tak uvadza, kde to pocitat)
V Milkyway sa da vybrat zo vsetkych 3 moznosti, na Collatz sa teraz neviem dostat (aj robota mi dosla na masine), PrimeGrid/GPUGRID nepocitam...
Co sa tyka ATI vs. NVIDIA, tak kazdy z nich ma nieco za usami. NVIDIA tradicne za vyssiu cenu dava mensi hardverovy vykon, ale dorovnava to softverovou podporou. ATI zase vie urobit kvalitny kus hardveru, ale su problemy so softverom, kvoli nedotiahnutym ovladacom a problematickejsiemu pisaniu aplikacii. Neduhy ATI sa s prechodom k AMD trocha zlepsili, ale zase zacinaju od NVIDIE preberat niektore nepekne praktiky (ako preznacovanie starych cipov ci matuce oznacenie novej rady)...
Celkovo na GPU programovani je zle, ze neexistuje jednotny jazyk, v ktorom by sa dala napisat GPU aplikacia. Ked to porovnam s CPU, tak napriklad C/C++ je vyssi programovaci jazyk, kde sa da aplikacia pohodlne napisat. No a kompilatory su pre rozne procesory, takze aplikacia moze bezat na x86, arm, sparc, ... Vo vseobecnosti je viac roboty s napisanim aplikacie pre viacere OS, ako s napisanim aplikacie pre viacere archiektury procesorov. V GPU to neplati. Tam treba pisat inu aplikaciu pre ATI a inu pre NVIDIA, lebo neexistuje spolocny vyssi programovaci jazyk. NVIDIA si urobila CUDA, ale podmienuje to zvlastnymi podmienkami a konkurencia sa samozrejme nechce dostat do pasce, tak musi pouzivat riesenie vlastne. A tym sa zbytocne triesti vyvoj, lebo v ramci jedneho projektu treba pisat aplikaciu zvlast pre CPU, zvlast pre ATI a zvlast pre NVIDIA...
Ovsem zo situacie by som nevinil ani ATI, ani NVIDIU, ale "neviditelnu ruku trhu". Ak nic nenuti vyrobcov podporovat jednotny vyssi programovaci jazyk, tak preco by to robili? Na poli CPU, ktokolvek by chcel vymysliet uplne novy procesor, je si vedomy toho, ze k nemu musi dodat minimalne ceckovy kompilator, inak sa ten procak nema sancu rozsirit. U grafik je podmienkou len podpora DirectX vo verzii Y (pripadne OpenGL vo verzii Z)... a DirectX akosi nie je programovaci jazyk vyuzitelny na GPU vypocty (a ani OpenGL)...