Hirdetés

Hirdetés

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

  • Abu85

    HÁZIGAZDA

    válasz gejala #47467 üzenetére

    Ne keverjük ezeket össze. A mai GPU-k úgynevezett veszteségmentes színtömörítési algoritmusokat kínálnak. Ezek az AMD és az NVIDIA rendszereiben is 2:1, 4:1 és 8:1 arányú, veszteségmentes tömörítést kínálnak, amelyek ugyan hasznosak, de nem oldanak meg olyan kritikus menedzselési problémákat, mint a töredezettség. Tehát fel lehet ezekre építeni egy marketinget, és van is valós hasznuk ezeknek az eljárásoknak, de a működésük pontosan ugyanaz.

    Az allokálás problémáját egyik ilyen veszteségmentes színtömörítési algoritmus sem kezeli, márpedig a VRAM használatának hatásfoka ettől függ, nem attól, hogy pár kilobájtot nyersz a puffer/image adatokon.

    Az alternatív megoldásokkal két probléma lesz. A pletykákban szereplő Tensor magos módszer csak veszteségesen tud működni, vagyis minőségvesztés árán vállalod be, hogy többet nyersz a puffer/image adatok tárolásán. De ez minőségvesztés mellett sem oldja meg a töredezettség problémáját, amitől rossz hatásfokú a VRAM használat, illetve a kitömörítés időbe kerül. Egy image adat betöltése egy mai GPU számára nagyjából 50-70 ns körül van. Arra vannak tervezve a hardverekhez szabott optimalizálások, hogy a wave-ek futtatása szempontjából ezt az 50-70 ns-ot áthidalják konkurens wave-ekkel. Tehát egy shader mondjuk allokál valamennyi erőforrást a multiprocesszoron, ami megenged mondjuk 16 wave-et futtatni. Ebből egy belefut egy memóriaelérésbe, jön a következő wave, és kialakul a működésben egy olyan egyensúly, hogy a wave-ek egy része adatra vár, míg a másik része addig dolgozik. Ez a működés a normál memóriaelérésre van szabva, és ezért van megadva minden architektúránál egy minimum wave szám, amit el kell érni a hatékony működéshez. Ha azonban még át is kell méretezni az image adatot a betöltés után, akkor az az 50-70 ns megnő az átméretezés időigényével, ami jó esetben is minimum 100 ns lesz. Így már jóval nagyobb késleltetést kell áthidalni a konkurens wave-eknek, miközben elképzelhető, hogy nem is futtatható annyi wave a multiprocesszoron belül, ami ezt meg tudná tenni. Sőt, a statikus erőforrás-allokálás miatt igen ritka, hogy egy adott shader képes annyi wave-et futtatni, amennyit az architektúra elméletben megenged.
    Ez tehát egy egyensúlyi kérdés, hogy megéri-e vállalni a konvertálás extra késleltetését, azzal ugyanis tényleg lehet nyerni a VRAM oldalán, de ennek az az ára, hogy a GPU közben malmozni fog, amíg adatra vár.

    [ 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