Студопедия — Требования к алгоритмам для GPU, поддерживающих шейдерную модель 3.0
Студопедия Главная Случайная страница Обратная связь

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

Требования к алгоритмам для GPU, поддерживающих шейдерную модель 3.0






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

Как уже отмечено в предыдущем разделе, совокупность возможностей графического процессора, доступных программисту, называют шейдерной моделью. Первой шейдерной моделью была модель 1.0, современные графические процессоры поддерживают шейдерные модели 3.0 либо 4.0. GPU старших шейдерных моделей могут исполнять программы, написанные для предыдущих моделей, причём более эффективно, за счёт оптимизации взаимодействия с памятью и увеличением количества конвейеров.

В настоящей работе мы рассмотрим программирование графических процессоров с использованием шейдерной модели 3.0 (Shader Model 3.0 (SM3)). Эта модель достаточна для того, чтобы в полной мере реализовать поточно-параллель­ную обработку однотипных данных.

Рис. 4.7. Принцип поточно-параллельной обработки данных (SIMD)

Модель 4.0 позволила бы оптимизировать некоторые алгоритмы за счёт произвольного (а не поточного) доступа к исходным данным (см., например, [13]), но эта возможность уже не имеет прямого отношения к поточно-параллельному программированию, так что здесь мы её не рассмат­риваем.

Принцип программирования, реализованный в SM3, известен под аббревиатурой SIMD, от англ. Single Instruction – Multiple Data, т.е. Одна Инструкция – Множество Данных. Название принципа отражает тот факт, что GPU применяет одну и ту же последовательность инструкций одновременно ко многим элементам из входного потока данных. Принцип SIMD схематично показан на рис. 4.7. Можно сказать, что графический процессор преобразует поток данных в поток результатов, используя шейдеры как функцию преобразования.

Поскольку модель SM3 разработана для программирования графи­ческого конвейера, она требует представления вы­числительной задачи в фор­ме задачи обработки 3D-графики, следующим ниже образом.

· Исходные данные, предназначенные для потоковой обработки, долж­ны быть представлены в виде массива однотип­ных объектов (в общем случае – 4-мерных векторов из вещественных чисел). Таких массивов может быть несколько.

· Допустимо использование дополнительных массивов, содержащих параметры обработки данных (см. реализацию молекулярной динамики ниже).

· К каждому из элементов входных массивов при потоковой обработ­ке должен применяться один и тот же алгоритм, не зависящий от результатов обработки других элементов (этот алгоритм называют вычислительным ядром, на рис. 4.1 вычислительное ядро образовано операциями 1 – m).

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

· Ячейки массива исходных данных нужно представить как элементы поверхности треугольников, для которых рассчитываются цвета (рис. 4.8). Вместо границ циклов перебора исходных данных (таких, как цикл по i на рис. 4.1) автоматически используются границы отображаемых треуголь­ников. Даже если в программируемой задаче физического моделирования никаких треугольников нет, потребуется задать границы треугольников в соответствии с диапазоном изменения входных данных.

· Вычислительное ядро программируется как содержание пиксель­ного шейдера – специальной процедуры в тексте программы для графичес­кого процессора (см. примеры в следующем разделе).

· Результатом расчёта должен быть один массив 4-мерных векторов, совпадающий по размеру с массивами входных данных. После завершения расчёта элементы этого массива автоматически записываются в область видеопамяти (памяти GPU, см. рис. 4.5), которую называют рендер-целью. Принцип формирования массива результатов показан на рис. 4.7.

· Центральный процессор компьютера имеет доступ к видеопамяти, включая ту область, где хранится рендер-цель. С использованием той части программы, которая исполняется на центральном процессоре, рендер-цель должна быть скопирована в оперативную память компьютера для дальнейшей обработки.

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

 

Рис. 4.9. Соответствие между массивами результатов и исходных данных







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



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

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

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

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

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

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

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

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