Model de shader unificat

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 18 iulie 2021; verificările necesită 2 modificări .

Modelul unificat de umbrire este un termen  care este folosit pentru a descrie două concepte similare, dar în același timp separate: o arhitectură de umbrire unificată ( în engleză Unified Shading Architecture ), care descrie nivelul hardware și un model de umbrire unificat , care descrie stratul software. .  

Model de shader unificat

Modelul Unified Shader, cunoscut în Direct3D 10 ca Shader Model 4.0, utilizează un set consistent (similar) de comenzi pentru toate tipurile de shader [1] . Shaderele de toate tipurile au capacități foarte asemănătoare - pot „citi” texturi , buffere de date și pot executa același set de instrucțiuni aritmetice.

Cu toate acestea, setul de instrucțiuni nu este complet același în toate tipurile de shader; de exemplu, doar pixel shader -ul poate citi texturi cu gradiente de coordonate implicite; și numai geometry shader poate reda primitive suplimentare și așa mai departe [1] .

Modelele de shader timpurii (Shader Model 1.x) foloseau seturi de instrucțiuni foarte diferite pentru vertex și pixel shaders, unde vertex shaders aveau un set de instrucțiuni mult mai flexibil. Modelele de shader ulterioare (2.x și 3.0) au redus din ce în ce mai mult diferențele, ducând la un model de shader unificat.

Arhitectură de shader unificat

Atunci când un GPU acceptă un model de shader unificat, este logic să-și proiecteze unitățile de calcul astfel încât oricare dintre acele unități să poată executa orice tip de shader. Când unitățile de calcul GPU sunt „unificate”, adică capabile să execute orice tip de program shader, aceasta se numește „Arhitectură Shader unificată”. Cel mai adesea, astfel de GPU-uri sunt compuse dintr-o serie de unități de calcul și unități dinamice de programare/echilibrare a sarcinii pentru a distribui execuția programului shader pe toate unitățile de calcul.

Hardware-ul nu este necesar să aibă o arhitectură de shader unificat pentru a suporta un model de shader unificat și invers. GPU-urile compatibile cu Direct3D 10 pot avea în continuare procesoare dedicate cu geometrie, vârfuri și pixeli. GPU-urile mai vechi din punct de vedere tehnologic care acceptă Shader Model 3.0 pot executa parțial modelul Unified Shader, așa cum se vede cu GPU-ul Xenos pentru consola de jocuri Xbox 360 .

Arhitectura shader unificată permite utilizarea mai flexibilă a resurselor GPU [2] . De exemplu, în condiții de simulare a geometriei de nivel ridicat, arhitectura unificată de umbrire poate folosi toate unitățile GPU pentru a calcula umbrirea de vârf și de geometrie. Si invers; când geometria nu este complexă, dar sunt simulate multe efecte complexe ale pixelilor, cum ar fi maparea ocluziei Parallax , sistemul de particule și așa mai departe, toate unitățile de calcul pot fi direcționate pentru a executa pixel shaders.

Arhitectura shader unificată este acceptată de GPU-urile GeForce 8 , Radeon R600 , S3 Graphics Chrome 400, Intel GMA X3000, GPU pentru Xbox 360 , seria Qualcomm Adreno 200 , Mali Midgard, GPU-uri PowerVR SGX și nu numai.

Note

  1. 1 2 Common Shader Core (DirectX HLSL) . Microsoft. Consultat la 17 august 2008. Arhivat din original la 4 aprilie 2012.
  2. Loyd Case. GeForce 8800 GTX: Prezentare generală a arhitecturii 3D . ExtremeTech (8 noiembrie 2006). Arhivat din original pe 11 noiembrie 2006.

Link -uri