Šta je novo?

Micro$oft & nVIDIA CPU-ovi!

  • Začetnik teme Začetnik teme Nedjo
  • Datum pokretanja Datum pokretanja
ma nemoj 🙂

cak je i AltiVec u PowerPC-u bolje izveden nego SSE-a u x86...
 
... al ga nitko nema doma u "normalnoj" konfiguraciji ... kao još mnogo boljih stvari
 
... al ga nitko nema doma u "normalnoj" konfiguraciji ... kao još mnogo boljih stvari

Ima, ima 🙂

Koliko se secam, AltiVec se nije bas tako cesto apdejtovao kao sto je to bio slucaj sa iSSE. Inace, Power je prvi dosao sa specificnin setovima instrukcija, a kasnije tek Pentium MMX.
 
ma nemoj 🙂

cak je i AltiVec u PowerPC-u bolje izveden nego SSE-a u x86...
otkud ti to!? Ja se secam jednog intervjua sa Karmakom u kome je on rekao da je optimizacija Quake masine za AltiVec bila naporan posao, tezi u odnosu na SSE optimizaciju.
 
npr:
AltiVec ima prednost pri obradi ARGB-a (alpha + RGB) jer moze da ucita/snimi cetiri 32bitne vrednosti u jedan 128bitni registar sto je pogodno za manipulaciju ARGB pixelima (nema penala ako su vrednosti u data cache-u). Ovo se secam da sam citao na chiparchitect sajtu. Intel je u SSE2 dodao slicnu mogucnost ali sa 2x 64bitni podacima sto bash i nema neku primenu.

i josh kao bonus (nije direktno vezano sa SSE instrukcije) Pentium4 exec. unti moze da primi SSE instrukciju svaki drugi ciklus a pored toga jedinaca za izvrsavanje SSE-a se koristi i za FP instrukcije (sto najverovatnije nije problem jer predpostavljam da se sve (i SSE i FP) razlazu na microOp pa je svejedno). *ako neko moze da objasni kako stvari tacno funkcionisu bilo bi lepo 😉 ali i dalje ostaje jedan exec. unit za (SSE/FP) load/store i jedan za ostale SSE/FP funkcije... ovo je Intelova implementacija SSE-a, kod AMD je posve drugacije.

dalje, u tom svetlu, AltiVec ima 32 128bitna registra vs. 8 SSE registara kod Pentiuma 4. Kod Pentiuma MMX instrukcije nisu cak ni imale zasebne registre vec su koristile FPU registre (MMX se pojavio 2 godine pre AltiVeca)...

kad pogledash sta donose nove verzije SSE-a tacno se cini da Intel dodaje/krpi stvari u hodu (naravno da poboljsava). Koliko znam postoji samo jedna verzija AltiVec-a. Jedino konzole (Xboxu i GameCube/Wii-ju) imaju drugaciji AltiVec koji nije 100% kompatibilna sa originalnim. Mozda je to zato sto su AltiVec smislili Apple-ovi inzinjeri, najverovatnije su namenski smisljeno optimizovali AltiVec za sam MacOS. Novi IBM Power6 bi tek sad trebao da dobije AltiVec (samo namenski Power4 (PowerPC G5) je imao AltiVec) tako da ce ga sad najverovatnije unaprediti.

i bottom line: ako je nekome teze da radi sa AltiVecom ne znaci da je SSE bolji 🙂 - pogledaj perfomanse PhotoShop-a na Mac-u i PC-ju (dok je Mac imao PowerPC procesore...). ili Adobe inzinjeri ne znaju da optimizuju kod za SSE ili je SSE jednostavno sporiji/losiji od AltiVec-a 🙂
 
