3. Программный комплекс трассировки лучей на процессорах Cell

advertisement
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
"ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ"
Механико-математический факультет
Кафедра системного программирования
Рецензент
ДОПУСТИТЬ К ЗАЩИТЕ
Канд. техн. наук
Зав. кафедрой СП
__________ П.Л. Цытович
__________ Л.Б. Соколинский
“___”___________ 2016 г.
“___”___________ 2016 г.
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
на соискание академической степени бакалавра информационных
технологий по направлению 010400.62 «Информационные технологии»
Разработка программного комплекса
трассировки лучей для вычислительных систем
на базе процессоров Cell
Ученый секретарь
Научный руководитель
кандидат физ.-мат. наук, доцент
_____________ М.Л. Цымблер
__________________ М.Л. Цымблер
“___”___________ 2016 г.
Автор работы
студент группы мм-416
__________________Д.Н. Гордеева
Челябинск-2010
Оглавление
Введение ........................................................................................................................ 3
1. Задача трассировки лучей .................................................................................... 7
1.1. Постановка задачи трассировки лучей......................................................... 7
1.2.
Разработка математической модели ............................................................. 7
2. Программирование для вычислительных систем на базе процессоров Cell... 8
2.1.
Основные особенности архитектуры Cell.................................................... 8
2.2.
Модель программирования для Cell ............................................................. 8
3. Программный комплекс трассировки лучей на процессорах Cell ................... 9
3.1. Алгоритм трассировки лучей для вычислительных систем на базе
процессоров Cell ....................................................................................................... 9
3.2. Комплекс CellRT ............................................................................................ 9
3.3.
Реализация ....................................................................................................... 9
4. Вычислительные эксперименты ........................................................................ 10
4.1.
Цели экспериментов ..................................................................................... 10
4.2.
4.3.
Целевая система............................................................................................ 10
План экспериментов ..................................................................................... 10
4.4.
Анализ полученных результатов ................................................................ 10
Заключение ................................................................................................................. 11
Литература .................................................................................................................. 12
Приложения ................................................................................................................ 14
Введение
АКТУАЛЬНОСТЬ ТЕМЫ
В настоящее время одной из актуальных задач компьютерной графики
является построение изображений высокой степени реалистичности [3]. При
использовании для построения изображений каких-либо библиотек (OpenGL,
DirectX) возможна недостаточная степень реалистичности, поскольку эти
библиотеки предназначены в основном для формирования динамически
изменяющихся сцен, в которых высокая детализация играет второстепенную
роль. Для построения статических изображений одним из лучших является
алгоритм трассировки лучей [7]. Это связано с тем, что данный алгоритм
позволяет учитывать такие сложные эффекты, как отражение и преломление
света, тени, задавать сложные свойства поверхностей.
ЦЕЛИ И ЗАДАЧИ ИССЛЕДОВАНИЯ
Цель данной работы состоит в разработке программного комплекса
трассировки лучей для вычислительных систем на базе процессоров Cell. Для
достижения цели потребовалось решить следующие основные задачи:
1. Изучить существующие последовательные и параллельные алгоритмы
трассировки лучей и выполнить обзор работ по данной тематике.
2. Изучить
особенности
архитектуры
процессора
Cell
и
модели
программирования и разработать параллельную версию алгоритма.
3. Реализовать разработанный алгоритм для вычислительных систем на базе
процессоров Cell и провести вычислительные эксперименты.
СТРУКТУРА И ОБЪЕМ РАБОТЫ
Выпускная квалификационная работа состоит из введения, 4 разделов,
заключения и библиографии. Объем работы составляет 24 страницы, объем
библиографии – 17 наименований.
СОДЕРЖАНИЕ РАБОТЫ
В первом разделе, «Задача трассировки лучей», даны основные
понятия предметной области, описана схема трассировки лучей, а также
приводится описание разработанной математической модели.
Второй раздел, «Программирование для вычислительных систем на
базе
процессоров
Cell»,
содержит
описание
основных
особенностей
архитектуры процессоров Cell, модели передачи сообщений, а также описание
возможной модели программирования.
Третий раздел, «Программный комплекс трассировки лучей на
процессорах Cell», посвящен проектированию и реализации программного
комплекса CellRT на базе IBM Cell BE Software Development Toolkit.
В четвертом разделе, «Вычислительные эксперименты», приведены
результаты
экспериментов,
исследующих
показатели
эффективности
разработанного алгоритма.
В
заключении
суммируются
основные
результаты
работы
и
рассматриваются направления дальнейших исследований в данной области.
ОБЗОР РАБОТ ПО ТЕМАТИКЕ ИССЛЕДОВАНИЯ
В 1971 году Гольдштейн (Goldstein) и Нагель (Nagel) впервые реализовали
алгоритм трассировки лучей с использованием логических операций для
формирования
трехмерных
изображений
[10].
Первоначально
алгоритм
использовался как средство удаления невидимых поверхностей, но позднее был
расширен так, чтобы учитывались эффекты отбрасывания теней, отражения и
пропускания света [9]. Точная имитация этих эффектов требует прослеживать
каждый луч от наблюдателя до пересечения с непрозрачной плоскостью, что
приводит к значительным временным затратам. Поэтому дальнейшее развитие
алгоритма
идет
в
сторону
увеличения
скорости
расчетов.
Объекты
объединяются в группы, а группы, в свою очередь, в группы более высокого
уровня иерархии [16]. Таким образом, если луч пересекает какую-либо группу,
то он пересекает все объекты, включенные в эту группу. Подобная техника в
несколько раз быстрее, чем описанные ранее алгоритмы. Кроме того, можно
отображать сцены, состоящие из сотен тысяч объектов [11, 14, 15].
Параллельная обработка изображений дает возможность еще более
существенно сократить время работы алгоритма [8]. Параллельный алгоритм
позволяет обрабатывать большие модели, но ему присущи дисбалансы
нагрузки,
может
привести
к
серьезной
неэффективности.
Чтобы
компенсировать неравномерное распределение нагрузки, задачи могут быть
распределены на процессоры, которые в меньшей степени заняты. В работе [17]
представлен
алгоритм,
который
обрабатывает
задачи
и
данные
по
согласованности между лучами.
Трассировка лучей является одним из наиболее затратных с точки зрения
процессорного времени методов [1]. Поэтому обычно данный алгоритм редко
используется в системах, требующих быстрой генерации изображений. Однако
в последнее время появился процессор Larrabee [4] компании Intel, который
обеспечивает
необходимую
производительность
для
построения
3D
изображений методом трассировки лучей. Кроме этого существует технология
CUDA компании NVIDIA, которая позволяет реализовывать на языке Си
алгоритмы для графических процессоров, в том числе, алгоритм трассировки
лучей [6].
В настоящее время наибольшую известность получили две реализации
алгоритма для процессоров Cell. Одна из них – разработка компании IBM Ray
Tracer for Cell Broadband Engine™ демонстрирует основные возможности
процессора Cell BE по созданию высококачественных изображений сложных
сцен. Система была представлена на таких тематических конференциях, как
SuperComputing'06, Game Developer's Conference'07 и SIGGRAPH '07 [13]
Данная реализация распространяется под коммерческой лицензией.
1.
Задача трассировки лучей
1.1. Постановка задачи трассировки лучей
1.2. Разработка математической модели
1.2.1. Моделирование взаимодействия луча с плоскостью
1.2.2. Моделирование взаимодействия луча со сферой
2. Программирование для вычислительных систем на базе
процессоров Cell
2.1. Основные особенности архитектуры Cell
2.1.1. PPE и SPE
2.1.2. Передача сообщений между узлами
2.1.3. Векторные операции
2.2. Модель программирования для Cell
3. Программный комплекс трассировки лучей на процессорах
Cell
3.1. Алгоритм трассировки лучей для вычислительных систем на базе
процессоров Cell
3.1.1. Описание алгоритма
3.1.2. Входные данные (параметры теста), выходные данные
3.2. Комплекс CellRT
3.2.1. Варианты использования
3.2.2. Диаграмма классов
3.2.3. Диаграммы действий
3.3. Реализация
3.3.1. Модульная структура
4.
Вычислительные эксперименты
4.1. Цели экспериментов
4.2. Целевая система
4.3. План экспериментов
4.4. Анализ полученных результатов
Заключение
Основные результаты
Апробации
Гранты
Дальнейшие направления исследований
Литература
1. Барладян Б.Х., Волобой А.Г., Галактионов В.А., Шапиро Л.З. Алгоритм
двухуровневой трассировки лучей и его развитие в оптических элементах. –
М., 2008 (Препр ИПМ им. М.В. Келдыша РАН; № 46),
2. Интерактивная трассировка лучей с использованием SIMD инструкций. Дата
обновления: 09.06.2008. URL: http://software.intel.com/ru-ru/articles/interactiveray-tracing/ (дата обращения 10.03.2009)
3. Метод параллельной трассировки лучей // [домашняя страница языка MC#] /
Переяславль, 05.04.2005.
URL: http://u.pereslavl.ru/~vadim/MCSharp/docs/ray.tracing/parallel.ray.tracing.p
hp (дата обращения 12.03.2009)
4. Описание процессора Larrabee. Москва, 2008.
URL: http://parallel.ru/russia/MSU-Intel/larrabee.html (дата обращения
26.04.2009)
5. Процессор Cell. М. 2008. URL: http://www.parallel.ru/computers/cell.html (дата
обращения 26.04.2009)
6. Технология NVIDIA CUDA. 2009.
URL: http://www.nvidia.ru/object/cuda_learn_ru.html (дата обращения 01.06.09)
7. Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика,
реалистические изображения. М.: «ДИАЛОГ-МИФИ», 1995. 288 с.
8. Badouel D., Bouatouch K., Prio, T. Distributing Data and Control for Ray Tracing
in Parallel // IEEE Comput. Graph. Appl. 14, 4 (Jul. 1994), 69-77.
9. Cook R. L., Porter T., and Carpenter L. Distributed ray tracing // SIGGRAPH
Comput. Graph. 18, 3 (Jul. 1984), 137-145.
10. Goldstein R., Nagel R. 3-D visual simulation // Simulation, vol. 16, no. 1 (January
1971), pp. 25-31.
11. Glassner A. S. Spacetime Ray Tracing for Animation // IEEE Comput. Graph.
Appl. 8, 2 (Mar. 1988), 60-70.
12. Хофсти П. Архитектура процессора Cell/ Нью-Йорк, 2005. http://www.tplatforms.ru/ru/cell/about_cell.php (дата обращения 31.05.2009)
13. Interactive Ray Tracer for Cell Broadband Engine. 29.08.07
URL: http://www.alphaworks.ibm.com/tech/irt (дата обращения 28.05.2009)
14. Kay D. S., Greenberg, D. Transparency for computer synthesized images // In
Proceedings of the 6th Annual Conference on Computer Graphics and interactive
Techniques (Chicago, Illinois, United States, August 08 - 10, 1979). SIGGRAPH
'79. ACM, New York, NY, 158-164.
15. Kay T. L., Kajiya J. T. Ray tracing complex scenes // SIGGRAPH Comput.
Graph. 20, 4 (Aug. 1986), 269-278.
16. Whitted T. An improved illumination model for shaded display // Commun. ACM
23, 6 (Jun. 1980), 343-349.
17. Wald I., Slusallek P., Benthin C., Wagner M. Interactive Distributed Ray Tracing
of Highly Complex Models // InProceedings of the 12th Eurographics Workshop
on Rendering Techniques (June 25 - 27, 2001). S. J. Gortler and K. Myszkowski,
Eds. Springer-Verlag, London, 277-288.
Приложения
Download