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ě

Cell procesor a současné PC procesory

B.Gen.Jack.O.Neill (165)|6.1.2008 12:23
Ahoj, chtěl bych se zeptat, jak je to v současné době v porovnání mezi výkony konzolí (X Box 360, PS3) a procesorů PC? Hlavně mě zajímá, proč to pro PC vypadá tak bídně? Když PS3 CPU má 8 jader na 3,2 GHz a CPU pro PC se v high-endu klepou s 4 jádry na 3 GHz? Nebo grafické karty, proč do nich dali grafciké čipy které ve své době podrtili všechny PC GPU? A jak je to dnes? Prostě, já si vždycky myslel že do PC jdou ty nejlepší nejnovější technologie, a když jsem si před chvílí náhodou přečetl už přes rok staré specifikace PS3, tak jsem málem omdlel. Proč se ta tehnologie nedá do PC? Proč neudělají pro PC VGA jako je v PS3 když to umějí? Proč Intel neudělá CPU do PC lepší než Cell?
P@pi (1519)|6.1.2008 12:33
Dej si vyhledat cell tady na foru...

https://www.svethardware.cz/forum/showthread.php/9661-ps3-2-tflops-je-to-realne
https://www.svethardware.cz/forum/showthread.php/1710-ibm-cell

Viz. třeba porovnání XBox 360 vs PS3: http://xbox360.ign.com/articles/617/617951p1.html V běžném použití je ten CPU dost mizerný... A to co je v XBoxu 360 taky není žádná výhra. Samozřejmě to je studie Microsoftu, takže je tam hodně propagován XBox 360, ale stejně je vidět, že to asi zase taková bomba nebude...

Ke GPU. V době, kdy začal vývoj XBox či PS3, tak si lepší GPU nenašel. Pro XBOX byl speciálně vyvíjen ATI Xenos, což rozhodně neni žádný pomalý GPU a od něho poté ATI pokračovala k normálním GK jaké používáme dnes. V PS3 je GF7, což bylo ve své době asi to nejlepší na trhu. Co jiného bys tam chtěl dát, ale především... čím bys chtěl GF8 či nějakého PCčkového Radeona chladit?
speedsnail (4876)|6.1.2008 12:33
Grafické čipy v konzolích jsou už pomalejší než dnešní highend v PC. Tam je stejná technologie. U CPU je situace trochu (no možná víc než trochu) jiná. Konzole nejsou omezeny x86 platformou (použivaná v PC), která je co se výkonu týče tak trochu ve slepé uličce. Proto se nedá IBM CEll použít v PC. Jsou to uplně odlišné architektury, moc do toho nevidim tak se nebudu rozepisovat. :)
mech13 (5526)|6.1.2008 12:39
pletes dohromady jabka a hrusky. spis nez jabka a hrusky teda prevdovku a vanilkovy rohlicky

cell je neco totalne odlisnho od stolnich x86 procesoru, spolecne to ma jen to ze se to jmenuje procesor. je to totalne odlisna architektura, tech 8 jader je zavislych na jednom hlavnim, tech 8 je pomocnych (a jedno vzdy zmrseny z vyroby takze 7 funkcnich). jestli chces vedet vic, najdi si treba na wiki pojmy jako RISC, CISC
na PS3 se da rozchodit linux a vykon cellu pro pocitacove aplikace je smesny, at ma jader a frekvenci kolik chce

grafika ted nevym jaka tam je, ale je to taky dost specificky kousek ktery ma vykon "za urcitych podminek"

konzole maji takovy vykon proto, ze maji jednotnou specifikaci a kdyz se dela hra, tak se optimalizuje na miru tomu HW ktery je pouzit. ve stolnich PC jsou vsechny specifikace HW obecne, kazdy ma jine CPU, jinou frekvenci, jinou grafiku, jinou velikost RAM takze delani aplikaci na PC je mnohem obecnejsi a mene optimalizovane. takze u vykoneho PC se muze zdat ze je slabsi nez konzole, ale ve skutecnosti ma PC mnohem vetsi vykon
B.Gen.Jack.O.Neill (165)|6.1.2008 12:48
Moc díky. Za to pletení se moc omlouvám, ale nemůžete čekat pokročilé znalosti z oblasti CPU, jejich vnitřních fcí, architektury od studenta 2. ročníku střední průmyslovky. Jinými slovy, donedávna mi stačilo vědět že něco takového je, až ted se snažím do toho pronikat, a není to snadné, to mi věřte. Nevím co je to x86 architektura (teda, ne tak jako vy, vím jen základy a nějaké možnosti). Snažím se do toho pronikat, ale jde to těžce, a každému kdo mi trochu něco objasní jsem moc vděčný.
P@pi (1519)|6.1.2008 12:58
Skvělá je anglická verze wikipedie, je tam toho mraky ;-).
mech13 (5526)|6.1.2008 13:00
jn, je to cely docela slozity... archiektura x86 se s nami tahne uz od 16bitovych 8086, a pokracovala vyvojem pres 80286, 386 a tahne se s nami az do dnesni doby. jestli zvladas trochu anglictinu, tak dost info najdes treba zde http://en.wikipedia.org/wiki/X86 (cz je hodne strucny http://cs.wikipedia.org/wiki/X86 )
dalsi architektury jsou treba alpha, hppa, ppc (32 bit), ppc64, sparc64, amd64 ia64 (64 bit rozsireni x86, nekdy oznacovane x64)
pavel_p (993)|6.1.2008 15:29
[QUOTE=mech13;78678]... amd64 ia64 (64 bit rozsireni x86, nekdy oznacovane x64)[/QUOTE]
Drobná chybka. IA-64 je Itanium a nemá s x86(-64) nebo amd64 nic společného
mech13 (5526)|6.1.2008 16:14
[QUOTE=pavel_p;78713]Drobná chybka. IA-64 je Itanium a nemá s x86(-64) nebo amd64 nic společného[/QUOTE]

