Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

История программируемости графических процессоров





Первые графические процессоры для ПК, появившиеся в 1995 году (GPU 3DFX Voodoo), не были программируемыми, они только линейно отображали треугольники на плоскость экрана. Затем GPU стали исполь­зовать для трассировки лучей – расчета освещенности поверхностей, а также других графических эффектов, для чего и потребовалась программируемость графического конвейера. Следующая хронология (см., например, [15]) пока­зывает, как постепенно увеличивались возможности программирования раз­лич­ных типов GPU для обработки трёхмерной графики и выполнения поль­зовательских алгоритмов.

· 1995 год, первые графические процессоры (S3 ViRGE, ATI Rage - ATI Radeon 7500, Matrox Mystique, 3dfx Voodoo)

Были разработаны как специализированные процессоры для ускорения операций с двух- и трёхмерной графикой, в частности – для отображения на плоскости экрана трёхмерных сцен. В качестве исходных данных принимали координаты вершин треугольников, образующих трёхмерные поверхности, цвета вершин, а также положение экрана и источников света относительно этой 3D-сцены. Такие GPU автоматически выполняли

· проектирование треугольников на плоскость экрана,

· интерполяционную закраску изображений этих треугольников по цветам вершин,

· нанесение заданных текстур (узоров) на изображение,

· расчёт освещённости без учёта теней, а также

· отсечение невидимых поверхностей при помощи специального буфера глубины (Z-буфера).

Программировать эти графические процессоры самостоятельно было невозможно.

· 1999 год. Графические процессоры (серия NVIDIA GeForce) начинают работать с 32-битными вещественными числами, т.е. – с вещественными числами одинарной точности (7-8 значащих цифр)

Одинарной точности в принципе достаточно для моделирования физических систем, при условии применения агоритмов, корректирующих вычислительную погрешность, и проведения расчётов, критичных к точности, на центральном процессоре. Предыдущие GPU работали с числами «половинной» точности (16-битными числами), чего было заведомо недостаточно для точного физического моделирования.

С другой стороны, 32-битная точность была реализована ещё не полностью, промежуточные вычисления проводились с «половинной» точностью. Кроме того, первые процессоры серии GeForce по-прежнему не были программируемыми.

· 2001 год. Появление возможности пользовательского програм­миро­вания процедур проектирования треугольников на плоскость экрана, расчёта освещённости и цвета отображаемых поверхностей.

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

Шейдеры позволили реализовывать на GPU алгоритмы, не обязательно предназначенные для обработки графики. Таким образом, появилась возможность программирования GPU для решения различных задач, в том числе и задач физического моделирования.

Совокупность возможностей программирования, обеспечиваемых графическим процессором, принято называть шейдерной моделью. Первым программируемым GPU соответствовала шейдерная модель 1.0, имевшая серьёзные ограничения: длина шейдера не превосходила 20 команд, вычисления производились с «фиксированной» точкой (без использования порядковых множителей), ветвления алгоритмов не поддерживались.

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

Пример GPU с шейдерной моделью 1.0 – серии NVidia GeForce 3-5.

· 2003 год. Полная реализация 32-битной точности при всех операциях с данными. Поддержка новыми графическими процессорами (NVIDIA GeForce FX, ATI Radeon 8500 - X800) шейдерной модели 2.0.

Шейдерная модель 2.0 (SM2) позволяла составлять программы длиной до 512 инструкций, а также использовать 22 регистра (быстрые ячейки памяти, расположенные прямо на процессоре) с произвольным доступом к памяти (то есть, с возможностью чтения и записи данных в произвольном порядке)

· 2004 год. Появление шейдерной модели 3.0 (GPU NVIDIA GeForce серий 6 и 7, ATI Radeon X1500 – X1950),

В шейдерной модели 3.0 (SM3) появились возможность программирования циклов (до 255 итераций) и динамическое ветвление (применение условных операторов). Максимальная длина программы выросла до 1024 инструкций, количество регистров увеличилось до 32.

· 2007 год. Графические процессоры с шейдерной моделью 4.0 (NVIDIA GeForce 8, AMD HD3). Фактический отказ от обязательной структуры программы в виде графического конвейера в пользу произвольной структуры программ.

Во всех предыдущих графических процессорах раздельно использовались вершинные и пиксельные конвейеры, решавшие различные задачи (при обработке графики – проектирование вершин и закрашивание треугольников, соответственно). Эти конвейеры нельзя было автоматически объединить для параллельной обработки одного и того же потока данных. Конвейеры GPU шейдерной модели 4.0 являются универсальными, они все могут быть объединены для обработки одного потока данных.

В шейдерной модели 4.0 впервые реализована поддержка 32-битных целых чисел, доступны 4096 регистров, возможны 65536 инструкций, расширены возможности произвольного взаимодействия графического процессора с памятью.

· 2008 год. В рамках шейдерной модели 4.0 появляется поддержка вещественных чисел двойной точности (64-битные числа, 15-16 значащих цифр). Примеры GPU - серии AMD HD4, NVIDIA GeForce 200.







Дата добавления: 2014-12-06; просмотров: 876. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия