Hirdetés

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

  • Abu85

    HÁZIGAZDA

    válasz HSM #60084 üzenetére

    És beszéljük ki, hogy mi mire jó?

    Ugye az ESRAM leginkább akkor volt hatékony, ha különböző puffereket nem a RAM-ba mentettél, hanem direkten az ESRAM-ba. A tipikusan memória-intenzív effekteknél ennek nagy haszna van, mert közelebb van, mint a RAM. És akkor tulajdonképpen a 100%-os cache hit mellett az olyan effektek, mint például az SSAO marhára felgyorsultak. Akár alkalmazhattál elborult regiszter- és/vagy LDS-nyomást is, mert nem kellett a tipikus RAM elérési időhöz szabni a konkurens wave-ek számát, hanem lehetett az ESRAM-hoz, és ott már a memóriaelérés átlapolásához elég volt két-három wave is. Ez azért nagyon komoly előny az adott shaderre.
    De ez PC-n nem működne, mert per alkalmazás szinten kell optimalizálni. Erre volt is egy saját SDK az Xboxban, amivel tök jó volt, de PC-n senki sem foglalkozna vele.

    Az L2 cache szimpla növelése igazából egyszerű. Semmi komolyabb indok nincs mögötte a cache hit növelésén kívül. És GPU-król lévén szó az L2 cache hit eléggé fos. Jellemzően 5% alatti, és ha mondjuk sokszorosára növeled az L2-t, akkor is 10-15% alatt marad, mert a GPU egy gyorsítótárakat nagyon szemetelő "állatfaj" a több ezer konkurensen futó szálcsoportjával. De ugye a 10-15% az a duplája-triplája az 5%-nak, tehát ha úgy sem lehet mire költeni a tranyót, akkor miért is ne? Még akkor is, ha nem éppen hatékony ez a fajta brute force koncepció.

    Az Infinity Cache az igazából egy másfajta koncepció. Az egy úgynevezett victim cache, aminek a GPU-kban jelenleg semmi más célja nincs, minthogy a tile-alapú leképezést segítette abban, hogy ne kelljen egy csomó esetben elmenni a VRAM-ig. Emiatt az Infinity Cache nem is alapértelmezett része teljes GPU-s cache-rendszernek, és ez azért van így, mert pont az a cél, hogy a GPU ne szemetelje össze.
    Ugye egy mai GPU-nál az L2 gyorsítótárak jellemzően a ROP blokkok kliensei. Ez az NV-nél Maxwell óta van így, az AMD-nél a Vega óta, mert a tile-alapú leképezéshez ez az optimális. Ugyanakkor a ROP blokkok úgy kliensei az L2 gyorsítótáraknak, hogy közben a GPU ezt a gyorsítótárat egy rakás más dologra is használja/használhatja. Tehát nem uralkodnak felette a ROP blokkok teljesen, és emiatt az ott tárolt adatok bármikor átdobhatók a VRAM-ba, és ez eléggé tipikus helyzet is. A ROP blokknak sokszor nagyon hasznos lenne, ha a kívánt gyorsítótársort megtalálná az L2-ben, de mivel egy rakás adat cserélődik ott folyamatosan, így elég sokszor kell menni érte a VRAM-ig, és akkor újra behúzza gyorsítótársort az L2-be, amit aztán újra kidob a rendszer, majd ha kellene megint, akkor megint kell menni az adatért a VRAM-ba. És ez úgy nagyjából egy tipikus helyzet, amivel a kívánt adat csak 5-15%-ban van ott az L2-ben, a többi elérés az miss lesz, vagyis menni kell a VRAM-ig.
    Az Infinity Cache specifikusan erre a problémára reagál, ugyanis nem része szokásos gyorsítótár-hierarchiának, hanem egy védőhálót képez az L2-ból kidobott, ROP blokkoknak fontos gyorsítótársorok összegyűjtsére. Ezzel tulajdonképpen megelőzi azt a problémát, hogy a GPU-nak a VRAM-ig kelljen menni, ha a ROP blokk által keresett gyorsítótársor hiányozna az L2-ből. És ugye a tipikus nyüzsgés miatt nem is célszerű az L2 kapacitását nagyon növelni, mert a nyüzsgés attól még ott lesz, hogy a gyorsítótár sokkal nagyobb. Szinte minden részegység ír oda valamit, és sok ezer párhuzamosan futó lane mellett ez nem kevés adat ám. Ellenben az Infinity Cache-be a lane-ek nem írnak. Tilos nekik, így nem tudják azt szemetelni. Ez a gyorsítótár csak azt teszi, hogy "felfogja" az L2-ből a nyüzsgés miatt kidobott, de fontos adatokat. És pont azért ér el az AMD pixelszámtól függően 40-70% közötti cache hitet az Infinity Cache-ben, mert magát a nyüzsgést irtotta ki belőle. Nem a kapacitás itt a fontos, hanem a victim cache-sé szeparálás, elvágva a gyorsítótárat attól a több tízezer lane-től, ami alig várja, hogy szétszemetelje az L2-t minden egyes ciklusban.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

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