Saltar para o conteúdo

Modelo de shader unificado

Origem: Wikipédia, a enciclopédia livre.
O modelo de shader unificado usa os mesmos recursos de hardware para processamento de vértices e fragmentos.

No campo da computação gráfica 3D, o modelo de shader unificado ou Unified shader model (conhecido no Direct3D 10 como "Shader Model 4.0") refere-se a uma forma de hardware de shader em uma unidade de processamento gráfico (GPU) onde todos os estágios do shader no pipeline de renderização (geometria, vértice, pixel, etc.) têm os mesmos recursos. Todos eles podem ler texturas e buffers e usam conjuntos de instruções quase idênticos.[1]

As GPUs anteriores geralmente incluíam dois tipos de hardware de shader, com os shaders de vértice tendo consideravelmente mais instruções do que os shaders de pixel mais simples. Isso reduziu o custo de implementação da GPU como um todo e permitiu mais shaders no total em uma única unidade. Isso acontecia ao custo de tornar o sistema menos flexível e, às vezes, deixar um conjunto de shaders ocioso se a carga de trabalho usasse um mais do que o outro. À medida que as melhorias na fabricação continuaram, essa distinção se tornou menos útil. A ATI Technologies introduziu uma arquitetura unificada no hardware desenvolvido para o Xbox 360. A Nvidia rapidamente seguiu com seu design Tesla. A AMD introduziu um shader unificado em formato de placa dois anos depois na linha TeraScale. O conceito se tornou universal desde então.

As primeiras abstrações de shader (como o Shader Model 1.x) usavam conjuntos de instruções muito diferentes para shaders de vértice e pixel, com os shaders de vértice tendo conjuntos de instruções muito mais flexíveis. Modelos de shader posteriores (como Shader Model 2.x e 3.0) reduziram as diferenças, aproximando-se do modelo de shader unificado. Mesmo no modelo unificado, o conjunto de instruções pode não ser completamente o mesmo entre diferentes tipos de shader; diferentes estágios de shader podem ter algumas distinções. Os shaders de fragmentos/pixels podem calcular gradientes de coordenadas de textura implícitas, enquanto os shaders de geometria podem emitir primitivas de renderização.[1]

Arquitetura de shader unificada

[editar | editar código-fonte]

Arquitetura de shader unificada ou Unified shader architecture (ou arquitetura de sombreamento unificada ou unified shading architecture) é um projeto de hardware pelo qual todas as unidades de processamento de shader de um hardware gráfico são capazes de lidar com qualquer tipo de tarefa de sombreamento. Na maioria das vezes, o hardware da Arquitetura de Sombreamento Unificado é composto por uma série de unidades de computação e alguma forma de sistema de agendamento dinâmico / balanceamento de carga que garante que todas as unidades computacionais sejam mantidas funcionando com a maior frequência possível.

A arquitetura de shader unificada permite um uso mais flexível do hardware de renderização gráfica.[2] Por exemplo, em uma situação com uma carga de trabalho de geometria pesada, o sistema poderia alocar a maioria das unidades de computação para executar shaders de vértice e geometria. Em casos com menos carga de trabalho de vértices e carga pesada de pixels, mais unidades de computação podem ser alocadas para executar shaders de pixel.

Embora o hardware da arquitetura de shader unificada e as interfaces de programação do modelo de shader unificado não sejam um requisito um para o outro, uma arquitetura unificada é mais sensata ao projetar hardware destinado a dar suporte a uma API que oferece um modelo de shader unificado.

O OpenGL 3.3 (que oferece um modelo de shader unificado) ainda pode ser implementado em hardware que não tenha arquitetura de shader unificada. Da mesma forma, o hardware que suportava APIs de modelo de shader não unificado poderia ser baseado em uma arquitetura de shader unificada, como é o caso do chip gráfico Xenos no Xbox 360, por exemplo.

A arquitetura de shader unificada foi introduzida com as GPUs Nvidia GeForce série 8, ATI Radeon HD série 2000, S3 Chrome 400, Intel GMA série X3000, Xbox 360, Qualcomm Adreno série 200, Mali Midgard, PowerVR SGX e é usada em todas as séries subsequentes.

Por exemplo, o shader unificado é chamado de "núcleo CUDA" ou "núcleo shader" em GPUs NVIDIA e é chamado de "núcleo ALU" em GPUs Intel.

Nvidia

Intel

  • Intel Arc

ATI/AMD

Referências

  1. a b «Common Shader Core (DirectX HLSL)». Microsoft. Consultado em 23 de abril de 2025 
  2. Case, Loyd (8 de novembro de 2006). «GeForce 8800 GTX: 3D Architecture Overview». ExtremeTech. Consultado em 23 de abril de 2025. Arquivado do original em 10 de novembro de 2013