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

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

Требования к алгоритмам для 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; просмотров: 600. Нарушение авторских прав; Мы поможем в написании вашей работы!




Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


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


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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

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

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

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

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

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