• BiroAndras
    #347
    "Ott kezdődött, hogy azt írtad, nem-blokkos adattal nem tud kezdeni semmit az SPE. Pedig tud, csak ilyenkor be kell segítenie a PPE-nek is."

    Hogyan?

    "Hogy érted, hogy a PPE irányít? Az SPE akkor fér hozzá a külső ramhoz, amikor akar."

    Úgy értem, hogy ő szervezi a feladatokat. Megmondja, hogy melyik SPE mit csináljon, meg előkészíti nekik az adatokat.

    "Párhuzamosítással közömbösíthető a hosszabb késleltetés. Megfelelő (fordítóra bízható) optimizáció révén az in-order végrehajtás és a gyengébb branch-prediction is, többé-kevésbé, feladattól függően."

    A tapasztalat szerint nem igazán. Nem véletlen, hogy a PC-n is rengeteg tranzisztort áldoznak erre.

    "PC-n egy játékban a prociidő többsége ugyancsak a megjelenítésre megy el, ide sorolva a fizikát is (vertex-adatok kezelése, atpumpálása a GPU-nak, stb.). Itt ezen feladatok jó részét átvállalhatják az SPE-k. Meg a lassan bejövő fejlettebb AI-t is. Így nagyon sok prociidő felszabadul!"

    Igen, de a PPE eleve sokkal gyengébb, és plusz adminisztrációs feladatokat is kap. Emiatt nem biztos, hogy sokkal több marad a gamelogic-nak, mint PC-n.
    A gamelogic tipikusan az a fajta kód, ami igényli az alacsony memória késleltetést, a rövid futószalagot, a fejlett branch-prediction-t, és a többit.
    Egyébként az AI-t nem is biztos, hogy át tudják venni, az nem olyan egyszerű.

    "Gondolj arra, hogy jópár éve, egy 7MHz-es, maiaknál jóval egyszerűbb procival rendelkező Amiga500-ra is eléggé összetett játékok is születtek."

    Igen, de sajnos manapság nem az az elvárás. Ha nem kéne ultra csúcs 3D grafika, akkor sokkal jobb játékokat lehetne írni, ez tény.
    De azért nem csak ezen múlik. Azokban a játékokban pl. AI sem volt, csak egyszerű szkriptek.

    "Miért lenne lassabb egy SPE másolásban?"

    Mert nem fér hozzá közvetlenül a PPE memóriájához, így még plusz másolgatás is kell.

    "Egy programban sokszor kellhet memóriát másolni."

    A gamelogic-ban nem jellemző akkora másolgatás, amit érdemes külön kezelni.
    Inkább olyan feladatokra jellemző, amiket egyébként is az SPE-k csinálnak.

    "Egy tread esetén talán, 2 (x360-nál 6) esetén már nem biztos."

    A gamelogic még mindíg 1 szálú, és egy ideig az is marad. Egyébként a többszálúsításnak van nem kevés adminisztrációs költsége, ami nem biztos, hogy megtérül. Pl. az Intel féle HT egyes esetekben lassította a szoftvert emiatt.

    "Tévedsz, a PPE apránként is küldhet adatot az SPE-knek, mivel hozzáfér a ramjukhoz."

    És ennek mennyi a késleltetése? Mert ha jóval több, mint a SPE belső RAM-jáé, akkor szart se ér. Arról nem is beszélve, hogy ez esetben a PPE jelentős időt pazarol az SPE-k etetésére. És még valahogy értesülnie is kell arról, hogy az SPE adatot kér. Kizárt, hogy ez így elég gyors legyen.