-
kvp #54 Akkor lassuk...
""Egy altalanos algoritmust meg lehet irni ugy hogy tobb mega ram-ban ugral oda vissza es kimazsolazza az adatokat. Ezt stream processzoron csak ugy lehet megoldani, ha elore tudjuk a mi fog kelleni az algoritmusnak a memoriabol es az adatokat elore osszeszedjuk a dma buffer-be. (scatter/gather i/o)"
1. Nincs itt semmilyen (kis méretű) DMA buffer. Local Storage van, ami magonként 64KB, ami elég sokmindenre elég."
Errol beszelek, 256Kb lokalis memoria van. Minden mas csak dma-val erheto el. Ez azt jelenti, hogy random access cimzessel (ram-kent) csak ennyit lat az spe. Minden mas kulso memora, ami lehet kulso ram vagy akar diszk is, de mivel nincs virtualis memoria tamogatas egy spe-ben igy is ugy is kenytelen blokkonkent olvasni. (szavankent nagyon lassu es maceras lenne) Egy mai algoritmus siman feltetelezi hogy kozvetlenul lat tobb megabyte ram-ot. Ha ezt nem lehet megtenni, akkor gondolkozhat a programozo hogy hogy tordeli szet 256Kb-os darabokra. (es a 256Kb-ba bele kell fernie a programnak is) A programozonak ugy kell osszeraknia az adatokat a fomemoriaban hogy az spe lehetoleg 1 darab dma muvelettel be tudja huzni oket. Ez azt jelenti hogy egy N darab Mkb-os blokkba kell pakolnia mindent. Majd ezeket a blokkokat feldolgoznia. Ha M=1 szo, 32 bit azaz 4 byte, akkor olyan az spe mint egy altlanos cpu, csak nagyon lassu, mivel 4 byte-ot tolt be egy lepesben 32Kb helyett... Igy akar 100 orajel is lehet egy 32 bites dma transzfer. Ha meg blokkonkent probalja megcsinalni akkor olyan algoritmus kell neki ami nem 4 byte-onkent akar olvasni, mint egy sima c-s pointer eseten.
"Protein elemzo algoritmusbol van parhuzamositott stream alapu, scenegraph bejaro (terkep renderelo) algoritmusbol viszont csak csak par publikaciot talaltam stream processzorokra, tehat program meg nem nagyon van belole, csak kutatjak a teruletet."
LOL LOL LOL LOL LOL, akkor ez mi: http://folding.stanford.edu/FAQ-PS3.html
Azt irtam, hogy protein elemzo _VAN_, vektorgrafikus renderelo _meg_nincs_. A raytracer-ek eleve jobban optimalizalhatoak vektoregysegekre, tehat nalluk nem jon elo a vektorgrafikus rendszerek gather problemaja.
"Az első Cell verzió (nem számolva a legelső reviziót) Double Precision teljesítménye is viszonylag alacsony, pedig ez sokszor szükséges tudományos célokra, és csak a nemrég kijött második verzióban emelték ezt fel alaposan,"
Kar hogy a ps3 a korabbi gyenge teljesitmenyu egyseggel jott ki, es nem lehet kicserelni csak majd esetleg a ps4-ben...
""A microsoft sajnos azert csinalt jobb rendszert, mert a programozoknak konnyebb xbox360-ra fejleszteniuk, mivel egyszerubb a hardver."
Messze nem olyan nagy a különbség programozhatóságban, mint a FUD mondja. Pl. egy másik fórumon írta egy fejlesztő, hogy 2 napba telt átírni egy számítási rutint x360-ról PS3-ra (pontosabban úgy átírni, hogy néhány makró segítségével ugynaz a kód [lásd amit a PowerPC-s SPE-kről írtam] forduljon mindkettőn...), és az utóbbin mellesleg sokkal gyorsabban is futott."
A power magokon fog is futni, de az spe-kbe csak akkor fer bele, ha:
1: adat + program elfer 256Kb-ban
2: atirjak a kodot, kigyujtik es feldaraboljak a veletlen ram hozzaferest dma-sra (gyakorlatilag olyan mint regen dos-os szoftveres overlay-ekkel dolgozni)
Az elso eset egyszeru, a masodik szivas... ezzel szemben 3 power mag eseten mindenki lat mindent, van virtualis memoria is.
""Mig a power mag eseten siman ment az ibm az out of order execution-rol in order-re a power5 es a power6 valtaskor"
Ez is tévedés, nem in-orderes a Power5. Lásd itt: IBM Power5 Chip: A Dual-core Multithreaded Processor” (IEEE Micro March-April 2004)."
Osszekevered, a power 5 volt az out of order, a power 6 az in order, az ibm 'visszalepett', azert hogy osszesegeben egyszerubb es gyorsabb legyen az uj processzor. (legalabb eloszor ertelmezned a mondatot)
""Az egyik elso multimedias pelda ilyen egysegre az amigak copper+blitter egysege volt, ami kepes volt sajat programot futtatni a lokalis ram-bol (chip ram) viszont butabb volt a M68k-s kozponti processzornal."
Tényleg "butább" volt: 3db utasítása volt a Coppernek. A Blitter nem tudott programokat futtatni, de a Copperral is fel lehetett programozni és elindítani. A Chip RAM nem lokális ram volt, hanem unified ram, a proci is azt használta az alapgépben."
A chip ram valoban unified ram volt, viszont a procinak lehetett sajat ram-ja, amit a chip ram-tol fuggetlenul (es wait mentesen) erhetett el. Viszont primitiv elso peldanak jo. De emlithetnem az ibm elso io processzorait is.
Gyakorlatilag az egyetlen bajom az spe-kel hogy nem latjak kozvetlenul a rendszer ram-ot. Ha megoldjak hogy dma nelkul a power mag l2 cache-en at kozvetlenul hozzaferhessenek a rendszermemoriahoz akkor sokkal egyszerubb lenne a programozok dolga. Igy egy hatarig egyszeru, majd 256Kb adat + program utan beleutkoznek egy falba, amit a dsp programozok is erzekelnek. Egy sima mikrovezerlon ez a fal lehet lejjebb is. Egy altalam tervezett kis rendszeren ez 128 Kb volt. Ennyit tud a rendszer kozvetlenul kezelni, a tobbi memoria (4Gb-ig) mar csak hattertarkent erheto el. Mivel nincs virtualis memoria egyseg, sem az en vezerlomben sem az spe-ben ezert blokkonkent ki kell irni a bent levo adatokat es ujakat tolteni a helyukre. Mindezt szoftverbol, mig L2 cache eseten ezt a hardver elvegzi a programozo helyett. Egyebkent egy mikrovezerlo siman tud futtatni 8 bites mikrokoddal 32 bites utasitaskeszletet is, csak egy osszeadas is 4 orajel lesz... (lassu de mukodik, a limit nem a processzor hanem a kozvetlenul cimezheto memoria)
A fo problema az, hogy mig egy okos hardver buta programmal tobbnyire lassabb mint egy buta (egyszeru) hardver okos programmal, de mig hardvert csak par ceg gyart, addig szoftvert nagyon sokan irnak. Ha egy ceg vesz egy okos hardvert es egy csomo gyenge programozot akkor olcsobban jon ki, mint ha vesz egy gyors de buta hardvert es probal talalni okos programozokat akik ki is tudjak hasznalni. A microsoft lathatoan inkabb az okos hardver es buta de olcso programozo kombinaciojara eskuszik, meg ha ezzel teljesitmenyt is veszit. A lenyeg, hogy igy olcsobban tobb programot tudnak elkesziteni, rovidebb ido alatt. A cell es a ps3 jo lenne, ha... lenne ra eleg program ami ki is hasznalja az spe-ket, lenne ra szabvanyos windows-on megszokott fejelsztoi kornyezet, mert windows-os gepe szinte mindenkinek van a legtobb ember azon tanul meg programozni. (tenyleg nem linux gurubol van tobb)
Tehat a cell lehetne jobb, de mivel a legtobb fejleszto a pc-s vilagot es a windows-t szokta meg, ezert azt a gepet valasztjak ami legjobban hasonlit egy wintel pc-re. Az xbox360 gyakorlatilag ugyanugy nez ki, meg az oprendszer is megegyezik, tehat barmelyik indiai wintel-es programozo tudja hasznalni. A ps3 ezzel szemben egy linux-os kornyezet, a megszokott x86-tol eltero gondolkodasu hardverrel. Egyszeruen nincs eleg programozo, ezert nincs eleg program... Azokat a programokat nem szabad szamolni amik wii-n is elfutnak, azok nem hasznaljak ki egyik gepet sem, legfeljebb a videokartyakat. A sony addig eroltette az egyseges architekturat (tv+player+konzol), hogy vegul olyan lett amit az atlag programozo nem tud kapasbol x86-os tudassal programozni. Ez ma boven eleg a bukashoz...