nisam ja rekao da je sse mnogo dobar.. rekao sam da je jedino sto valja kod x86... kada sam napisao sse mislio sam na 1,2,3 ... problema ima i te kako pri optimizaciji za sse posebno kada trebas da prilagodis podatke da bi mogao da uposlis paralelizam... recimo sse nemaju jednu najprostiju instrukciju a to je ucitavanje jednog 32bitnog float-a ( 1-23-8 format ) na sva cetri predvidjena mesta u sse registar nego moras da ucitas skalarno pa da se onda igras ra raspakivanjima ili shuffle-ovima... sto sve jede taktove za nista....( korisceno za mnozenje vektora sa matricom...)
inace 64-bitna arhitektura podrzava 16 sse registara i isto toliko 64-bitnih registara (gpr) tako da je to poboljsano...
inace jeste bilo glupo sto su mmx registre maskirali preko fpu registara ali opet cinjenica je bila da kada koristis jedno ne koristis drugo.. (a ko se neko seca emms intrukcije ) takodje bi ovde trebalo da se uporede i cene PowerPC procesora i cene pentiuma u to vreme pa da se onda zakljuce odnos performansa/$
 
Poslednja izmena:
Da bas to baratanje sa tipovima podataka vidim da mnogi kritikuju (intel poboljsava 🙂) kod sse-a (vidi wikipediju sse2).

a sto se cene tice prava je steta sto PowerPC nije mainstream CPU kao Pentiumi: cene bi sigurno bile uporedive sa danasnjim pentiumima... Btw treba videti koju povrsinu imaju G5 i P4/Core...
 
npr:
AltiVec ima prednost pri obradi ARGB-a (alpha + RGB) jer moze da ucita/snimi cetiri 32bitne vrednosti u jedan 128bitni registar sto je pogodno za manipulaciju ARGB pixelima (nema penala ako su vrednosti u data cache-u). Ovo se secam da sam citao na chiparchitect sajtu. Intel je u SSE2 dodao slicnu mogucnost ali sa 2x 64bitni podacima sto bash i nema neku primenu.

i josh kao bonus (nije direktno vezano sa SSE instrukcije) Pentium4 exec. unti moze da primi SSE instrukciju svaki drugi ciklus a pored toga jedinaca za izvrsavanje SSE-a se koristi i za FP instrukcije (sto najverovatnije nije problem jer predpostavljam da se sve (i SSE i FP) razlazu na microOp pa je svejedno). *ako neko moze da objasni kako stvari tacno funkcionisu bilo bi lepo 😉 ali i dalje ostaje jedan exec. unit za (SSE/FP) load/store i jedan za ostale SSE/FP funkcije... ovo je Intelova implementacija SSE-a, kod AMD je posve drugacije.

dalje, u tom svetlu, AltiVec ima 32 128bitna registra vs. 8 SSE registara kod Pentiuma 4. Kod Pentiuma MMX instrukcije nisu cak ni imale zasebne registre vec su koristile FPU registre (MMX se pojavio 2 godine pre AltiVeca)...

kad pogledash sta donose nove verzije SSE-a tacno se cini da Intel dodaje/krpi stvari u hodu (naravno da poboljsava). Koliko znam postoji samo jedna verzija AltiVec-a. Jedino konzole (Xboxu i GameCube/Wii-ju) imaju drugaciji AltiVec koji nije 100% kompatibilna sa originalnim. Mozda je to zato sto su AltiVec smislili Apple-ovi inzinjeri, najverovatnije su namenski smisljeno optimizovali AltiVec za sam MacOS. Novi IBM Power6 bi tek sad trebao da dobije AltiVec (samo namenski Power4 (PowerPC G5) je imao AltiVec) tako da ce ga sad najverovatnije unaprediti.

i bottom line: ako je nekome teze da radi sa AltiVecom ne znaci da je SSE bolji 🙂 - pogledaj perfomanse PhotoShop-a na Mac-u i PC-ju (dok je Mac imao PowerPC procesore...). ili Adobe inzinjeri ne znaju da optimizuju kod za SSE ili je SSE jednostavno sporiji/losiji od AltiVec-a 🙂

Ma Karmak prica i kako je dual core useless 🙂

Medjutim...

OpenGL Improvements: OpenGL is the industry-standard API for developing portable, interactive 2D and 3D applications. Leopard also provides a dramatic increase in OpenGL performance by offloading CPU-based processing onto another thread which can then run on a separate CPU core feeding the GPU. This can increase, or in some cases, even double the performance of OpenGL-based applications.

Mada, respect za QIII 🙂

