Hirdetés

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

  • con_di_B

    tag

    válasz IgorKGB #23 üzenetére

    Az alapján amit eddig értek, ez egy olyan victim cache, ami részben vagy egészben pinnelhető, de utóbbihoz szólni kell a programnak. Magyarul alapértelmezésben ugyanazt csinálja, mint a többi cache, ha valami kell, akkor csak az a (kb. 64 byte-os) cacheline töltődik be, amihez az adott cím tartozott (mindenféle adatelérés esetében). Ahhoz hogy ennél bármi nagyobb töltődjön be egyszerre, és főleg ott is maradjon, félre kell tenni egy részt a cache-ből, és explicite kezelni, ez a pinning. (Természetesen pinning nélkül is betölt nagy, akár összefüggő területeket egy ilyen rendszer, de csak az elérés függvényében. Pre-fetchinget nem tudom GPU-n mennyire van, de meglepne ha azzal komolyan számolni kéne. Igazából ennek a programozással való megspórolása az explicit fetch és pinning.)

    A fejlesztőknek nem tudom h elérhető-e a pinning D3D12 alól, szerintem nem, de az AMD tud a driverben profilt erre, ha egy-egy játékban megéri egy ismert buffert pinnelni, de ez teljesen szoftveres téma. Szóval, az a lényeg, h LEHET olyat csinálni, mint amit leírtál, és sokszor rossz ötlet, de ez szoftveres kérdés, nem hardverhiba.

    Amúgy ami nekem nincs meg, hogy az oké, hogy a régebbi RT implementációkat a fejlesztő már nem fogja AMD-re optimalizálni, de attól még az AMD reverse engineerelhetné a megoldást és segítség nélkül is lehet profilt írni. Sokkal nehezebb nyilván, de nem megugorhatatlan, a pinning viselkedés meg azért jelentősen javíthatja a hit rate-et.

    (A konkrét Infinity cache-el soha nem dolgoztam még, de "ilyesmikkel" elég sokat.)

    [ Szerkesztve ]

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