Unified shader model

De la Viquipèdia, l'enciclopèdia lliure
El model de shader unificat utilitza els mateixos recursos de maquinari tant per al processament de vèrtexs com de fragments.

En l'àmbit dels gràfics per ordinador en 3D, el model d'ombres unificat (conegut a Direct3D 10 com a "Model d'ombres 4.0") es refereix a una forma de maquinari d'ombres en una unitat de processament gràfic (GPU) on totes les etapes de l'ombra en el canal de renderització (geometria, vèrtex, píxel, etc.) tenen les mateixes capacitats. Tots poden llegir textures i buffers, i utilitzen conjunts d'instruccions que són gairebé idèntics.[1]

Història[modifica]

Les GPU anteriors incloïen generalment dos tipus de maquinari d'ombra, amb els ombrejats de vèrtex que tenien molt més instruccions que els ombrejats de píxels més simples. Això va reduir el cost d'implementació de la GPU en conjunt i va permetre més shaders en total en una sola unitat. Això va suposar fer el sistema menys flexible i, de vegades, deixar un conjunt de shaders inactiu si la càrrega de treball n'utilitzava més un que l'altre. A mesura que les millores en la fabricació van continuar, aquesta distinció es va tornar menys útil. ATI Technologies va introduir una arquitectura unificada en el maquinari que van desenvolupar per a la Xbox 360. Nvidia va seguir ràpidament amb el seu disseny de Tesla. AMD va introduir un shader unificat en forma de targeta dos anys més tard a la línia TeraScale. El concepte ha estat universal des de llavors.

Les primeres abstraccions de shader (com ara Shader Model 1.x) utilitzaven conjunts d'instruccions molt diferents per als ombrejats de vèrtex i píxels, amb els ombrejats de vèrtex que tenien un conjunt d'instruccions molt més flexible. Els models shader posteriors (com ara Shader Model 2.x i 3.0) van reduir les diferències, apropant-se al model shader unificat. Fins i tot en el model unificat, el conjunt d'instruccions pot no ser completament igual entre diferents tipus d'ombres; diferents estadis d'ombra poden tenir algunes distincions. Els ombrejats de fragments/píxels poden calcular degradats implícits de coordenades de textura, mentre que els ombrejats de geometria poden emetre primitives de renderització.[2]

Arquitectura shader unificada[modifica]

L'arquitectura d'ombrejat unificat (o arquitectura d'ombrejat unificat ) és un disseny de maquinari pel qual totes les unitats de processament d'ombrejats d'una peça de maquinari gràfic són capaços de gestionar qualsevol tipus de tasques d'ombrejat. Sovint, el maquinari Unified Shading Architecture es compon d'una sèrie d'unitats informàtiques i d'alguna forma de programació dinàmica/sistema d'equilibri de càrrega que garanteix que totes les unitats computacionals es mantinguin funcionant tan sovint com sigui possible.L'arquitectura shader unificada permet un ús més flexible del maquinari de renderització de gràfics.[3] Per exemple, en una situació amb una gran càrrega de treball de geometria, el sistema podria assignar la majoria de les unitats informàtiques per executar ombrejats de vèrtex i geometria. En els casos amb menys càrrega de treball de vèrtex i càrrega de píxels pesada, es podrien assignar més unitats informàtiques per executar sombreadors de píxels.[4]

L'OpenGL 3.3 (que ofereix un model d'ombres unificat) encara es pot implementar en maquinari que no tingui una arquitectura d'ombres unificats. De la mateixa manera, el maquinari que admetia API de models de shader no unificats es podria basar en una arquitectura de shader unificada, com és el cas del xip de gràfics Xenos a Xbox 360, per exemple.

L'arquitectura shader unificada es va introduir amb la sèrie Nvidia GeForce 8, la sèrie ATI Radeon HD 2000, S3 Chrome 400, la sèrie Intel GMA X3000, la GPU de Xbox 360, la sèrie Qualcomm Adreno 200, Mali Midgard, PowerVR SGX i s'utilitza en totes les sèries posteriors.

Referències[modifica]

  1. «Common Shader Core (DirectX HLSL)» (en anglès). Microsoft. [Consulta: 17 agost 2008].
  2. «Common Shader Core (DirectX HLSL)» (en anglès). Microsoft. [Consulta: 17 agost 2008].
  3. Case, Loyd. «GeForce 8800 GTX: 3D Architecture Overview» (en anglès). ExtremeTech, November 8, 2006. [Consulta: November 10, 2013].
  4. Seitz Jr., Kerry A.; Foley, Theresa; Porumbescu, Serban D.; Owens, John D. «Supporting Unified Shader Specialization by Co-opting C++ Features». Proceedings of the ACM on Computer Graphics and Interactive Techniques, 5, 3, 25-07-2022, pàg. 1–17. DOI: 10.1145/3543866. ISSN: 2577-6193.