Hirdetés

Keresés

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

  • rudi

    nagyúr

    válasz orbano #70 üzenetére

    Egy dolog az optimalizáció kód szinten és egy másik algoritmus szinten. Ha egy algoritmus n^2 komplexitású azt akárhogy kódolják, a legjobb esetben is akörül marad, de ha mondjuk egy n*log(n) algoritmust sikerül kiagyalni akkor máris jobban állun. Grafikus kódolásban algoritmus szintű optimalizálásról lehet beszélni, mert minden képlet a valós fényjelenségek lemodellezése, vagy ''közel élethűen'' és lassan vagy ''elnagyolva'' és gyorsan. A kódereknek azt a határt kell megkeresniük, ahol még szép, de már gyors, ez az igazi kihívás.

    Persze ott van a másik oldalon a HLSL és egyéb prognyelvek automatizált kódja, amelyik nem mindig csinál optimális ahader assembler kódot, ott is hozhat a nem megfelelő erőforráskihasználás kellemetlen lassulásokat. Nem éppen az algoritmus csúszik szét, hanem előjön valami hardveres worst case, de ez a driver és HLSL íróknak az asztala.

  • emvy

    félisten

    válasz orbano #70 üzenetére

    Lehet, hogy rosszul fejeztem ki magam, de pontosan arra gondoltam, amit te is írsz - az igazi gyorsulásokat az algoritmikus kutatások hozzák.

    Most éppen egy pályatervező algoritmuson dolgozom kooperatív robotirányításokhoz, és hiába sikerült pár napja 10000-szeres gyorsulást elérnem - egyelőre sajnos a n^8-al arányos a megoldási idő, ahol n a pálya oldalhossza... (bár az elején 8^n volt, úgyhogy javultam).

  • ody42

    senior tag

    válasz orbano #70 üzenetére

    ez oké, hogy egy algoritmus O(n*logn)-es, de nem mindegy, hogy az n*logn műveletet mennyi idő alatt hajta végre a proci,és mennyi memóriát eszik.
    (tehát a te megvalósításodban az a ciklus amit ismételgetsz n*logn-szer,mennyi idő alatt fut le.)

    Arról nem is beszélve, h. ha valaki mondjuk az O(n*logn)-es algoritmus helyett, csak egy O(n*n)-est implementál,mert mondjuk olyan dolgot kell megcsinálnia, amit nem lehet kinézni a Bibliából, és nem jön rá, hogy O(n*logn) alatt megvalósítható,amit akar...nem mindegy...
    Egyszerű példa, de ha pl. 100x100-as mátrix amivel számolsz, akkor már az sem mindegy, hogy egy változó word, int vagy byte, mert elég nagy a memóriafoglalások közötti különbség. Szerintem millió ilyet lehetne találni...


    [Szerkesztve]

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