Új hozzászólás Aktív témák
-
Abu85
HÁZIGAZDA
válasz
Oliverda
#29679
üzenetére
Nagyon leegyszerűsíted, pedig maga a probléma sokkal bonyolultabb. Amikor a Microsoft megszabta a bindless specifikációkat, akkor két modellt különítettek el. Egyet kapott az NVIDIA, leginkább azért, mert külön kérték ezt, és természetesen bekerült az alapvetően tervezett pure bindless koncepció, amit tulajdonképpen az Xbox One-ra szabtak, de ezáltal nyilván a GCN is jó, és az Intel is támogatja már a Gen9-cel, mert ezt is finomították a véglegesítésre. Ez akkor magát a végleges állapotot tekintve nagyon jó volt, de hosszabb távon nagyon rossz, mert mindenkit bezár a második szintre, aki DX12 CPU-n futó binding API-ját valamilyen formában is használja a meghajtó implementációjában. Ilyenkor a meghajtó elhelyez egy erőforrás-leírót egy tömbbe. Amikor a wave-ek elkezdenek futni a multiprocesszoron, ezt a tömböt fogja a multiprocesszor igényelni. Ennyi lényegében a bekötés. De a probléma az vele, hogy a processzor segítségére van szükség ahhoz, hogy a GPU tudja honnan kell mit betölteni a memóriából. Ennél Tier2-es bindless szint, vagyis amit az NV-re csináltak, annyiban különbözik, hogy az SRV-ket és a samplereket be tudja tölteni a mintavételezőbe a branch egység. De a többi buffer view-re már a CPU kell. A Tier3-es pure bindless szint alapvetően annyi, hogy nem kell használni a DX12 CPU-n futó binding API-ját, mert a GPU-ban van egy programozható integer skalár egység, ami a CPU munkáját teljesen ki tudja váltani. Minden memóriahozzáférés, akár a szűrt adattal visszatérők is beleprogramozhatók a shaderekbe, mert lényegében erről szólnak a bindless szintek, hogy a CPU-t ne terheljék a fejlesztők ezzel a feladattal. Na most a programozhtóság megkövetelése miatt ezt nem tudod csak úgy fixfunkciós blokkal megoldani, ide kell egy olyan programozható integer skalár egység, ami megcsinálja a proci feladatát.
Az NV idén már váltott, amiből arra lehet következtetni, hogy rájött arra, hogy második szint bezárja őket, mert ha a Voltában nincs programozható integer skalár egység, vagy ennek a funkcióit hatékonyan emuláló koncepció, akkor például hiába tud a Pascalnál több CBV-t, UAV-t kezleni, vagy esetleg hiába támogat minden bufferhalmaz esetében unpopulated RS bejegyzést, a DirectX 12 nem fogja megengedni neki az extra tudás kihasználását. Emiatt a Tier2-es bindless szint rendkívül korlátozóvá és haszontalanná vált.
A Maxwell és a Pascal esetében az NV átváltott a pure bindless szintre, amit a végleges specifikációkkal szerencsére nem nehéz emulálni, mert volt esze a Microsoftnak, és tudták, hogy 5-6 éven belül az Intel és az NV nem fog memóriaalapú, a bekötési állapot szempontjából transzparens hardvert tervezni, vagyis nem fogják lemásolni a GCN-t. Igazából a Gen9 esetében az Intel is emulál. Náluk az IGP melletti procimagok megcsinálják azt, amit az AMD CU-iban található skalár egységek. Ezután az IGP multiprocesszorai az utolsó szintű gyorsítótárban elérhetik az információkat. Az egyetlen hátránya ennek (a procimagok extra terhelésén kívül persze) a divergens indexelés, de egyrészt a Gen9 multiprocesszorain nem sok lane fut, másrészt tele van vektorregiszterrel az architektára. Az NV-nek ez a megoldás valamivel károssabb, mert a SM-enként 4 KB-nyi vektorregisztert is bukhatnak, ami a regiszterszegény Maxwell és Pascal architektúrákban jóval több, mint az egészséges határ, de valószínűleg 10-15%-nál nagyobb büntit nem szereznek vele, és innentől kezdve a bindless motorok nem jelentenek problémát, tehát egyedül az erőforráshalmazok problémájával kell foglalkozni, mivel a Maxwell/Pascal csak olyan halmazokat hozhat létre, ahol a flagek csak egy kategóriába sorolt típust engednek használni. A Volta állítólag már olyan halmazok is létrehozhat, ahol használható az összes típus. Utóbbival hatékonyabban működtethető a hardver, és a GCN, illetve a Gen9 is így működik. Ez amúgy egy nagyon egyszerűen kezelhető dolog. Maximum romlik a hatásfok.
Valószínűnek tartom egyébként, hogy amit ma látunk az NV implementációjában, az a Volta miatt van benne, mivel az sem kap majd programozható integer skalár egységet, viszont össze lesz vonva az L1 és az LDS. Ilyen formában az L1 kapacitása felhasználható az SM-ken belüli regiszterterület tehermentesítésére a bekötés szempontjából. Tehát a Volta egy ilyen emulációból valószínűleg 3-5%-nál többet nem veszít, és a futtatható warpok számát sem csökkenti majd a módszer.
Egyébként egyetlen mai hardver sem kap EOL-t idén.
Új hozzászólás Aktív témák
A topikban az OFF és minden egyéb, nem a témához kapcsolódó hozzászólás gyártása TILOS!
Megbízhatatlan oldalakat ahol nem mérnek (pl gamegpu) ne linkeljetek.
- GIGABYTE AORUS Radeon RX 580 8GB - MINDEN TARTOZÉKÁVAL.
- ASUS GeForce RTX 4060 DUAL 8GB GDDR6 OC V2 Videokártya (DUAL-RTX4060-O8G-V2)
- nVidia RTX2060 6GB, alig használt
- XFX Quicksilver AMD Radeon RX 7800 XT Magnetic Air - Arctic White - Alza garancia 2028.02.25.
- Asus RoG STRIX LC RX 6900XT 16GB DDR6 Videokártya! BeszámítOK
- Samsung Galaxy S10 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC-Számítógép! Csere-Beszámítás! Ryzen 7 3700X / RTX 2070 Super / 32GB DDR4
- GYÖNYÖRŰ iPhone 15 Pro Max 512GB Blue Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4089, 100% Akksi
- Apple iPhone 17 Pro Max 512GB / 36 hónap jótállással!
- GYÖNYÖRŰ iPhone 12 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3654, 100% Akksi
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



