stringtranslate.com

Унифицированная шейдерная модель

Унифицированная модель шейдера использует одни и те же аппаратные ресурсы для обработки вершин и фрагментов.

В области 3D компьютерной графики унифицированная модель шейдеров (известная в Direct3D 10 как « Shader Model 4.0 ») относится к форме шейдерного оборудования в графическом процессоре (GPU), где все этапы шейдеров в конвейере рендеринга (геометрия, вершины, пиксели и т. д.) имеют одинаковые возможности. Все они могут считывать текстуры и буферы, и они используют наборы инструкций , которые почти идентичны. [1]

История

Более ранние графические процессоры обычно включали два типа шейдерного оборудования, причем вершинные шейдеры имели значительно больше инструкций, чем более простые пиксельные шейдеры . Это снижало стоимость реализации графического процессора в целом и позволяло использовать больше шейдеров в общей сложности на одном устройстве. Это было сделано за счет того, что система становилась менее гибкой, а иногда один набор шейдеров простаивал, если рабочая нагрузка использовала один больше, чем другой. По мере того, как продолжались улучшения в производстве , это различие становилось менее полезным. ATI Technologies представила унифицированную архитектуру на оборудовании, которое они разработали для Xbox 360. Nvidia быстро последовала их примеру со своим дизайном Tesla . AMD представила унифицированный шейдер в виде карты два года спустя в линейке TeraScale . С тех пор эта концепция стала универсальной.

Ранние абстракции шейдеров (такие как Shader Model 1.x) использовали очень разные наборы инструкций для вершинных и пиксельных шейдеров, причем вершинные шейдеры имели гораздо более гибкий набор инструкций. Более поздние модели шейдеров (такие как Shader Model 2.x и 3.0) уменьшили различия, приблизившись к унифицированной модели шейдеров. Даже в унифицированной модели набор инструкций может быть не полностью одинаковым для разных типов шейдеров; разные этапы шейдеров могут иметь несколько различий. Фрагментные/пиксельные шейдеры могут вычислять неявные градиенты координат текстуры, в то время как геометрические шейдеры могут испускать примитивы рендеринга. [1]

Унифицированная архитектура шейдеров

Унифицированная архитектура шейдеров (или унифицированная архитектура шейдеров ) — это аппаратная конструкция, при которой все блоки обработки шейдеров графического оборудования способны обрабатывать любые типы задач шейдеров. Чаще всего аппаратная часть унифицированной архитектуры шейдеров состоит из массива вычислительных блоков и некоторой формы динамического планирования / системы балансировки нагрузки , которая гарантирует, что все вычислительные блоки будут работать как можно чаще.

Унифицированная архитектура шейдеров позволяет более гибко использовать аппаратное обеспечение для рендеринга графики. [2] Например, в ситуации с большой геометрической рабочей нагрузкой система может выделить большую часть вычислительных блоков для запуска вершинных и геометрических шейдеров. В случаях с меньшей вершинной рабочей нагрузкой и большой пиксельной нагрузкой больше вычислительных блоков может быть выделено для запуска пиксельных шейдеров.

Хотя унифицированная архитектура аппаратного обеспечения шейдеров и унифицированные интерфейсы программирования моделей шейдеров не являются обязательными друг для друга, унифицированная архитектура наиболее разумна при проектировании аппаратного обеспечения, предназначенного для поддержки API, предлагающего унифицированную модель шейдеров.

OpenGL 3.3 (который предлагает унифицированную модель шейдеров) все еще может быть реализован на оборудовании, которое не имеет унифицированной архитектуры шейдеров. Аналогично, оборудование, которое поддерживает неунифицированные API модели шейдеров, может быть основано на унифицированной архитектуре шейдеров, как в случае с графическим чипом Xenos в Xbox 360 , например.

Унифицированная архитектура шейдеров была представлена ​​в видеокартах серии Nvidia GeForce 8 , серии ATI Radeon HD 2000 , S3 Chrome 400 , серии Intel GMA X3000, графических процессорах Xbox 360 , серии Qualcomm Adreno 200 , Mali Midgard, PowerVR SGX и используется во всех последующих сериях.

Например, унифицированный шейдер на графических процессорах NVIDIA называется «ядром CUDA» или «шейдерным ядром» , а на графических процессорах Intel — «ядром ALU» .

Нвидиа

Интел

АТИ/АМД

Ссылки

  1. ^ ab "Common Shader Core (DirectX HLSL)". Microsoft . Получено 2008-08-17 .
  2. Кейс, Лойд (8 ноября 2006 г.). "GeForce 8800 GTX: Обзор 3D-архитектуры". ExtremeTech . Получено 10 ноября 2013 г. .