Параллельные вычисления общего назначения на графических процессорах [Кирилл Александрович Некрасов] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

К. А. НЕКРАСОВ
С. И. ПОТАШНИКОВ
А. С. БОЯРЧЕНКОВ
А. Я. КУПРЯЖКИН

ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ
ОБЩЕГО НАЗНАЧЕНИЯ
НА ГРАФИЧЕСКИХ ПРОЦЕССОРАХ
Учебное пособие

Министерство образования и науки Российской Федерации
Уральский федеральный университет
имени первого Президента России Б. Н. Ельцина

К. А. Некрасов, С. И. Поташников,
А. С. Боярченков, А. Я. Купряжкин

Параллельные вычисления
общего назначения
на графических процессорах
Учебное пособие
Рекомендовано методическим советом УрФУ
для студентов, обучающихся по направлениям подготовки
14.04.02 — Ядерная физика и технологии;
09.04.02 — Информационные системы и технологии;
14.04.01 — Ядерные реакторы и материалы

Екатеринбург
Издательство Уральского университета
2016

УДК 004.032.24:004.383.5(075.8)
ББК 32.97я73
П18

Авторы:
Некрасов К. А., Поташников С. И., Боярченков А. С., Купряжкин А. Я.

Рецензенты:
Институт теплофизики УрО РАН (д‑р физ.-мат. наук, проф. В. Г. Байда‑
ков); гл. науч. сотр. лаборатории математического моделирования Ин‑
ститута промышленной экологии УрО РАН д‑р физ.-мат. наук, проф.
А. Н. Вадаксин
    Параллельные вычисления общего назначения на графических процессо­
П18 рах : учебное пособие / К. А. Некрасов, С. И. Поташников, А. С. Боярчен‑
ков, А. Я. Купряжкин. — Екатеринбург : Изд-во Урал. ун-та, 2016. — 104 с.
ISBN 978-5-7996-1722-6
В учебном пособии изложены основные принципы организации высокоско‑
ростных параллельных вычислений на графических процессорах. Рассмотрены
подходы к программированию графических процессоров с использованием шей‑
дерной модели и NVIDIA CUDA. Проанализированы примеры.
Пособие предназначено для проведения практических занятий по програм‑
мированию графических процессоров для магистрантов.
Библиогр.: 22 назв. Рис. 24. Табл. 3. Прил. 1.

ISBN 978-5-7996-1722-6

УДК 004.032.24:004.383.5(075.8)
ББК 32.97я73

© Уральский федеральный
университет, 2016

Введение

Д

ля предсказания характеристик и поведения больших си‑
стем широко используется вычислительное моделирова‑
ние, наиболее принципиальным методом повышения про‑
изводительности которого является распараллеливание вычислений.
До последнего времени наиболее доступными системами для парал‑
лельных расчетов были кластеры персональных компьютеров или
близких к ним по архитектуре машин, в которых вычисления про‑
изводились на центральных процессорах общего назначения (CPU).
Однако такие кластеры достаточно дороги и сложны в эксплуатации.
К тому же архитектура CPU персональных компьютеров не оптими‑
зирована для интенсивных математических вычислений, поскольку
основной задачей таких процессоров является исполнение последо‑
вательных программ со сложным ветвлением.
Во второй половине 1990‑х годов началось быстрое развитие графических процессоров (GPU) — дополнительных вычислительных
устройств для ускоренного исполнения алгоритмов визуализации трех‑
мерных сцен [1–3]. Поскольку трехмерная визуализация допускает
эффективное распараллеливание расчетов, графические процессоры
разрабатывались как поточно-параллельные системы с большим ко‑
личеством вычислительных блоков, конвейерной обработкой данных
и памятью с максимальной пропускной способностью.
Современные графические процессоры выполняют не только стан‑
дартные алгоритмы визуализации, но и сложные пользовательские
программы, что позволяет решать на них задачи общего назначения,
включая физико-математическое моделирование [4–6]. При парал‑
лельных расчетах GPU может обеспечить производительность класте‑
ра из сотен обычных персональных компьютеров. По соотношению
производительности и цены графические процессоры имеют большое
преимущество перед другими вычислительными системами, в том чис‑
ле перед специализированными суперкомпьютерами.
3

1. Структура и возможности
вычислительной системы
с графическим процессором

1.1. Задача компьютерной визуализации трехмерных сцен

В

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