Stránka 1 z 1
ATI a problém s OpenCL
Napsal: úte zář 01, 2009 8:59 am
od DOC_ZENITH/XAN
Na Macu už funguje OpenCL, ale zatim jsou obrovské problémy s ATI kartami.
Prý ty čipy hardwarově nemaj ňákej double precission **** to už si dál nepamatuju, ale na macách prozatím na HD2xxx a 3xxx open CL nejede vůbec, jede jen na 48xx a výkon 4870 dosahuje GF8600 GT což zní dosti strašlivě. Kde je taková 8800GT nebo GTX285 se radši ani neptejte. Ale podobnej graf jsem viděl i u flodding home.
Je tam teda opravdu něco, protože jestli se ukáže že pre DX11 ATI karty jsou pro CGPU nepoužitelné, bude to dost blbý. I ten jejich video konverter má hroznou kvalitu obrazu a je sice hezký že máj Gflops ale je to jak holub na střeše, neni nic kde by se to dalo použít. Já jsem čekal že právě v OpenCL přijde ten moment kdy se to ukáže ale ouha... Přitom předtim se dušovali že OpenCL narozdíl od NV jejich karty zvládaj už od R520 a novějších čipů kdežto NV jen od G80 + má nyní ATI větší výkon.
Zatím to vypadá asi takto:
Number of OpenCL devices found: 4
OpenCL Device # 0 = GeForce 8800 GT
Device 0 is an: GPU with max. 1500 MHz and 112 units/cores
Now computing - please be patient....
time used: 0.683 seconds
OpenCL Device # 1 = GeForce GTX 85
Device 1 is an: GPU with max. 1500 MHz and 240 units/cores
Now computing - please be patient....
time used: 0.285 seconds
OpenCL Device # 3 = Radeon HD 4870
Device 0 is an: GPU with max. 750 MHz and 4 units/cores
Now computing - please be patient....
time used: 4.126 seconds
OpenCL Device # 4 = Intel® Xeon® CPU X5365 @ 3.00GHz
Device 2 is an: CPU with max. 3000 MHz and 8 units/cores
Now computing - please be patient....
time used: 3.094 seconds
Napsal: úte zář 01, 2009 11:28 am
od no-X
Double precision podporuje RV740 a RV770. U nVidie jen GT200. Vůbec se nedivím, že ATi tohle momentálně na MACu neřeší, mají jiné problémy, drivery pro R8xx jsou v tuto chvíli důležitější.
Napsal: úte zář 01, 2009 1:10 pm
od nManJofo
Najhorsie je, ze k tomu jazyku nie je ziaden pekny tutorial, a tie konstrukcie vyzeraju dost blaznivo. Inac by som si to rad vyskusal v praxi
Napsal: úte zář 01, 2009 3:14 pm
od DOC_ZENITH/XAN
Ono je to podoný jak pro Cudu takže.... a NV díky tomu asi narychlo zplácla ňákej convert driver atd, takže jim to už teĎ jakžtakž jede. No kdyby situace takhle zůstala tak by si NV klidně mohla dovolit dát Physx na OpenCL (pluginy adobe, atd už s příští generací nepojedou přes cudu ale OpenCL). Pak by řekli, na physx si pořiďte alespoň Gf 9500 nebo Radeona HD 4890, jsou tam rychlý nastejno a ehm to by byla větší reklama než současnej stav. Doufám že tam ATI s driverama hrábne.
Výhodou OpenCL je, že může běžet na všem stejnej kód se stejným výsledkem. A i na CPU to ujde. 2x8jádrovej Nehalem based Xeon si konkuruje s GF8800GT. I přes CPU to jede pěkně. Ono to jde na každý programovatelný jednotce podporující přesný výpočty a s valstní Vram, dokonce říkali že by se todalo rozjet na na X-fi zvukovkách nebo raid řadičich když zdrova Idlujou.
. Může to běžet pod všema různejma OS kde jelo OpenGL čili i na Linxech, nan non x86 kompatibilních strojích i na mobilních telefonech. To je ta obrovská výhoda oproti DirectCompute který je závislý na jednom jedinym systému aka WIN NT 6.x generace a ještě na DX11 HW. Z grafik by to měla dát každá co má PS3.0 (čili i takovej wldcat 800, na ten bych tam byl celkem zvědavej on má 96 pipelnes ale na to asi driver nikdo neudělá) reakcí ATI na toto bylo že na R520 a novějších to jede bez problémů ale na NV40 - G71 ne protože ta má určitý výpočty méně přesný a nelze ji proto použít. Ale praxe zatim kvete tak, že Apple pro minimální požadavky na optimální běh na jejich openCL powered aplikace uvedl čtyřjádrový Xeon, GF8600GT a nebo Radeona 4850 což je dosti šílenej stav aka nepoměr.
Kámoš nedávno koupil takovej ten jak se to jmenuje jak je to na stole jak monitor ten MAC střední třídy, s Core2 duem a ještě stinul ten s HD2600XT právě aby po příchodu OpenCL měl slušnější GPU, 3 měsíce zpět se přestaly prodávat a novej model tam má ION chipset čili integrovanou Gf9400. A teď nadává že co je to za lapálii a ani se mu nedivím.
A tutorialy bych řekl že se oběví až vyjdou WIN7 ve kterejch OpenCL bude. Dokud to netalčí MS tak to bude okrajový, takže je třeba ještě ten měsíc počkat.
Napsal: pon říj 26, 2009 10:03 pm
od Palda
U řady HD2xxx a HD3xxx je problém mnohem horší, výkon by byl v OpenCL (a jakémkoliv jiném GPU výpočtu) dost chabý, kvůli absenci sdílené paměti pro SIMD, řada HD48xx to už má a double precision umí.
Vývojáři GPU klienta pro folding home uvedli, že dual precision karty ATI umí nativně jen v řadě 48xx (novější info nemám) a je to 2,5x rychlejší, než na srovnatelné třídě předchozí generace (4870 vs 3870) v single precision operacích, nedokážu si potom představit, jaký by byl výkon HD2/3, pokud nemají sdílenou SIMD cache a navíc jsou 2,5x pomalejší v single precision výpočtech (papírově to vypadá, že je to rovno jen násobku jednotek, špíše bych to tedy viděl na problém chybějící cache)
Apple, jakožto jeden z největších odběratelů ATI čipů, hned po Microsoftu nemá problém v tom, že by byly problémy s ovladači, spíše je problém ve výkonu karet samotných, nemá tedy smysl dělat ovladač pro GPU, které bude při OpenCL 10x pomalejší, než běžné C2D CPU. Podpora je asi spíše uměle zakázaná, možná starší čipy ani nevyhovují požadavkům pro OpenCL na kterých se dohodl Apple, AMD, NVIDIA a Intel, když se dělala OpenCL specifikace.
Jinak stejný OpenCL benchmark je k dispozici i pro Linux, kde jsou výsledky stejné. Nvidia má OpenCL pro Windows dostupné už od června:
http://www.nvidia.com/object/cuda_opencl.html a
http://developer.nvidia.com/object/get-opencl.html u ATI jsou zatím snad jen součásti ATI Stream SDK.
Jinak ATI má problémy s OpenCL na Macu a Linuxu pořád, je nutné speciálně upravovat kód, aby na ATI kartách chodil.
a na konec nový OpenCL benchmark pro OSX:
http://www.applebloog.com/?p=29437
Napsal: pon říj 26, 2009 10:24 pm
od no-X
Můžu se zeptat, kde se dádozvědět něco víc o podpoře DP na starších čipech? Podle všeho, co jsem dosud viděl, slyšel a četl, je stejná, jako jako u HD4800. HD4800 sice podporuje některé funkce navíc, ale základ je stejný.
Fyzickou sdílenou paměť nemá ani GT200, tu přinese až GF100.
Co se týče F@H, je problém s tím, že od doby HD2900 se na ATi klientu nic nezměnilo, stále nevyužívá všechny SPs u čipů, které jich mají přes 320. Což je důvod chabého výkonu. Je otázka, jestli ATi čekala na standardizaci OpenCL a nový klient bude založená právě na OpenCL (snazší přechod a využití nových architektur), nebo se na další podporu vykašlou. Houston pracuje v AMD a zřejmě má na práci jiné záležitosti.
Mimochodem, může mi někdo ukázat nějakou recenzi, nebo cokoli, kde by jakákoli karta od ATi prováděla pod OpenCL jakýkoli DP výpočet? XAN mluví o výkonu pod OpenCL v DP od 1. září, ale ATi vydala vůbec první OpenCL driver využívající GPU teprve 14. října a ten navíc DP nepodporuje
Do 14.10. (tzn. před v2.0-beta4) bylo OpenCL realizované pouze přes CPU.
To je jedna věc. Druhá věc je, že k témuž datu ani nVidia nepodporovala v rámci OpenCL DP. Není mi jasné, jestli to na MACu je realizováno softwarově, nebo existují nějaké drivery, které byly vyvinuty nezávisle na nVidii/ATi, ale minimálně pro PC (a pravděpodobně i pro MAC) platí, co jsem uvedl.
Všechny současné čipy totiž nejsou plně hardwarově kompatibilní s DP tak, jak ho vyžaduje OpenCL a obě firmy pracují na driveru, který by byl schopen chybějící funkce nahradit emulací (čímž nepředpokládám emulaci na CPU, ale složitější kombinaci funkcí GPU - jistý si ale nejsem).
Napsal: pon říj 26, 2009 11:25 pm
od Palda
je to delší doba, ale něco o SIMD cache lze najít na forech AMD:
http://forums.amd.com/forum/messageview ... did=117568 , něco o dual precision bylo přímo u Developer SDK pro OpenCL od Apple (bylo součástí Snow Leopard Beta, nevím jestli je v plné, musel bych se podívat na instalační DVD), proto jsou podporovány jen radeony 4850 a 4870, a karty 2600xt z o půl roku starších modelů nikoliv (ano, dalo by se říci, že takto budou nabádat ke koupi nových modelů, to by ovšem odporovalo tomu, že taková 8600GT je podporována), na Macku je podpora OpenCL od začátku září a chodí to i po GPU a je nativně v systému, podporuje jak CPU, tak GPU, mám vyzkoušeno jak na CPU, tak na GPU (9400m, gpu bohužel nemůžu vyzkoušet, mám právě 2600pro). Co jsem pochopil, tak DP není vyloženě nutnost, to je snad nutnost jen pro DirectXCompute, jen lze některé výpočty obejích skrz CPU, ale to se dle autorů OpelCL benchmarku neděje/nepoužívá.
http://www.macupdate.com/info.php/id/32266
Double precision vypadá skutečně jen jako volitelná možnost, alespoň co jsem vyčetl z dokumentu na Khronosu (OpenCL specifikacions):
"-cl-single-precision-constant Treat double precision floating-point constant as single precision constant.... This option is ignored for double precision numbers if the device does not support double precision or if it does support double precison but CL_FP_DENORM bit is not set in CL_DEVICE_DOUBLE_FP_CONFIG." kapitola "5.4.3.2 Math Intrinsics Options" v
http://www.khronos.org/registry/cl/spec ... 1.0.48.pdf pokud budeš číst dál, tak to i vypadá, že bude problém s některým typem výpočtu atd. Dle vývojářů OpenCL benchmarku však DP na hd4850 chodí (stejně tak na nv) a není nutné řešit okliku
Drivery byly dělané spolu s ATI a nvidií, jelikož Apple potřeboval přímou podporu vendorů. Akcelerace některých věci byla už od dob ATI Rage skrz OpenGL (např image resize, některé efekty do videa ve Final cut atd, osobně vyzkoušeno). Z toho, co se pořád dočítám je i problém v ATI frameworku, resp v jeho compileru, který Apple ATI poskytlo.
ještě navíc:
As a follow-on, after contacting someone in the know, the reason why Snow Leopard doesn't support pre-HD4xxx series ATI GPUs is due to hardware limitations. I didn't ask for specific clarification, but speculating, one the major differences in Stream Processing Unit organization in the HD4xxx series compared to the HD3xxx and HD2xxx series is that the HD48xx organizes 80 Stream Processing Units together in a SIMD core with a shared local data store. This local data store is something that nVidia has had since the 8xxx series and among other things can avoid polling the CPU for data and the lack of it has been identified as a major reason why Folding@home performance in the HD2xxx and HD3xxx series is so poor compared to nVidia GPUs. I'm not familiar with the technical details of OpenCL requirements, but I wouldn't be surprised if OpenCL was written with local data store between groups of execution units in mind. In any case, I'm told that the forthcoming Windows/Linux OpenCL drivers won't support the HD2xxx or HD3xxx either.
http://www.insidemacgames.com/forum/ind ... opic=36536#
osobně v tom mám dost bordel (každý říká něco jiného, ale vývojářům se snad dá věřit), Apple však podporu DP vyžadoval, jak si s tím poradí vendoři čipů byl jejich problém
Napsal: pon říj 26, 2009 11:44 pm
od no-X
Ta citace mi přijde trochu zmatená. HD2900 a HD3800 na tom ve F@H byly docela dobře (poměr teoretického a reálného výkonu, který se často zmiňuje). Tenhle poměr byl ve statistikách zhruba srovnatelný s nVidií až do příchodu HD4800. Pak šel kalupem dolů, což je způsobeno tím, že kód je uzpůsobený pro 320SPs a víc nevyužívá, takže nové čipy jsou využity jen ze 40% a rozdíl mezi teoretickým a reálným výkonem je pak oproti nVidii (jejíž klient využívá čip celý) obrovský.
Napsal: úte říj 27, 2009 12:04 am
od Palda
citace je vytržená z dokumentu, doporučuju ho spíš prohlédnout, je to tam uvedené celé
co si to pamatuju, tak se výkon srovnával hlavně s CPU (nvidia v té době něměla podporu foldingu), po vydání hd4xxx a nvidia klientu nejde výkon srovnávat, jelikož dostávají karty ruzné druhy výpočtů dle jádra (stejně jako PS3 dostává pro Cell věci, v kterých je Cell lepší než ostatní jednotky ve foldingu). Obecně mají však nvidia vyšší výkon ve výpočtech, které provádí i ATI karty a vyšší výkon vzhledem k množství čipů, co jsou do foldingu zapojené (resp vyšší výkon na čip) teď se dočítám něco o nepodpoře double precision na hd48xx řadě, např:
http://www.gpugrid.net/forum_thread.php?id=705 , mám pocit, že to anderson (dělá GPU klienta pro folding) zmiňoval, když vyšel klient pro nvidia karty, takže je asi s OpelCL jasno, double precision je tedy volitelná, to by taky vysvětlovalo problémy s ATI GPU pod OpenCL v OSX, to co udělá nvidia snadno, má ATI složitější
Napsal: sob říj 31, 2009 9:44 pm
od Ren
Palda píše:9400m, gpu bohužel nemůžu vyzkoušet, mám právě 2600pro
Ja ho vyzkouset muzu, takze jestli mas nejaky snadno opakovatelny bench, sem s nim.
Napsal: sob říj 31, 2009 10:42 pm
od Palda
Tuna jich je tady:
http://www.insanelymac.com/forum/index. ... pic=182874
první Galaxy je myslím dostačující, jen doporučuji přečíst pasáž o 9400m, stejně to však bude rychlejší jak cpu.
zajímavý je i AObench, který jede skoro na všem:
http://lucille.atso-net.jp/aobench/
jinak nejlepší byl původni OpenCL bench verze 0.25, ale nemůžu ho nikde najít, možná bude ještě na macbooku. Jen se hodil do terminálu a hodil výsledek (těch je na webu plno, pro porovnání super), pro CPU i GPU byly stejné úlohy.
//edit:
tak nakonec jsem jen dohledal na macbooku:
http://www.sendspace.com/file/m3se8k stačí hodit do terminálu (nebo jen spustit, spustí se automaticky terminál), spočítá výsledek jak pro cpu, tak pro gpu (pokud gpu umí openCL), C2D 2,33GHz má okolo 15,3s