Jednotný model shaderu

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 18. července 2021; kontroly vyžadují 2 úpravy .

Unified shader model je termín , který  se používá k popisu dvou podobných, ale zároveň samostatných konceptů: jednotné architektury shaderu ( anglicky  Unified Shading Architecture ), která popisuje úroveň hardwaru, a jednotného modelu shaderu , který popisuje softwarovou vrstvu. .

Unified shader model

Unified Shader Model, známý v Direct3D 10 jako Shader Model 4.0, používá konzistentní (podobnou) sadu příkazů pro všechny typy shaderů [1] . Shadery všech typů mají velmi podobné schopnosti – umí „číst“ textury , datové buffery a provádět stejnou sadu aritmetických instrukcí.

Instrukční sada však není u všech typů shaderů úplně stejná; například pouze pixel shader může číst textury s implicitními souřadnicovými přechody; a pouze geometry shader může vykreslit další primitiva a tak dále [1] .

Dřívější modely shaderů (Shader Model 1.x) používaly velmi odlišné instrukční sady pro vertexové a pixelové shadery, kde vertexové shadery měly mnohem flexibilnější instrukční sadu. Pozdější shader modely (2.xa 3.0) stále více snižovaly rozdíly, což vedlo k jednotnému shader modelu.

Unified shader architektura

Když GPU podporuje jednotný model shaderu, má smysl navrhnout jeho výpočetní jednotky tak, aby kterákoli z těchto jednotek mohla spustit jakýkoli typ shaderu. Když jsou výpočetní jednotky GPU "sjednocené", to znamená, že jsou schopné provádět jakýkoli typ shader programu, nazývá se to "Unified Shader Architecture". Nejčastěji se takové GPU skládají z řady výpočetních jednotek a jednotek dynamického plánování/vyrovnávání zátěže, které distribuují provádění shader programu mezi všechny výpočetní jednotky.

Hardware nemusí mít jednotnou architekturu shaderu pro podporu jednotného modelu shaderu a naopak. GPU s podporou Direct3D 10 mohou mít vyhrazené procesory geometrie, vertexu a pixelů. Technologicky starší GPU, které podporují Shader Model 3.0, mohou také částečně spustit Unified Shader Model, jak je vidět u GPU Xenos pro herní konzoli Xbox 360 .

Jednotná architektura shaderu umožňuje flexibilnější využití zdrojů GPU [2] . Například v podmínkách se simulací geometrie na vysoké úrovni může architektura jednotného shaderu používat všechny jednotky GPU k výpočtu vertexových a geometrických shaderů. A naopak; když geometrie není složitá, ale je simulováno mnoho složitých pixelových efektů, jako je mapování paralaxní okluze , částicový systém a tak dále, všechny výpočetní jednotky mohou být nasměrovány k provádění pixel shaderů.

Sjednocenou architekturu shaderu podporují GPU GeForce 8 , Radeon R600 , S3 Graphics Chrome 400, Intel GMA X3000, GPU Xbox 360 , řada Qualcomm Adreno 200 , Mali Midgard, GPU PowerVR SGX a další.

Poznámky

  1. 1 2 Common Shader Core (DirectX HLSL) . Microsoft. Získáno 17. srpna 2008. Archivováno z originálu dne 4. dubna 2012.
  2. Případ Loyd. GeForce 8800 GTX: Přehled 3D architektury . ExtremeTech (8. listopadu 2006). Archivováno z originálu 11. listopadu 2006.

Odkazy