jo diky... mi to hned nedocvaklo. jsem si zpletl s EM64T - tak intel nazyva jeho 64bit rozsireni x86
B.Gen.Jack.O.Neill (165)|15.1.2008 20:35
Všem děkuji. Tak jsem se tak prokousával seč mi síly stačily tou architekturou, atd., istrukčními sadami, prostě co jen šlo přeložit. Tak jestli se tedy mohu jen zeptat na doplnění co jsem nepřeložil, co jsou to ty registry instrukční sady? Stačí odkaz na něco v češtině, nebo jen nějaký natuknutí, neptám se zbytečně, prokousat se tím s malou znalostí AJ je opravdu dost těžké. Ještě EDIT: Asi je pro mě skoro zbytečné se tím prodírat bez znalosti programování atd. je to tak?
mech13 (5526)|15.1.2008 20:57
tak docela zalezi v jakym to bylo kontextu, takto me napada ze asi basnik myslel registry ktery ma ta ktera architektura bezne k dispozici... proste normalni registr co na tech CPU byvaji. asi

jinak aspon nejaky zaklady programovani treba v C nebo pascalu a assembleru by docela pomohly... nic svetobornyho bys vedet nemusel, ale docela dost to pomuze a rozsiri obzor
Milan Šurkala (160)|19.1.2008 19:00
No registr je vlastně malá paměť v procesoru, kde se aktuálně data počítají nebo jen dočasně uchovávají (není to žádná cache, kam se data odkládají!!!). V x86 procesorech je těch registrů spousty, jen pro 32-bitové integery tam jsou registry EAX, EBX, ECX a EDX, pro desetinná čísla dalších osm 80-bitových registrů ST0-ST7. Pokud má procesor MMX instrukce (což maj dnes všechny), pak 64 bitů z těch STx registrů je přejmenováno na MM0-MM7. Lepším řešením jsou 128-bitové registry SSE (XMM0-XMM7), které už jsou zvlášť. Těch je také osm, ale Athlony 64 jich mají v 64-bitovém módu přístupných 16 (XMM0-XMM15). Pak tam je spousta dalších speciálních registrů a nutno říct, je v tom pořádný "bordel".
Nevýhodou x86 architektury je její neuvěřitelná zastaralost, ale kdybys chtěl postavit procesor na nové architektuře, musel bys buď přepsat všechny programy, což nikdo neudělá, nebo si nechat napsat nějaký překladač, který x86 instrukce přeloží do kódu nových procesorů, což zase všecko zpomalí. Podobnou technologii kdysi razila Transmeta u svých procesorů. Samozřejmě, kdybys psal programy už pro procesor s novou architekturou, mohl bys využívat plný potenciál toho procesoru.
IBM Cell je vlastně IBM PowerPC s osmi (aktivních je většinou 6-7) pomocnými jádry, které jsou značně zjednodušené a neumí toho hodně. Pro mnoho operací se však paralelismus hodí a oni mohou čerpat ze své jednoduchosti. Co je jednoduché, může být rychleji taktováno a za jeden takt toho více zpracuje.

Ukážu například pár zdrojových kódu z mé bakalářské práce věnující se MMX a SSE, toto je klasické C++

void *invertImage(unsigned char *image, unsigned char *image2, int imageSize){
for (int y = 0; y < imageSize; y++) {
image2[y] = 255 - image[y];
}
return 0;
}

Strojový jazyk assembler s x86 instrukcemi vmísený do C++, to ECX, ESI, EDI, to jsou právě ty registry, když to budeš chtít v SSE, chce to jen trochu úprav. Např. řádek mov eax, [esi] se musí nahradit SSE příkazy movdqu xmm1, [esi]. No prostě není to žádný med.

void *invertImageAsm(unsigned char *image, unsigned char *image2, int imageSize){
int kontrola = 0;
_asm{
mov ecx, imageSize //velikost pole
mov esi, image
mov edi, image2
loop1:
mov eax, [esi]
mov ebx, 255
sub ebx, eax
mov [edi], ebx
inc esi
inc edi
dec ecx
jnz loop1
}
return 0;
}