Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

GPU vs. CPU

B.Gen.Jack.O.Neill (165)|20.1.2009 17:14
Ahoj, dneska se vsude mluvi o "vsemocnem a superrychlem" GPU. Tak mě tak napadlo, proč je vlastně CPU oproti GPU tak pomalý? Respektive, předpokládám že kdyby to šlo, byl by CPU stejný jako GPU, takže logicky GPU neumí něco co CPU umí, protože jinak by byly taky 256 jádrové CPU. V čem je tedy CPU tak lepší a sofostikovanější než GPU, když v některých věcech je GPU mnohem rychlejší?
Smeli (2302)|21.1.2009 06:38
Jednoduše by se dalo říct, že GPU je upraveno pro jistý druh operací kdežto CPU je takový "univerzál"
Aigor (201)|21.1.2009 14:43
..zatížený kompatibilitou

Dneska by IMHO nebyl problém vyrobit superCPU, ale někdo by musel vymyslet nový programovací jazyk na nový instrukce a do toho přepsat nový OS a v něm všechny nový App pod novým API...
Draken (1578)|30.1.2009 21:24
GPU se nestrá o nic jinýho než výpočet grafiky..nic jinýho neumí
kdežto CPU vypočítává fyziku,komprimuje, dekomprimuje, komunikuje s NB a SB a k tomu všemu musí všemu hardware určovat co má udělat...je to dříč
jinak intel už má v plánu takový jádro postavil(resp. už ho staví)co umí počítat i grafiku
dokonce má být mnohem rychlejší než jákákoliv jiná dnešní GPU...(upřímě myslím že maj moc velký oči)
a reálný je výkon ala intel 4500


spíš bych si kladl otázku proč GPU nepomůže trochu CPU ...a proč už GPU není taky dvoujádrové(teď nemyslím X2-dvě jádra vedle sebe ale dvě jádra v jednom)

a podle mě úplně největší brzda systému je disk ...vždyť přenosy v GB/s u PCI-e je mnohem víš než SATA300
tam je třeba vývoje...
Salamander (6177)|30.1.2009 21:34
[QUOTE=Draken;213097]
spíš bych si kladl otázku proč GPU nepomůže trochu CPU ...a proč už GPU není taky dvoujádrové(teď nemyslím X2-dvě jádra vedle sebe ale dvě jádra v jednom)

[/QUOTE]

Pokud to myslis takhle, tak ve skutecnosti se moderno GPU doopravdy skladaji z mnoha jednoduchych jader - stream procesoru

citace (taky uz postarsi) z EHW :zvracejicismajlik :
"Dá se říct, že grafické procesory jsou vícejádrovými procesory již více než deset let. V roce 1998 byl například zkonstruován grafický čip Riva TNT, který měl dvě pixel pipeline a dvě jednotky pro mapování textur. Od té doby pokračujeme ve stejných stopách – současný čip GeForce 8800 má 128 procesorových jednotek. Nejenom, že má 128 procesorových jader, ale každé jádro může zároveň zpracovávat mnoho vláken nebo kopií programu."

nebo tohle, samozrejme se to neda srovnavat s CPU, ale vic jader tam proste je :p
[odkaz, pro zobrazení se přihlaste]
Smeli (2302)|30.1.2009 21:49
Draken - GPU taktéž zvládá fyziku, komprimace, dekomprimace, šifrování, dešifrování dat atd - a to dokonce při mnohem nižší frekvenci v mnohem kratším čase. Jde pouze architekturu, kde CPU jsou stavěná pro univerzální použití s většinou programovacích jazyků, pro GPU musí být napsán program přímo tak, aby mu porozumělo. Jako příklad stačí třeba užití GPU k výpočtům F@H, kdy třeba GPU není schopno spočítat WU určenou pro CPU, ale WU, která je pro něj vybrána spočítá mnohem rychleji než WU se kterou si poradí CPU.
mstejska (2912)|30.1.2009 22:07
Uz se to tady psalo jednou, ale snad to muzu rict znovu. Problem vice jader a to jak u gpu tak cpu je, jak je zamestnat? Zkus si cinnost nejakeho programu rozdelit na male useky, ktere jsou na sobe nezavisi. Typicky priklad muze byt komprese obrazu, rozdelis obraz na cverecky 8x8 pixelu a u kazdy takovy cverecek muzes predhodit jednomu jadru (zase jedno jestli gpu nebo cpu) a to ten cverecek zkompresne. To je priklad ulohy ktera se paralelizovat da. Priklad ulohy ktera se zparalelizovat 'neda' muze byt kompilace jednoho souboru, proste se musi parsovat jeden element kodu po druhem a tyhle elementy se musi postupne 'prekladat' v zavislosti na tom jak jiz byly prelozeny predhozi elementy.
Draken (1578)|3.2.2009 17:56
jj tak to bylo myšleno

smeli-Jde pouze architekturu, kde CPU jsou stavěná pro univerzální použití s většinou programovacích jazyků, pro GPU musí být napsán program přímo tak, aby mu porozumělo

