idézet:
Ezt írta Rive:
Ehe-ehe. Csak tudnám, mi adja az egész alá az infrastruktúrát... [/quote]
Hat NEM AZ ITANIUM, az biztos. Es nem veletlenul.
Intel Itanium 2: egy új korszak kezdete
#321
Elküldve: 2003. 10. 10. 17:25
#322
Elküldve: 2003. 10. 10. 17:30
idézet:
Ezt írta Rive:
Aha. Jól kijelentetted, nézzük mi van mögötte.
Nézzünk egy totálisan eseményvezérelt feladatok megoldására alkalmazott nyelvet: GCC. Válasszunk hozzá egy procit: K7. Feladat: SPEC.
[/quote]
A GCC az az en szemelyes tapasztalataim szerint a compiler csomag, a neve is erre utal (gnu compiler collection) es nem tekinteheto ezert (formalis) nyelvkent. A Grammar translator nem azanos magaval a grammar-ral, szereny velemenyem szerint.
Az hogy a prgramforditas esemnyvezerelt task lenne, azt vitanam. Tovabba a benchmarkokat sem tartom esemenyvezerelt ugyeknek specin2k, specfp2k. talan a specweb szol valami ilyesmirol.
Tovabba nem vilagos szamomra a postodbol, hogy a teszt targyat a SPEC csomag leforsitasa vagy futtatasa jelenti. Ez szerintem azert fontos dolog
Csendben megjegyeznem, hogy stukturaslisan mar a k7 is streaming iranyba mutato proci.
Abban ellenben igazad vagyon, hogyha a target streaming proci, akkor az I/O-t a TCP/IP-t es a packet filteringet celszeru streaming kodra irni. Linuxban jelenleg ezek a dolgok pure c-ben vannak irva. Ennek tan az az oka, hogy portabilisnek akarjak megtartani a kernelt.
Irtad korabban, hogy az IA32 nem temogatja a taskkezelest. Nos lehet hogy tevedek, de mintha az i386-ban lett volna taszk kapu hivas. Azota ezt kivettek volna az ISA-bol![]()
What do stars do? They shine.(Yvaine)
#323
Elküldve: 2003. 10. 10. 19:27
Elric
#324
Elküldve: 2003. 10. 11. 10:31
idézet:
Ezt írta T2k:
B)barmilyen sw remekul hasit rajta??[/quote]
Itt a gond. Az erőteljes SSE optimalizációt használó programok hasonló sebességgel fognak futni rajta, mint a K7-en. Hány K7 áll nálatok rendszerben? Hány szoftver használ SSE-t? Mi a tapasztalatod?
A P4-el viszonylatba állítva az SSE-optimalizáció minőségétől -azaz: a programverziótól - függően a teljesítmények aránya ilyen esetben konvergál a fizikai órajelek arányához.
Még az hozzá, hogy az ilyen jellegű programok alatt mutatott teljesítménye nem a modellszámozás, hanem az órajel arányában skálázódik majd.
idézet:
Ezt írta T2k:
A kerdes az, LESZ-E ELEG belole ahhoz, hogy ELARASSZA a piacot vele az AMD?[/quote]
Meg: a WS piac mekkora szegmensében válik egyeduralkodóvá az SSE-optimalizáció?
idézet:
Ezt írta T2k:
DEHOGYNEM!!!! Ebbol is kozetkezik, hogy HULYESEG a ti 'sikerre van itelve' dumatok. Ezt probalom elmagyarazni en is, Elric is, SFIJ is.[/quote]
Ha a pillanatnyi helyzeten szeretnél vitázni, csak nyugodtan.
A magam részéről az x86 jelenlegi formájában rejlő zsákutcát és a továbblépés reménytelenségét látom.
A K9, ha minden igaz, egy hosszú futószalaggal megáldott/megvert architektúra lesz. Lehet, hogy az órajel-versenybe be tud majd szálni, lehet, hogy SSE alatt jól teljesít majd, de az x86 alatt mutatott hatékonysága megy a P4 mellé, a béka hátsója alá.
Elric éppenséggel ezt (is) magyarázza:
idézet:
Ezt írta Elric:
Rive, erosen vitatkozom avval, hogy a jovo a hosszu pipeline-u gepeke. A uniprocesszoros piacon igen, mashol? Hat bizonytalan vagyok. Ha megnezed a piacot, a jovo minden esetben a sok core, sok thread per processzor rendszereke. HP, IBM, Sun, AMD, Intel. Mindenki ebbe az iranyba megy, ez meg az atbocsajtas (throughput). A szerver vilagban ha van 16 egyszeru 6-8 lepcsos, nem szuperskalar core-od es egy jo interconnected, igaz, hogy nagy chip-sd lesz, de iszonyatosan gyors. Sokkal gyorsabb, mint egy 16-utas, 40 lepcsos csoves cucc... Egyszeruen nem eri mar meg tobb ILP-t tenni a procikba... Ezt hala az egnek meg a kutatas is megerositi.
...
T2k-val ertek egyett abban, hogy valoban az Intel 10 eve tomi a penzt a HP-val karoltve az Itaniumba. Egyelore keves eredmennyel. Meg par ev es lesz eredmenye. Minden esetre az x86-64 valoban sokkal eselyesebb a sikerre, HA az AMD jo teljesitmenyt, marketinget es ISV tamogatast tud moge tenni. Szerintem mindent meg fog tenni, de lattunk mar elszurt dolgokat, szoval erre sem vennek merget.
Elric[/QB][/quote]
idézet:
Ezt írta T2k:
Hat NEM AZ ITANIUM, az biztos. Es nem veletlenul.[/quote]
Lehet, hogy félreérthetően fogylmaztam meg a kérdést.
Akkor még egyszer: min fut pl. egy JAVA program?
Kell hozzá architektúra-függően optimalizáló fordító és SDK?
[ 2003. október 11.: Rive szerkesztette a hozzászólást ]
#325
Elküldve: 2003. 10. 11. 10:42
idézet:
Ezt írta Supposed Former Infatuation Junkie:
A GCC az az en szemelyes tapasztalataim szerint a compiler csomag, a neve is erre utal (gnu compiler collection) es nem tekinteheto ezert (formalis) nyelvkent. A Grammar translator nem azanos magaval a grammar-ral, szereny velemenyem szerint.
Az hogy a prgramforditas esemnyvezerelt task lenne, azt vitanam. Tovabba a benchmarkokat sem tartom esemenyvezerelt ugyeknek specin2k, specfp2k. talan a specweb szol valami ilyesmirol.[/quote]
Remélem, csak kötözködsz, és nem tapasztalatlanságból érted félre, amit írok... Minden ott van, leírva, ha nem fél percben ütnél össze rá egy választ, hanem értelmeznéd, sokat megspórolhatnál magadnak :o
idézet:
Tovabba nem vilagos szamomra a postodbol, hogy a teszt targyat a SPEC csomag leforsitasa vagy futtatasa jelenti. Ez szerintem azert fontos dolog[/quote]
:o
idézet:
Csendben megjegyeznem, hogy stukturaslisan mar a k7 is streaming iranyba mutato proci.[/quote]
Oh... SSE-ben. Más jellegű feladatokban roszabb hatékonysággal dolgozik, mint egy PPro :o
idézet:
Abban ellenben igazad vagyon, hogyha a target streaming proci, akkor az I/O-t a TCP/IP-t es a packet filteringet celszeru streaming kodra irni. Linuxban jelenleg ezek a dolgok pure c-ben vannak irva. Ennek tan az az oka, hogy portabilisnek akarjak megtartani a kernelt.[/quote]
Mint közismert, pillanatnyilag erre x86 alatt nincs lehetőség...
idézet:
Irtad korabban, hogy az IA32 nem temogatja a taskkezelest. Nos lehet hogy tevedek, de mintha az i386-ban lett volna taszk kapu hivas. Azota ezt kivettek volna az ISA-bol[/quote]
Majd ha dedikált TaskState Cache vagy stack lesz benne, és HW-ból támogatják a taszkok közötti paraméterátadást :o
Komolyan, ha nincs időd ezzel foglalkozni, akkor inkább hagyd a fenébe, vagy szólj...
Ezeknél a próbálkozásoknál azért jóval szinvonalasabbnak ismerlek...
[ 2003. október 11.: Rive szerkesztette a hozzászólást ]
[ 2003. október 11.: Rive szerkesztette a hozzászólást ]
#326
Elküldve: 2003. 10. 12. 00:18
idézet:
Ezt írta Rive:
Oh... SSE-ben. Más jellegű feladatokban roszabb hatékonysággal dolgozik, mint egy PPro[/quote]
Lehet, hogy rossz a hatekonysaga, de hogy azonos orajele sz*rra verne a PPro-t, az is biztos. Senki sem erdekel a hatekonysag, amig a teljesitmeny elegendo.
Lehet, hogy szamodra a P4 SSE(2) optimalizacio eseten egy idealis cuccnak tunik, mondhatni kovetendo peldanak, de mint ahogy az x86 nem eleg hatekony, ennyi erovel mondhatnank azt is, hogy altalanos felhasznalasra a P4 meg losz*r, hiszen "akkora orajelbol" sokkal tobb mindent ki lehetne hozni.
Egyebkent ha ennyire sz*rnak tartod az x86-ot, akkor javaslom, hogy allj neki tervezni valamit, ami nem x86, ami hatekonyabb vegrehajtast tenne lehetove (azonos tranzisztorszam mellett!), es amire tudsz 1 even belul _hatekony_ compilert is irni. Ja, es ami kompromisszumok nelkul futtatja az x86, SSE, SSE2, es esetleg az AMD64 kodot is. Nehogy azt hidd, hogy ez olyan konnyu feladat
Amugy meg tovabbra sem ertem, mi bajod az x86-64-gyel konkretan, ott pont az x86 legidegesitobb hianyossagait kuszobolte ki az AMD. Lasd FPU, 32 bit es a regiszterek alacsony szama.
Fiery
[ 2003. október 12.: Fiery szerkesztette a hozzászólást ]
#327
Elküldve: 2003. 10. 13. 07:58
idézet:
Ezt írta Fiery:
Lehet, hogy rossz a hatekonysaga, de hogy azonos orajele sz*rra verne a PPro-t, az is biztos. Senki sem erdekel a hatekonysag, amig a teljesitmeny elegendo.[/quote]
A legkevésbé sem közömbös tényező a hatékonyság: minél alacsonyabb, annál nagyobb erőfeszítésbe kerül a skálázódás megfelelő szinten tartása az órajel emelésével. Ez pillanatnyilag nagyon jól demonstrálható a P4 és a K7 általános célú programok futása alatt mutatott teljesítményének összevetésével.
Külön probléma, hogy a hatékonyság romlását itt olyan tényező okozza, amit nem lehet megkerülni, és a nagyobb órajelek felé tendenciózusan egyre nagyobb gondot okoz.
idézet:
Lehet, hogy szamodra a P4 SSE(2) optimalizacio eseten egy idealis cuccnak tunik, mondhatni kovetendo peldanak, de mint ahogy az x86 nem eleg hatekony, ennyi erovel mondhatnank azt is, hogy altalanos felhasznalasra a P4 meg losz*r, hiszen "akkora orajelbol" sokkal tobb mindent ki lehetne hozni.[/quote]
A P4/SSE páros a speciális célú, straming-ra optimalizálható számítások területén verhetetlen, mégpedig pont amiatt, mert a nagy memória-késleltetés hatásait megkerülő lehetőségeket az adott számításokat támogató ISA-kiegészítésbe belevették.
Ezen túl, bármilyen általános célú számítás esetén a P4 teljesítménye úgy sz@r, ahogy van - azért, mert az alap x86 ISA az azonnali adatelérés feltételezésére épül.
idézet:
Egyebkent ha ennyire sz*rnak tartod az x86-ot, akkor javaslom, hogy allj neki tervezni valamit, ami nem x86, ami hatekonyabb vegrehajtast tenne lehetove (azonos tranzisztorszam mellett!), es amire tudsz 1 even belul _hatekony_ compilert is irni. Ja, es ami kompromisszumok nelkul futtatja az x86, SSE, SSE2, es esetleg az AMD64 kodot is. Nehogy azt hidd, hogy ez olyan konnyu feladat[/quote]
Kutya se hiszi, hogy ez könnyű feladat. Az Intel ezzel küszködik az IA64 kapcsán...
idézet:
Amugy meg tovabbra sem ertem, mi bajod az x86-64-gyel konkretan, ott pont az x86 legidegesitobb hianyossagait kuszobolte ki az AMD. Lasd FPU, 32 bit es a regiszterek alacsony szama.[/quote]
Az x86-64-el kapcsolatban itt még nem esett szó, így nem is fejtettem ki, mi a bajom vele.
Az x86 legidegesítőbb, leginkább korlátozó jellegű tulajdonságai nem azok, amiket említesz, és amikre valóban megoldást ad az x86-64, hanem az azonnali adatelérés feltételezése. Ezzel viszont semmit se tesz az x86-64.
Ui.: összeszedem egy helyre a memória-késleltetéssel és az ISA problémáival kapcsolatos dolgokat, a véleményemet az egészről, és körüllöttyintem némi szakirodalommal.
Lassan ott tartunk, hogy mindenki másról beszél
[ 2003. október 13.: Rive szerkesztette a hozzászólást ]
#328
Elküldve: 2003. 10. 13. 12:54
Elvarasaid affele tendalnak szamomra, hogy a magaszintu nyelven is kenytelen leszel notalni a nem azonnali adatelerest[delayed assignment operator, sic (!)


Meg kollene magadban ket kerdest valaszolni.
Mi az az ISA es miert?
Az IA-32/AMD64 ISA miert olyan, amilyen? (sugok. nem azert mert oreg es nemis azert mert hujek terveztek anno)
What do stars do? They shine.(Yvaine)
#329
Elküldve: 2003. 10. 13. 13:04
idézet:
Ezt írta Supposed Former Infatuation Junkie:
Az IA-32/AMD64 ISA miert olyan, amilyen? (sugok. nem azert mert oreg es nemis azert mert hujek terveztek anno)[/quote]
idézet:
Minden nagyon szép, minden nagyon jó, mindennel meg vagyok elégedve...[/quote]
Nem volt semmi fejlődés '80 óta, a memória problémái miatt nem pumpálták az egekbe a cache mennyiségét, nem próbálkoznak mindenhol legalább a speciális számítások körében az sw prefetch-el, nem próbálják minden nagyteljesítményű processzorban minél inkább a pipe legelejére hozni az L/S detektálást, nem vezették be az MTRR-eket, és a Hammer sem a kis késleltetésű memóriái miatt döngöl földbe minden asztali processzort bármi konzervatív alkalmazás alatt, és a különféle processzorok teljesítménye is lineárisan skálázódik az órajellel...
Vazze!
Ui.: Csak tudnám, hogy bármilyen fordító esetében mi a fene köze van a forrásnyelvi szintnek az optimalizálást végző ütemezőhöz
[ 2003. október 13.: Rive szerkesztette a hozzászólást ]
#330
Elküldve: 2003. 10. 13. 13:38
idézet:
Ezt írta Rive:
Nem volt semmi fejlődés '80 óta, a memória problémái miatt nem pumpálták az egekbe a cache mennyiségét, nem próbálkoznak mindenhol legalább a speciális számítások körében az sw prefetch-el, nem próbálják minden nagyteljesítményű processzorban minél inkább a pipe legelejére hozni az L/S detektálást, nem vezették be az MTRR-eket, és a Hammer sem a kis késleltetésű memóriái miatt döngöl földbe minden asztali processzort bármi konzervatív alkalmazás alatt, és a különféle processzorok teljesítménye is lineárisan skálázódik az órajellel...
Vazze!
Ui.: Csak tudnám, hogy bármilyen fordító esetében mi a fene köze van a forrásnyelvi szintnek az optimalizálást végző ütemezőhöz
[/quote]
Section 1.
[url="http://"http://www.arstechnica.com/cpu/2q00/x86future/isa-future-1.html"]>>>KATT<<<[/url]
probald meg azt hogy nem fogod szelektive felreerteni, pliiiiz!
Adalekanyagnak melletoszogatnam egy bizonyos Nikolas Wirth bacsi p-kod neven elhiresult alkotasast. capisi?
section 2.
A forrasnyelvi utemezo barmennyire is megdobbento, akarcsak a panamai szabo, hozott anyagbol dolgozik'oszt esetleg kiderul hogy vaszonzsakbol nem lehet kisestelyit kiszabni
![]()
![]()
furcsa kellemetlen jateka ez a valosagnak, de bezony van ra incidens, hogy megesik.
![]()
What do stars do? They shine.(Yvaine)
#331
Elküldve: 2003. 10. 13. 14:57
idézet:
Ezt írta Supposed Former Infatuation Junkie:
Section 1.
[url="http://"http://www.arstechnica.com/cpu/2q00/x86future/isa-future-1.html"]>>>KATT<<<[/url]
probald meg azt hogy nem fogod szelektive felreerteni, pliiiiz![/quote]
Bár kifejezetten úgy gondolom, hogy egy olyan időszakban, amikor a normális futásteljesítmény elérése érdekében már az x86-vonalon belül se mellőzheti senki az architektúra-specifikus optimalizációval dolgozó compilereket, nagyobb kritikával kellene olvasni az olyan helyeket, amik csak az ellenvéleménnyel kapcsolatban hivatkoznak más forrásból származó publikációkra: ígérem, átnézem.
idézet:
Adalekanyagnak melletoszogatnam egy bizonyos Nikolas Wirth bacsi p-kod neven elhiresult alkotasast. capisi?[/quote]
Aham. Adalékanyag. És? Hadd legyen ez kérdés, ne válasz: mennyire determináns a P-code manapság?
idézet:
section 2.
A forrasnyelvi utemezo barmennyire is megdobbento, akarcsak a panamai szabo, hozott anyagbol dolgozik'oszt esetleg kiderul hogy vaszonzsakbol nem lehet kisestelyit kiszabni
![]()
![]()
furcsa kellemetlen jateka ez a valosagnak, de bezony van ra incidens, hogy megesik.
[/quote]
forrásnyelvi ütemező
![]()
Tegyük fel, hogy a compiler gépi kódú utasításokkal dolgozó ütemezőjére gondoltál. Más úgyse nagyon van...
A 'hozott anyag' ez esetben megdöbbentően egységes tulajdonságokkal bír minden olyan magasszintű nyelvnél, amely közvetlenül futtatható állományokat produkál.
Az ütemező számára fontos tulajdonságok leginkább probléma-, nem pedig forrásnyelv-specifikusak.
#332
Elküldve: 2003. 10. 13. 15:50
Ellenben mivel a forrasnyelven megeshet, hogy a dependenciak nehezen vehetoek eszre, illetve mivel a forrasnyelv nem tamogatja a compiler ilyeten tenykedeset, barminemu utemezo kizarolag best effort elven mukodhet. Tovabba vegyuk meg azt, hogy a forditas egysege kizarolagosan a file, elokerul az a problema, hogy a lokalisan vegzett optimalizacio a call-graf-ot tekintve esteleg akar tobb bajt okozhat mintha nem csinaltunk volna eteren semmit. Globalis informacio, call-graph csupan profilingbol, tesztfutasbol nyerheto. Namost ugyi a tesztfutasok meg attol fuggnek hogy mikent, hogyan jaratod meg a sw-> Ehhez meg koll egy optimalasi celu tesztadatbazis.
Ez az a par ok ami miatt nem igazan hiszek abban hogy az altalad hajpolt es 5 ev mulva mexuleto csodacompiler elso blikkre atvagja a gordiuszi csomot.
On the long run I'm afraid, hogy az Itanicos compiler nem tud jobbat produkalni mint egy crusoe morphing engine vagy barmelyik jelenlegi x86-os prociban levo IA32 interpreter. Ezeknek ugyanis nagysagrendekkel tobb informacioja van a futas alatt allo kodrol mint annak a szerencsetlen compilernek amely cache/tlb hit/miss ugyekkel nem talakozhat, max a profilerezes alatt...
[ 2003. október 13.: Supposed Former Infatuation Junkie szerkesztette a hozzászólást ]
What do stars do? They shine.(Yvaine)
#333
Elküldve: 2003. 10. 14. 09:37
idézet:
Ezt írta Supposed Former Infatuation Junkie:
Ellenben mivel a forrasnyelven megeshet, hogy a dependenciak nehezen vehetoek eszre, illetve mivel a forrasnyelv nem tamogatja a compiler ilyeten tenykedeset, barminemu utemezo kizarolag best effort elven mukodhet. [/quote]
Khm.
A fordítás - és most hagyjuk végre a JAVA és a .NET virtuális gépeit, aminek a hatékonyságát a VM, és a VM-et lefordító compiler determinálja - ma a legegyszerűbb compiler esetében is legalább két lépésből áll.
Első lépésben a szintaktikai elemzést és behelyettesítést követően megalkotják a program assembly vázát, majd egy szimpla soros optimalizáció - felesleges szerkezetek elhagyása, kisebb átalakítások: mindaz, ami a 8086 óta nem változott - következik.
Ennek eredménye a .obj, azaz egy regiszter-hozzárendelések és pontos sorrendiség nélküli alacsonyszintű programváz.
Innentől kezdve a magasabb szintű nyelvi rétegeknek semmi szerepe.
A második lépésben a cél-hardver számára készített egyedi ütemező elkezdi a képességeinek megfelelő ütemezést. Ez, szép és jó tankönyvi megnevezés alapján - a valóságban tehát elég sok köztes eset fordul elő, sőt - lehet alapblokk, ciklus- illetve globális ütemezés. Ezen a szinten jelennek meg először a vezérlési és adatfüggőségek, magasabb szinten nem.
Csak ezután jön a regiszterek kiosztása.
Az alapblokk-ütemezés annyit tesz, hogy egy-egy alapblokkon belül előresorolja a függőségek nélkül végrehajtható utasításokat. Teljesítménye kicsi, csak a rövid futószalagú skalár proceszorok esetén ad igazán kielégítő eredményt, viszont főleg az alapblokkok rövidsége miatt kielégítő matematikai alapokra helyezhető.
A ciklus-ütemezők képesek különböző mértékben kibontani az egyes ciklusokat, vagy akár szoftver-futószalag megvalósítására is felkészíthették. Ezekben az esetekben nagyon komolyan az alkalmazott heurisztikákon van a hangsúly: az egész ütemezés-problémakör keményen NP-jellegű.
A GCC-ben pl. egy alacsonyfokú ciklusütemezéssel kibővített alapblokk-ütemező működik.
A globális ütemezés az alapblokkokon túlnyúlóan is képes az egyes utasításokat átmozgatni: esetenként akár olyan feltétellel is, hogy egy másik végrehajtási ágon az adott utasítás hatását később semlegesíteni kell. Messze ez a legnagyobb teljesítményű ütemezési technika: magyarán, totális megvalósítása kézzel, 100 soros assembly betéten belül, esetleg. Minden mai, globális ütemezést (is) megvalósító compiler kizárólag heurisztikákon alapul, tudtommal.
Ja, igen: ez utóbbi először a széles VLIW masinákkal kapcsolatban kapott komoly szerepet, meglehetősen látványos eredményekkel...
A feltételes utasításvégrehajtás lehetősége mindhárom ütemezési szinten képes növelni a hatékonyságot - alapblokkok megnövekednek, loop-unrolling esetén nem kell törődni az esetlegesen nem megfelelő számú ciklusismétléssel...
Az SW prefetch képes úgy adatbetöltést indítani, hogy nem foglal le regisztert és várakoztatóállomás-bejegyzést, emellett korán detektálható és probléma nélkül külön végrehajtási útra terelhető...
idézet:
Tovabba vegyuk meg azt, hogy a forditas egysege kizarolagosan a file, elokerul az a problema, hogy a lokalisan vegzett optimalizacio a call-graf-ot tekintve esteleg akar tobb bajt okozhat mintha nem csinaltunk volna eteren semmit. Globalis informacio, call-graph csupan profilingbol, tesztfutasbol nyerheto. Namost ugyi a tesztfutasok meg attol fuggnek hogy mikent, hogyan jaratod meg a sw-> Ehhez meg koll egy optimalasi celu tesztadatbazis.[/quote]
Ilyen jelegű hiba a heurisztikában már csak a globális ütemezők szintjétől kezdve lehetséges, alatta nem: így aztán ebben a környezetben a 'lokális' szó jelentése... Hm...
A profiling minden mai ütemezéssel és power-appal foglalkozó fejlesztés integráns része, a futásidő alatti profiling és kódoptimalizálás pedig a compiler-technológia leginkább fejlődőben levő területe.
idézet:
Ez az a par ok ami miatt nem igazan hiszek abban hogy az altalad hajpolt es 5 ev mulva mexuleto csodacompiler elso blikkre atvagja a gordiuszi csomot.[/quote]
Ki állította, hogy ez egy csodaszer? Itt egy folyamatosan fejlődő heurisztikákra épülő ágazatról van szó, és pl. a széles VLIW architektúrák számára is születtek igen-igen demonstratív globális ütemezők (> 8-10 év alatt). Itt pedig 'csak' egy keskeny VLIW-ről van szó... Ami történetesen hajlandó kiszolgálni mindazon alapvető igényeket, amiket egy nagy késleltetésű memóriákra és ILP processzorokra szánt compiler támaszt...
idézet:
On the long run I'm afraid, hogy az Itanicos compiler nem tud jobbat produkalni mint egy crusoe morphing engine vagy barmelyik jelenlegi x86-os prociban levo IA32 interpreter. Ezeknek ugyanis nagysagrendekkel tobb informacioja van a futas alatt allo kodrol mint annak a szerencsetlen compilernek amely cache/tlb hit/miss ugyekkel nem talakozhat, max a profilerezes alatt...[/quote]
Run-time optimization...
Találós kérdés: tudod-e, melyik desktop-procikat (is) gyártó cég fektetett eddig legtöbb energiát az event-counterek és a vonatkozó szoftverkörnyezet illetve dokumentáció fejlesztésébe?
Hadd súgjak: az AMD vonatkozó forrásai... Hogy is mondjam... Sz@rok. Mind.
Az IA32-interpreterről meg majd a következőben, a forrásod kapcsán.
#334
Elküldve: 2003. 10. 14. 10:42
Nos, a processzorokhoz kiadott Optim. Guide-k szerint nagyon, és én valahogy ezeket a forrásokat tekintem hitelesnek.
Lássuk egy kézenfekvő példát: string-utasítások x86 alatt.
A korai időkben, a skalárprocesszorok és a gyorsítótárak megjelenése előtt az utasítás-behívás időtartama komolyan befolyásolta az elérhető teljesítményt, valamint a memória is szűkösebb volt a kívántnál, így érthető volt az a törekvés, hogy komplex ( akár >>100 óraciklus) rutinokat valósítsanak meg a mikrokódon belül. Ez hatékonyan gyorsította a programokat: egy utasításlehívással komplex feladatokat tudtak elvégezni, gyakorlatilag a mikrokód sebességével.
Nézzük, mi történt azóta.
A legnagyobb változás ezt illetően a cache, az utasítás-dekódolás, a várakoztató-állomások és a párhuzamos VE-k bevezetése volt: emellett ezekre tekintettel sokat változtak a compilerek is.
Egy-egy string-utasítás alapesetben telefossa a gyorsítótárat szeméttel, telerakja a várakoztatóállomást ismétlődő mikroutasításokkal, megakasztva ezzel a többi utasítás dekódolását: A VE-k közül gyakorlatilag egy integer és egy L/S párost használ, emellett nem ütemezhető. Moderálás veszélye nélkül nem tudom megfelelően jellemezni azt, amit a hatékonysággal művel.
Ez a vector-path, ami csak és kizárólag a visszafelé kompatibilitás jegyében maradt benne az x86 alapú processzorokban - minden más x86 dekódolás már huzalozott alapú, akárcsak a RISC alapú gépekben...
Nem véletlen, hogy a komplex utasítások használatát az összes Optim. Guide határozottan kerülendőnek, károsnak tartja.
Ui.: tényleg, utánanézek, hogy a TraceCache hogy reagálja le az ilyen szemetet

Lássunk egy elvibb példát is!
A gyakorlat szerint x86 alapon ca. minden negyedik, ötödik utasítás ugrás. Egy-egy alapblokk tehát ekkora méretű: egy egyszerű ütemező csak ezen belül képes előrehozni a gyorsan végrehajtható utasításokat, ezen túllépni már csak globális ütemező megvalósításával lehet.
Egy-egy alapblokk késleltetése jó esetben - ha nem merül fel távoli adatbehívás, pl. a memóriából - ca. 20-25 órajel: ezen belül az átmozgatott utasítások nagyjából öt órajelciklusnyi előnyt élveznek. Egy memóriabehívás legjobb esetben is >80 órajel - ehhez aránylik az öt órajelnyi előny.
Mi történik akkor, ha kockázat nélkül előrehozható egy-egy adatbetöltés, pl. az alapblokkokon kívülre is könyen elmozgatható prefetch utasítással?
Nos, ez esetben az adat a másodlagos vagy a harmadlagos gyorsítótárból érkezik, nagyjából 20 órajel alatt, azaz pont akkorra, amikorra szükség van rá.
Van erre lehetőség x86 alatt?
Szükséges (lenne) ez a modern processzorok számára?
Függ-e tehát egy adott architektúrán az elérhető teljesítmény az ISA felépítésétől?
Ha figyelmbe vesszük, hogy egy P4 esetében nem elképzelhetetlen >>200 órajelnyi load-latency, vajon hol lehet az a pont, amikor már minden más beelőz a hatékonyságra törekvés lehetőségei terén?
Ui.: még annyit, hogy az adott problémákkal kapcsolatban ma mindinkább kezd közös kategóriába kerülni a processzor és a programok hatékony portolásához szükséges compiler és ütemező a vonatkozó dokumentációkkal.
Azaz: nem csak a processzor a döntő tényező, hanem a programozók számára biztosított támogatás is.
Ez paralel folyamat azzal, ami a beágyazott processzorok piacán végbement: egy processzor hatékony fordító nélkül semmi.
Mikor adta ki az AMD a proccesszoraihoz az első fordítóját?
A dokumentációi még mindig nagyon keveset érnek, sajnos.
[ 2003. október 14.: Rive szerkesztette a hozzászólást ]
#335
Elküldve: 2003. 10. 18. 09:55
idézet:
MOUNTAIN VIEW, Calif. (2003. október 14.) Az SGI bejelentette, hogy az amerikai légierő egyik legfontosabb kutatóbázisán az Aeronautical Systems Center Major Shared Resource Center (ASC MSRC) Wright-Patterson Air Force Base-n befejezték és október 6-án ünnepélyes keretek között átadták az eddigi legnagyobb SGI® Origin® 3000 szuperszámítógépet.
A nem mindennapi installáció egy 2048 processzoros szuperszámítógép, amelyhez adattárolásra egy SGI® InfiniteStorage diszkrendszert illesztettek. A diszk alrendszer önmagában 2 TeraByte (TB) gyorsító memóriát és 40 TB tárhelyet tartalmaz speciális data management lehetőséggel. Az új számítógéppel megduplázták a kutatóközpont számítási kapacitását.
Nézzük meg közelebbről miből is áll a gép. A 2048 processzor 700MHz R16000™ MIPS®, amelyhez processzoronként 1GB memória tartozik. A 4 nodeból álló konfiguráció nodeonként 512 processzoros shared memóriás környezetet biztosít a kutatóknak. Ezzel lehetővé vált, hogy az eddigieknél lényegesen nagyobb modelleket is kezelhetnek. Az SGI® NUMAflex™ architektúra rendkívüli előnyöket biztosít bármely más számítógépes környezettel szemben. A napjainkban egyre elterjedtebb cluster technológiákhoz képest, sokkal egyszerűbb adminisztrálni, üzemeltetni és sokkal hatékonyabb programok fejleszthetők. Míg a clusteres program elkészítése nagyon komoly programozói munkát igényel a shared memóriás környezetben az igazi problémákra lehet fókuszálni, amivel hatékonyabb és eredményesebb a kutatás. A gép percek alatt átkonfigurálható a kutatási igényeknek megfelelően, míg a clusteres megoldás esetén ez a munka komoly szervezést és akár több napig tartó üzemszünetet is jelenthet.
További fontos szempont lehet, hogy az Origin 3000 processzoronként tizedannyi energiát használ fel, mint egy PC, ezzel sokkal kevesebb hőt termelve nagyban egyszerűsíti a megfelelő hűtést. Így adott területen lényegesen több processzort helyezhetnek el, egy rack akár 128 processzort is tartalmazhat.
Forrás: [url="http://"http://www.sgi.hu"]www.sgi.hu[/url] [/quote]
A marketingdumát leszámítva eléggé érdekesnek tűnik számomra a hír. Az SGI anno az Itanium miatt fogta vissza a MIPS felesztését, és kínálnak is Itaniumos gépeket.
Viszont ebbe a meglehetősen jelentősnek tűnő gépbe mégis az öregecske, lassúcska MIPS került, csak nem itt is a szoftver volt a döntő?
Csinálhat valaki egy fantasztikus procit, ha nincs hozzá szoftver, akkor nem sokat ér...
Valahogy ezt hagyták figyelmen kívül az Itanium fejlesztésénél, vagy baromira bíztak a szoftveres srácokban, akik most kissé pácban hagyták őket.
#337
Elküldve: 2003. 11. 12. 13:16
#339
Elküldve: 2004. 01. 14. 13:15
Ilyen sorozat után ki veszi komolyan, hogy mit mondanak mi lesz 3-4 év múlva?

[ 2004. január 14.: Vajonész szerkesztette a hozzászólást ]
#340
Elküldve: 2004. 01. 14. 14:00
idézet:
Ezt írta Vajonész:
Az IDC csökkentette az Itanium-alapú szerverekre vonatkozó forgalmi előrejelzését
Ilyen sorozat után ki veszi komolyan, hogy mit mondanak mi lesz 3-4 év múlva?
[ 2004. január 14.: Vajonész szerkesztette a hozzászólást ][/quote]
5000 USD nagyon sok penz egy processzoret akkor amikor a legkaposabb pro ws termekek 3000 USD-t kostalnak es komplett szervereket lehet mar 5000USD-ert kapni.
szo ami szo, az [url="http://"https://www.hwsw.hu/hir.php3?id=24145"]IA32 execution layer[/url] egeszen jol teljesit.
[ 2004. január 14.: Supposed Former Infatuation Junkie szerkesztette a hozzászólást ]
What do stars do? They shine.(Yvaine)