Keresés

Új hozzászólás Aktív témák

  • Robitrix

    senior tag

    válasz Viktor77 #9 üzenetére

    Az, hogy egy játék adott pillanatokban használ például 8 magot(vagy szálat) nem jelenti azt, hogy tartosan nagy mértékben le is terhel 8-at. Egy játék program tipikusan fő feladatban használ 1-2 magot, amin intenziven számol. a többi magokon leginkább kisebb alkalmi események számolása zajlik. például megyek előre egy FPS stilusú játékban és tűzet nyitok valamire. erre, hogy ne fő cselekményt számoló programágat terhelje egy szubrutin hívással , ezért elindít egy plusz szálat, ahol mondjuk kiszámolja a lövés hatását és kinézetét. Persze egy lővés hatásának kiszámolása lehet csak pár század másodperc proci időt igényel. így amikor megvan az eredménye, akkor program mag vagy szál leáll. vagyis egy elvben 8 magot használó program átlagos maghasználata is lehet simán 3,17 mag terhelés... :) Olyan játék programot még nem igazán tudtak irni, ami arányosan és egyenletesen képes adott pillanatban szétterhelni a számítási feladatokat az össze rendelkezésre álló mag és szál közt. ilyesmi csak egy Cinebench szerű programban lehetséges, ahol gyakorlatilag az össze mag és szál ugyan azt a kódot futatja legfeljebb eltérő adatokat feldolgozva. Egy játék program annyira esetleges és gyakran véletlenszerű kódsorozatok futásából áll, hogy igazán nem teríthető egyenletesen és optimálisan a magok közt. Az, hogy egy task kezelőben például úgy látjuk, hogy viszonylag egyenletesen terheli a magokat inkább illuzió. Mivel a proci maok teljesítménye kis idő szeletekben kerül felhasználásra a gépben futó programok és taskok közt. Így ugyan az program ág simán megjárhatja 1 másodpercen belül az összes magot és szálat. Ezért van az, hogy kevés magon futva simán a proci átlagos terheltsége 100% közelében szenved. sok mag és szál mellett meg vigan elvan 30-40%-on az átlagos terheltség.

  • Robitrix

    senior tag

    válasz ricsi99 #30 üzenetére

    Azért elég otvar meló lenne olyan kódot írni, ami magától skálázódik fel a megfelelő magszámhoz. Minden esemény indulásakor el kéne dönteni, hogy az esemény számolását(mondjuk valaki tüzet nyit egy fegyverrel és ki kell számolni a lövés hatását) és a kódban kéne agyalni, hogy jut-e program mag vagy szál a párhuzamos futásra. ha nem jut nem indítom párhuzamos szálnak legfeljebb valamelyik program ágból meghívják sima szubrutinnak és leglejjebb addig a hivó program ág pihizik amíg a subrututin hajtódik végre. ha meg van őlusz mag és szál akkor egy párhuzamosan futó program ágon számolódik ki az esemény.
    a felskálázodik több magra szerintem azt jelenti, hogy eleve megirják sok magra és szálra aztán ha a hardwer képes elég magot és szálat alárakni, akkor futni fog megfelelő számú magon és szálon párhuzamosan ha meg nem jut elég hát akkor is fut, legfeljebb feltartják egymást a futni akaro magok és szálak. és lassú lesz....
    elvben lefut egyetlen magon is a 16 program ágat igénylő program is. az, hogy milyen teljesítménnyel az más kérdés. lehet elsütik a fegyvert aztán várni kell 2 másodpercet, mire megtörténik a képernyőn a lövés és következménye... :) logikailag eltekintve az program események időzítési gondjaitól is lefut a nagy mag és szálszámra irt alkalmazás is kevés magon, csak lehet siralmas az eredménye. :)

  • Robitrix

    senior tag

    válasz Robitrix #51 üzenetére

    a másik megoldás meg az volna logikailag, hogy eleve több féle kódot irok meg ugyan arra a feladatr. Készitek mondjuk 4 magra irt változatot a kódból, 6 magra, 9 magra, 10 magra stb. aztán mindig a megfelelő magszámú kódot futtatom a hardver tükrében. de ezy rengeteg munka és programozás volna gazdaságtalanül. :)

  • Robitrix

    senior tag

    válasz Bici #48 üzenetére

    hát böven van még mit fejleszteni a játékokon effektekben és kinézetben. Nyilván fejlődni fognak, ahogy fejlődik a GPU és CPU teljesítmények. Egyre több kapacitás lesz egyre bonyolultabb és számításigényesebb effektek kiszámolására. elég megnézni a 10 évvel ezelötti akkori hardver lehetőségeire irt programokat a mai hardverre irt programokhoz képest. a hardver és szoftver teljesítmény egy adott korban kéz a kézben járnak. 40 éve PacMant játszottunk az 8086-os procin, ma mást játszunk. :)

Új hozzászólás Aktív témák