pak mi teda řekni proč se nevyvine něco jak directX pro běžné aplikace(zkrátka knihovna jež by grafice tyhle přikazy určila)
mstejska (2912)|3.2.2009 20:13
Open CL
Draken (1578)|3.2.2009 21:50
můžeš to nějak upřesnit...znám open GL ale CL nevim co umí...
mstejska (2912)|3.2.2009 22:08
Zkus to najit na webu. staci do googlu zadat open cl. Jde o otevreny standard, ktery planuji podporovat jak nVidia tak i ATI. Da se rict ze je to neco jako 'compute' shadery planovane MS do directx 11. Proste dalsi k "close to metal" od AMD coz podporuje jenom amd a CUDA od nVidie. Podpora open CL je planovana GCC kompileru, takze uvidime. Pokud se nepletu tak ted je open CL navrh a na implementaci se teprve ceka.
Co jsem se dival na priklady programu pro 'brook' (closeToMetal) podporovane AMD, tak neni problem naprogramovat neco co ti pobezi na GPU. Nejtezsi bude rozsekat dnesni linearni algoritmy na male kouscky, ktere muzou bezet paralelne nezavisle na sobe.
Draken (1578)|4.2.2009 08:38
hmm to zdí dobře...
Dojigiri (1629)|4.2.2009 14:24
Nebo NVidia CUDA, taky zajímavá záležitost, ale zatím pouze pro NVidie.
Smeli (2302)|4.2.2009 14:34
Dokonce v magazínu máme článek o OpenCL.
cool.user (2822)|4.2.2009 14:36
[QUOTE=Dojigiri;214954]Nebo NVidia CUDA, taky zajímavá záležitost, ale zatím pouze pro NVidie.[/QUOTE]

Nvidia cuda je imho stejne mrtva jako ati stream. Proprietarni system jednoho vyrobce nikdy v historii neslavil buh vi jaky uspech.
pavel_p (993)|4.2.2009 19:55
Ono taky na zpracování dat v GPU je třeba, aby výpočet šel paralelizovat a v algoritmu nebylo moc podmínek. Takže se to hodí skutečně hlavně na grafiku a případně nějaké vědecké výpočty. GPU vůbec neumí např. pracovat s texty nebo to pro něj rozhodně není normální datová struktura a bylo by v tom strašně neefektivní. GPU je jen rychlé, ale zdaleka ne všemocné, jinak by touto dobou už asi vyhynuly klasické procesory.
Draken (1578)|4.2.2009 20:08
jj to je pěkný...docela v to věřím že gpu jednou dost pomůže cpu...resp. je možný že budou specializovaný karty no k čemu má každej dneska tolik PCI-e když tam nemá co dát...
Smeli (2302)|4.2.2009 20:18
"A od kdy umí tatínek péct?"

Grafické karty, zvukové karty, TV/FM karty, řadiče, síťové karty...
Draken (1578)|5.2.2009 09:34
dobře ale né PCI-e 16x když máš fošnu s třema PCI-e tak je škoda když je nevyužiješ ne?
A CO SE TÝČE pci-E 1x tak tam by ta pomoc byla podstatně slabá ne?

"jo a tatínek se péct ještě nenaučil"
Smeli (2302)|5.2.2009 10:25
Ale ty PEGy jsou tam kvůli CF/SLI... Se koukni na starší desky, které neměli podporu těhle technologií - neměly ani vícero PEG slotů. Pokud jde o PCIe 1x tak neznám propustnosti ani možnosti napájení a kdesi cosi, ale sejde na tom, jakou pomoc si člověk představí. Teoreticky by pak stačili PCIe 4x a více (vememe li v potaz pomoc na úrovni výkonějšího GPU). Ale tohle je celé jen spekulování vedoucí nikam.
cool.user (2822)|5.2.2009 10:52
[QUOTE=Draken;215339]dobře ale né PCI-e 16x když máš fošnu s třema PCI-e tak je škoda když je nevyužiješ ne?[/QUOTE]

Do pcie 16x muzes vlozit jakoukoliv pcie kartu.
Draken (1578)|5.2.2009 12:41
jj ale lidi co maj tři sloty PCI-e 16x což už dneska neni extra přepich by to mohli využít (víc jak dvě karty zapojovat nemá smysl)a navíc takovou desku máš dneska už za 2500 ,pokud by ta karta byla PCI-e 4x pak by to bylo asi nejlepší(z hlediska kompatibility).

stále mě ale zaráží kde skončila ta idea že bude možné provozovat dvě grafiky v SLI/Crossfiru a třetí bude počítat fyziku...zrovna teď u mirror edge by to bylo docela fajn.
Smeli (2302)|5.2.2009 12:44
Google...
Draken (1578)|6.2.2009 12:36
hmm u SLi resp. u nvidie je to podporováno přimo v psychX knihovně...u Ati jsem nějak nenašel...
Smeli (2302)|6.2.2009 13:09
A to znamená co? To znamená, že fyzika není podporována (ano, jde to obejít, dát do jednoho PC kartu ATi a druhou od NV a ATi bude na grafiku a NV na fyziku).
Draken (1578)|6.2.2009 19:15
hou si BŮH dobrej postřeh!