Pocetak i kraj price o AltiVec-u: G4 procesor sa FSB-om na 166 MHz (realnih i efektivnih!) i taktovima do 1.67 radi sulude stvari pod OS X... Ja ponekad prosto ne verujem kako je sve dobro optimizovano i utegnuto - imas utisak da je unutra visetruko (na papiru) brzi Pentium M.

Sa te tacke gledista, steta je sto je Apple presao na Intel procesore, jer su Apple, IBM i Motorola zajedno razvili taj PowerPC. Naime, ideja jeste Apple/IBM-ova, ali je Apple, kao svog dugogodisnjeg partnera, uvukao i Motorolu u ceo projekat... Fascinantno je koliko je Apple ulozio R&D-ja u ceo Macintosh projekat. Razvili su prakticno svoj CPU (i to odlican: G5 je sasvim uporediv sa A64, a uz optimiziaciju koju donosi OS X sve je mnogo bolje iskorisceno); svoj cipset; sopetveni OS; vrhunski softver (u pro i consumer segmentima...)...

Medjutim, Intel je toliko jak po pitanju proizvodnog procesa da moze da isporuci koliko god treba procesora, po extra dobrim cenama... Power aritektura jednostavno nije mogla da se po tom pitanju nosi sa Intel-om. Zanimljivo je npr. da je najveci problem tokom tranzicije na Intel upravo i bilo to prebacivanje AltiVec instrukcija u ”komparabilne” SSE instrukcije... Pod Rosetta-om u pocetku nije ni radio AltiVec sto je bio veliki nedostatak.

Mislim da pored Intel-a i AMD-a, nema ko sta da trazi u segmentu X86 procesora. Intel je tu suvereni lider i tesko da u ovoj konstelaciji odnosa moze bilo sta da ga ugrozi.
 
Poslednja izmena:
npr:
AltiVec ima prednost pri obradi ARGB-a (alpha + RGB) jer moze da ucita/snimi cetiri 32bitne vrednosti u jedan 128bitni registar sto je pogodno za manipulaciju ARGB pixelima (nema penala ako su vrednosti u data cache-u). Ovo se secam da sam citao na chiparchitect sajtu. Intel je u SSE2 dodao slicnu mogucnost ali sa 2x 64bitni podacima sto bash i nema neku primenu.

Moze i na SSEn da se radi 4x32-bit, kao i sve od 16x8-bit do 2x64-bit.
SSEn najvise ubija to sto je izgradjen na x86/87 ISA i od njega vuce sve prednosti (yeah right) i mane:
Dvooperandne instrukcije - Altivec koristi trooperandne sto omogucava implementaciju jos par zanimljiv stvari o kojima SSEn moze samo da sanja.
Moze da baci interupt za svasta - Altivec staje samo za Load/Store.
Malo registara.
Do nedavno su 128-bitne instrukcije bile prvo deljene pa onda izvrsavane.
Opsti utisak je da prave patchwork od cele stvari, ali to je vise subjektivno...

Mada kako je krenulo sa koprocesorima, mozda i nije tako lose da SSEn ostane ovako za prvu pomoc, a ko hoce nesto bas ozbiljno da uradi moze da nabavi koprocesor.

kovacm je napisao(la):
a pored toga jedinaca za izvrsavanje SSE-a se koristi i za FP instrukcije (sto najverovatnije nije problem jer predpostavljam da se sve (i SSE i FP) razlazu na microOp pa je svejedno). *ako neko moze da objasni kako stvari tacno funkcionisu bilo bi lepo 😉 ali i dalje ostaje jedan exec. unit za (SSE/FP) load/store i jedan za ostale SSE/FP funkcije... ovo je Intelova implementacija SSE-a, kod AMD je posve drugacije.

To sto SSEn i x87 instrukcije dele iste jedinice nije uopste problem. Zapravo, sreca je sto je uopste tako, jer se instrukcije svakako ne mesaju, a funkcionaln jedinice ne moraju da zauzimaju dva puta vise mesta.

kovacm je napisao(la):
Mozda je to zato sto su AltiVec smislili Apple-ovi inzinjeri, najverovatnije su namenski smisljeno optimizovali AltiVec za sam MacOS.

AltiVec je delo Motorole tj. Freescale-a.

