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

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

Представление данных для графического процессора





Центральные процессоры персональных компьютеров в большинстве случаев обрабатывают данные последовательно. Поэтому естественно то, что данные в оперативной памяти компьютера представлены в форме одномерных массивов: адрес каждой ячейки памяти представляется одним шестнадцатеричным числом, а последовательным ячейкам памяти соответствуют последовательные адреса. Даже если объектами моделирования являются многомерные структуры данных, такие как матрицы:

,

фактически их элементы всё равно хранятся и обрабатываются как одномерные последовательности:

.

В отличие от CPU, графические процессоры изначально предназначены для параллельной обработки данных, поэтому для них естественно обращаться к памяти, где данные хранятся в форме двумерных массивов и адресуются двумя координатами. Именно так устроена видеопамять, размещаемая на видеокартах (рис. 5.2). Данные в видеопамять записывает центральный процессор, с помощью драйвера видеокарты, который копирует эти данные из оперативной памяти компьютера. Для представления данных в необходимой для копирования форме можно применять стандартные процедуры библиотек DirectX и OpenGL.

Ещё одно отличие графических процессоров от CPU состоит в том, что при их программировании для адресации элементов массивов (т.е., в качестве номеров элементов) используются не целые числа, а числа с плавающей точкой, которые при обработке графики напрямую задавали бы координаты закрашиваемых областей на экране (рис. 5.2).

Перед началом исполнения шейдера в ячейки видеопамяти (рис. 5.2) долж­ны быть записаны исходные данные (здесь – элементы матриц). Затем с помощью драйвера видеокарты центральный процессор запускает расчёт. В ходе расчёта графический процессор последовательно извлекает эти данные из видеопамяти и применяет ко всем элементам один и тот же набор операций, заданный программой (например, рассчитывает сумму c ij = a ij+ b ij). Результаты расчёта (в примере - значения c ij) GPU записывает в область видеопамяти, называемую рендер-целью.

Как уже отмечено выше, исходные данные хранятся в виде двумерных массивов, и рендер-цель тоже представляет собой двумерный массив тех же размеров. В рассматриваемом примере с матрицами содержимым ячеек этих массивов являются скалярные числа. Существует также возможность хранить в этих ячейках 4-векторы, которые могут содержать, например, координаты частиц. Последняя возможность была реализована нами в молекулярной динамике (см. следующий пример).

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

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

Рис. 5.2. Области координат, которыми адресуются числа, обрабатываемые графическим процессором

Результаты своей работы графический процессор по умолчанию выводит на экран, а точнее - в область памяти, называемую буфером кадра (framebuffer). Тем не менее, вычисления, не отображаемые на экране, также возможны, поскольку существует возможность сохранять результаты в заранее выделенную область памяти, которая как раз и называется рендер-целью (Render Target). Все современные GPU способны выводить данные сразу в несколько рендер-целей (Multiple Render Targets).







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




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


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


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

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