genuine je napisao(la):
nisam ja rekao da je sse mnogo dobar.. rekao sam da je jedino sto valja kod x86...
Kod x86 valja jedino postojanje konkurencije koja ga tera dalje. Sta bi samo bilo da je taj silan RnD ulozen u redovan ISA...
 
Meni se navise svidja ideja najstandardnijeg RISC procesora koji ima troadresni format i load/store arhitekturu, ima veliki broj registara opste namene i specijane namene, koji cak i ne mora da bude out of order ali kojih moze da stane mnogo vise na chip... takodje ne bi bilo lose da se ubace i posebni namenski procesorcici nesto slicno gpu-ovima samo malo opstije... znaci barem kako se meni cini, na mesto ogromnog kesa, ogromnih jedinica koji samo sluze da povecaju IPC da se procesori odreknu velikog IPC-a i da se udruze zajedno u vecim kolicinama ali ne u bus arhitekturi vec nesto drugacije... kada je na pametan nacin organizovan protok informacija izmedju procesora automatski se smanjuju zahtevi za memorijom pa moze vise takvih da se stavi... itd.
 
AltiVec je delo Motorole tj. Freescale-a.

to sam i ja mislio (mada nikad nisam bio siguran) ali onda sam procita... http://en.wikipedia.org/wiki/Altivec - "AltiVec was developed between 1996 and 1998 by Keith Diefendorff, the distinguished scientist and director of microprocessor architecture at Apple Computer."

10x 2 DeanXP na pojasnjenju... 😉

@genuine jel ti to pricash o Cell-u 😀
"nesto slicno gpu-ovima samo malo opstije"
"na mesto ogromnog kesa"
"ne mora da bude out of order"
...
 
Poslednja izmena:
Meni se navise svidja ideja najstandardnijeg RISC procesora koji ima troadresni format i load/store arhitekturu, ima veliki broj registara opste namene i specijane namene, koji cak i ne mora da bude out of order ali kojih moze da stane mnogo vise na chip... takodje ne bi bilo lose da se ubace i posebni namenski procesorcici nesto slicno gpu-ovima samo malo opstije... znaci barem kako se meni cini, na mesto ogromnog kesa, ogromnih jedinica koji samo sluze da povecaju IPC da se procesori odreknu velikog IPC-a i da se udruze zajedno u vecim kolicinama ali ne u bus arhitekturi vec nesto drugacije... kada je na pametan nacin organizovan protok informacija izmedju procesora automatski se smanjuju zahtevi za memorijom pa moze vise takvih da se stavi... itd.

To sto si opisao moze da ode u dve krajnosti, a vec imamo primer za obe.
Jedna je Cell sa velikom FP snagom, a druga je UltraSparc T1 sa velikim brojem threadova (vertical threading).
Inace, nemoj bas previse da podcenis dobar IPC, a pogotovo ne na x86. Buduci mass multicore x86 procesori ce sigurno zadrzati 3-4 fat jezgra (ili nesto sto lici na fat jezgro - one AMD "RHT" price su i realnije i prakticnije nego sto izgleda na prvi pogled 😉 ).

to sam i ja mislio (mada nikad nisam bio siguran) ali onda sam procita... http://en.wikipedia.org/wiki/Altivec - "AltiVec was developed between 1996 and 1998 by Keith Diefendorff, the distinguished scientist and director of microprocessor architecture at Apple Computer."

Apple stoji idejno iza AltiVec-a (ili Velocity Engine kako ga Apple zove), ali ne bi bilo od toga nista da nije bilo Motorole. Slicno kao sto Sony stoji idejno iz Cell-a, ali nisu imali ni blizu potreban know-how da tako nesto ostvare. Onda tu ulazi IBM, kaze sta iz te maste moze da prodje, a sta ne, i zatim pravi konkretan procesor. Ipak, sa Cell-om ni IBM-u nije bilo lako - umesto klasicnog CMOS procesa, razvili su custom pseudo-PMOS proces i logiku bez koje Cell uopste ne bi ugledao svetlost dana na 90nm (istina, p-PMOS proces je verovatno glavni krivac za lose yield-ove Cell-a, ali to je vec druga prica).
 
Jel znas gde ima da se vidi kako radi taj proces posto me veoma zanima?
 
Nazad
Vrh Dno