Научная статья на тему 'Применение технологии параллельных вычислений для оптимизации модели глобального освещения'

Применение технологии параллельных вычислений для оптимизации модели глобального освещения Текст научной статьи по специальности «Математика»

CC BY
183
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
обобщённая двулучевая функция распределения света / NVidia CUDA / Bidirectional reflectance distribution function

Аннотация научной статьи по математике, автор научной работы — Парубец Валерий Валерьевич, Берестнева Ольга Григорьевна

Рассматривается математическая модель построения освещения в базисе сферических функций для трёхмерной сцены. Предлагается вариант распараллеленного предварительного расчёта коэффициентов разложения точек сцены по базису с применением технологии nVidia CUDA. Приводится сравнение производительности при счёте на центральных и графических процессорах

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Парубец Валерий Валерьевич, Берестнева Ольга Григорьевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A mathematical model of illumination built in the basis of spherical harmonics for three-dimensional scene is covered. It proposes parallelized version of the preliminary calculation of expansion coefficients of the basis for points of the scene using nVidia CUDA technology. A performance comparison between central and graphics processors is given.

Текст научной работы на тему «Применение технологии параллельных вычислений для оптимизации модели глобального освещения»

ск°=[ N * -Бист! )2 )2,

где - оцененный отсчет ПФ; Зист! - отсчет истинной ПФ; N - число отсчетов ПФ.

Результаты моделирования приведены на рис. 5.

Как следует из рис. 5, использование априорных сведений о количестве лучей в канале позволяет повысить точность оценки передаточной функции канала распространения радиоволн. Модификация методов может быть применена для решения задачи эквалайзирования в системах беспроводного широкополосного доступа, вычислительные зат-

раты на ее реализацию минимальны, а выигрыш от применения существенный.

Выводы

Показано, что модификация методов оценки импульсной характеристики канала распространения радиоволн ее прореживанием от шумовых отсчетов (оставляют 6-20 наиболее вероятных отсчетов максимальной амплитуды) приводит к уменьшению ошибки оценки передаточной функции до 3 раз при отношении сигнал/шум 3 дБ.

Работа выполнена при поддержке Министерства образования и науки РФ в соответствии с договором 13.G25.31.0011 от 07.09.2010в порядке реализации Постановления №218 Правительства РФ.

СПИСОК ЛИТЕРАТУРЫ

1. Айфичер Э., Джервис Б. Цифровая обработка сигналов: практический подход. 2-е изд. Пер с англ. - М.: Издат. дом «Вильямс», 2004. - 992 с.

2. Summary of delay profiles for MBWA. 2011. URL: http://www.ieee802.org/20/Contribs/C802.20-03-77.pdf (дата обращения: 08.05.2011).

3. Channel Models: A Tutorial. 2011. URL: http://www.cse.wustl.edu/ ~jain/cse574-08/ftp/channel_model_tutorial.pdf (дата обращения: 08.05.2011).

4. Тисленко В.И. Статистическая теория радиотехнических систем. - Томск: Том. гос. ун-т систем управления и радиоэлектроники, 2003. - 153 с.

5. Сергиенко А.Б. Цифровая обработка сигналов. - СПб.: Питер, 2005. - 604 с.

6. Уидроу Б., Стирнз С. Адаптивная обработка сигналов. - М.: Радио и связь, 1989. - 439 с.

7. Оппенгейм Э. Применение цифровой обработки сигналов. -М.: Мир, 1980. - 550 с.

8. Тихонов В.И. Оптимальный прием сигналов. - М.: Радио и связь, 1983. - 320 с.

9. Тисленко В.И., Савин А.А. Синтез квазиоптимального фильтра для оценки временного положения импульсного сигнала известной формы при многолучевом распространении радиоволн // Известия вузов. Радиоэлектроника. - 2006. - Т. 1. -№ 6. - С. 56-62.

Поступила 10.05.2011 г.

УДК 519.688;004.92

ПРИМЕНЕНИЕ ТЕХНОЛОГИИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ ДЛЯ ОПТИМИЗАЦИИ МОДЕЛИ ГЛОБАЛЬНОГО ОСВЕЩЕНИЯ

В.В. Парубец, О.Г. Берестнева

Томский политехнический университет E-mail: VParubets.mail@gmail.com

Рассматривается математическая модель построения освещения в базисе сферических функций для трёхмерной сцены. Предлагается вариант распараллеленного предварительного расчёта коэффициентов разложения точек сцены по базису с применением технологии nVidia CUDA. Приводится сравнение производительности при счёте на центральных и графических процессорах.

Ключевые слова:

Обобщённая двулучевая функция распределения света, nVidia CUDA.

Key words:

Bidirectional reflectance distribution function, nVidia CUDA.

Введение

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

рических гармоник для каждой точки трёхмерной сцены. Такая задача может быть распараллелена по данным. В описанном случае для наибольшей производительности решено применить технологию, позволяющую получить доступ к вычислительным ресурсам графических процессоров -СШЛ от компании пУ1&а.

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

Математическая модель

Данная модель представляет собой реализацию обобщённой двулучевой функции распределения света (ОД ФРС) [1-3]. Для каждого класса материалов, присутствующих в сцене рассчитываются две функции: двулучевая функция отражённого света (ДФОС) и двулучевая функция рассеянного света (ДФРС), а материал в свою очередь представляется в виде комбинации идеального диффузного и идеального зеркального материалов. ОДФРС так же представляется в виде комбинации ДФОС и ДФРС.

Двулучевая функция отражённого света

ДФОС определяется как отношение количества энергии (света), отраженной в направлении о0, к количеству энергии, попавшей на поверхность с направления о. Пусть количество энергии, отраженной в направлении о0, равно L0, а количество энергии, пришедшей с направления о, равно E. Тогда ДФОС равна:

ДФОСК, о,) =

Е,

где ю0 и ®i - дифференциальные телесные углы, которые можно однозначно задать двумя углами в сферической системе координат (азимутом и зенитом).

Приближения ДФОС

ДФОС - функция, зависящая от двух дифференциальных телесных углов. Её можно представить как отображение пространства точек на сфере в пространство функций на сфере [1, 2]:

ДФОС:о,. ^ f.

Для идеальной зеркальной поверхности ДФОС будет являться обратимой изотропной симметричной вокруг направления Oi функцией, то есть:

ДФОС(о,., ок) = ДФОС( Rnok, Rnm,),

где Rn - оператор поворота сферы вокруг центра через нормаль к поверхности на п.

Для идеальной зеркальной поверхности ДФОС будет равна 1, если направление о t есть ни что иное, как отражение направления ®t от нормали к поверхности, а в остальных случаях - 0.

Таким образом, ДФОС можно представить в следующем виде:

ДФОС(о,, Ok) = (Ratf)(oi),

где rnk - направление отражения от нормали к поверхности; R^t - оператор поворота на соответствующие направлению rnk азимутальный и зенитный

углы; f- функция вида f (в, р) =

1, р = в = 0 0, othervise ’

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

Элементы подматриц данной матрицы вычисляются как [4]:

2п п

Я* (а, в) = II(в + а,(р + Р)^ (в,ф)вш(в)ёвЖр,

0 0

что соответствует повороту базиса на углы а и р.

Замечание: индексация в подматрицах ведётся с середины подматрицы (т. е. если подматрица, например, 3x3, то индексация будет в интервале [-1; 1]).

При р=0 вычисление подматриц поворота сильно упрощается:

сов(/ -а), ' = г

Я* (а) = <{ вш(|/ - а), ' = -г.

0, |/'| * И

Оператор поворота факторизуется:

Я, (а, р) = Ях |-|)Яг (р)Г ^Яг (а).

Так как рассматриваемая функция симметрична относительно оси Х, то первый оператор поворота тождественен:

Г(а, в) = я; (в)ЯХ |2JГ (а).

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

Двулучевая функция рассеянного света

ДФРС определяется как отношение количества энергии (света), рассеянной в направлении ю0, к количеству энергии, попавшей на поверхность со всех направлений видимой полусферы. Пусть количество энергии, рассеянной в направлении ю0, равно Ь0, тогда будет рассматриваться равномерное распределение рассеянного света: ДФРС является независимой от направления взгляда (ю0) [1, 2]:

ДФРС(о,) =

E'

раз-

ложенная по базисным функциям.

где Ь - количество энергии, рассеянной одинаково во всех направлениях. Включив в ДФРС функцию видимости, мы внесем в неё учёт самозатенения:

ДФРС(ш,.) =,

где ю0 - принимает значение 0 или 1, в зависимости от того, перекрывается поток света приходящий в данном направлении геометрией объекта

или нет. Таким образом, с помощью ДФРС можно представить любую точку объекта без видозависимого освещения (бликов и т. д.).

Приближение ДФРС

ДФРС является ни чем иным, как скалярным полем на сфере (так как сої можно однозначно представить в виде точки со значением на единичной сфере).

В качестве функционального базиса на сфере подходит базис присоединённых сферических функций действительного переменного, образующих на сфере полный ортонормированный базис функций [1-3]:

у? (0.ф) =

Лк? ст(пщ>)р (ос8(0)), т > 0

Лк? %т(-тір)Ц-т (сов(0)), т < 0,

к Р, °(соз(0)), т = 0

(21 +1)(, - т)

4п (I + |т |)!

- коэффициент норми-

X /х(тт (*)

------------+ 0

4п ||П||

и

J

где к - коэффициент диффузного отражения (к<1); I - коэффициент полного отражения.

Диффузная составляющая

т т

(л )1с(1 ) •

Отражённая составляющая

X с

соз(п)

X

С( Л ) С( 5 )

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

где

- функция видимости, вычисляемая

ровки; Рт(х) - присоединённый многочлен Лежандра.

ДФРС представляется в данном базисе в виде:

п I

/х(в,9) -XX (в,9),

I =0 т=-1

где коэффициенты определяются как:

ст = |^ (^ (^.

Так как ДФРС задана численно, и вычисление функции видимости для каждого направления для многих сцен является задачей трудоёмкой в плане вычислений, то встаёт вопрос о том, как наиболее точно вычислить коэффициенты, посчитав при этом как можно меньше значений ДФРС. Для этих целей выбран метод Монте-Карло. Он имеет линейную сходимость вне зависимости от размерности интеграла:

где s - точка на единичной сфере.

Множество определим следующим соотношением:

0 = {а, = - X),2лу.)| %,у. е я(0,1)}.

Таким образом обеспечивается равномерное распределение направлений в полном телесном угле.

Для каждого направления заранее рассчитываются значения базисных функций. После чего идёт проекция ДФРС каждой вершины на заранее выбранное количество базисных функций.

Визуализация результата

Яркость каждой точки объекта вычисляется как [2, 3]:

Ь = кЬв + (I - к)Ь5,

сов(п)

для расчёта самозатенения; п - угол между направлением а, и нормалью к поверхности.

Преимущества и недостатки метода

Преимущества:

• Хорошо адаптирован для расчёта глобального освещения или освещения от неточечных источников.

• Исключены ошибки, связанные с поворотом источников света вследствие выбранного базиса на сфере.

• Позволяет полностью перевести расчёт освещения на процессор видеокарты.

Недостатки:

• Необходимость выполнения предварительного расчёта коэффициентов разложения ДФРС и ДФОС для каждой вершины сцены.

• Метод слабо применим только для динамичной геометрии.

• Возможно возникновение неточностей в местах с малой плотностью геометрии и около объектов, отбрасывающих тени, - артефакты освещения.

Применение технологии nVidia CUDA для ускорения предварительного расчёта

Центральные процессоры разработаны для самого широкого спектра задач и ограниченно используют возможности параллельных вычислений. Увеличение их производительности в основном связано с увеличением тактовой частоты и размеров кэш-памяти. Программирование на ЦПУ (центральных процессорных устройствах) для ресурсоёмких научных вычислений подразумевает тщательное структурирование данных и порядка инструкций для эффективного использования всех уровней кэш-памяти [5, 6]. Напротив, графические процессоры изначально спроектированы для параллельной обработки данных (например, закрашивания массива пикселей), когда обработка отдельных элементов может производиться независимо. ГПУ (графические процессорные устройства) являются примером потоковых процессоров, которые используют явный параллелизм по данным для увеличения скорости вычислений и уменьшения зависимости от задержек доступа к памяти. За последние 10 лет ГПУ эволюционировали

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

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

nVidia CUDA - это технология параллельных вычислений, позволяющая разрабатывать программы для ГПУ на стандартном языке программирования C с несколькими расширениями, причём производительность этих программ хорошо масштабируется числом ядер. Она разработана компанией nVidia и в настоящий момент работает только с её ГПУ, начиная с поколения G8x.

Преимущества технологии CUDA перед использованием стандартных графических библиотек OpenGL и DirectX:

• программирование на широко известном языке C с несколькими простыми расширениями;

• произвольная адресация при записи в память;

• доступ к программируемой разделяемой памяти;

• значительно меньшие накладные расходы на взаимодействие ГПУ и ЦПУ, некоторые операции выполняются асинхронно;

• побитовые операции над целыми числами, отсутствующие в шейдерной модели SM3.0;

• двойная точность операций с плавающей запятой.

Недостатки:

• примитивные структуры данных;

Таблица. Сравнительные результаты визуализации

• нет механизмов абстракций: средств объектноориентированного и функционального программирования;

• нет управления обработкой с ГПУ (в коде ядра нельзя запускать и останавливать ядра, инициировать обмен данными с ЦПУ);

• обработка параллельной записи по одному адресу только для некоторых целочисленных операций;

• отсутствие поддержки рекурсивных функций.

Принцип параллельной обработки в данной работе

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

Результаты

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

Для тестирования использовалась система на базе центрального процессора AMD Athlon64 X2 mobile, 2 Гб оперативной памяти и видеокартой nVidia GeForce 8400GS mobile с памятью, расширяемой до 384 Мб.

В качестве тестовой сцены применялась модель помещения с мебелью, состоящая из примерно 20 тыс. полигонов. Сравнительные результаты визуализации приведены в таблице.

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

Размер базиса 32 48 64 128 256

Скорость визуализации (кадры/с) 18,5 18,5 18,5 18,5 18,5

Ступенчатость краёв тени Резкая Заметная Заметная Малозаметная Незаметная

Равномерность текстуры тени Тень закрашена неравномерно Тень закрашена равномерно, но ненасыщенно Тень закрашена равномерно, но ненасыщенно Тень закрашена равномерно Тень закрашена равномерно

Наличие артефактов Повсеместно во всей сцене Повсеместно во всей сцене Только в местах со сложной геометрией Только в местах со сложной геометрией Только в местах со сложной геометрией

Время счёта на ЦПУ 38 с 62 с 5 мин 42 с 35 мин 12 с 4 ч 20 мин

Время счёта на ГПУ 42 с 55 с 2 мин 15 с 15 мин 6 с 2 ч 18 мин

за, т. к. несмотря на привычный язык программирования ГПУ, разработка приложений для СШЛ содержит массу технических тонкостей, особенно при работе с памятью. Невнимательное отношение ко всем деталям может привести к тому, что приложение на ГПУ будет работать значительно медленнее, чем на ЦПУ

Немаловажным моментом является то, что размер базиса не влияет скорость итоговой визуализации.

СПИСОК ЛИТЕРАТУРЫ

1. Cohen M., Wallace J. Radiosity and Realistic Image Synthesis. -Cambridge: Academic Press Professional, 1993. - P. 8-10, 89, 190-194.

2. Каплаян А.А. Технология предрасчёта освещения модели для получения мягких теней от динамических неточечных источников света // Gamedev.ru. 2005. URL: http://kri-conf.ru/2005/rec/KRI_2005_Programming_03apr_gal12_01_An-ton_Kaplanyan_Akella.ppt (дата обращения: 25.06.2011).

3. Sloan P.-P. Stupid Spherical Harmonics // Game Developers Conference 2008, February 2008 (updated 2/10/2010). URL: http://www.ppsloan.org/publications/StupidSH36.pdf (Дата обращения 25.06.2011).

4. Каплаян А.А. Advances of Realtime Rendering // SIGGRAPH 2010. - Лос-Анджелес, 2010. URL: http://advances.realtimeren-

Выводы

1. Построена параллельная реализация расчёта освещения в базисе сферических функций.

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

3. Произведено сравнение быстродействия центральных и графических процессоров в задаче потоковых вычислений.

dering.com/s2010/Kaplanyan-CryEngine3 %28SIGGRAPH% 202010 %20Advanced%20RealTime%20Rendering%20Cour-se%29.pdf (дата обращения: 25.06.2011).

5. Боярченков А.С., Поташников С.И. Использование графических процессоров и технологии США для задач молекулярной динамики // Вычислительные методы и программирование. Т. 10. 2009. ТОЬ: http://num-meth.srcc.msu.su/zhur-nal/tom_2009/pdf/v10r102.pdf (дата обращения: 25.06.2011).

6. Евстигнеев Н.М. Интегрирование уравнения Пуассона с использованием графического процессора технологии США // Вычислительные методы и программирование. - 2009. - Т. 10. ШЬ: http://num-meth.srcc.msu.su/zhurnal/tom_2009/pdf/v10r128.pdf (дата обращения: 25.06.2011).

Поступила 01.09.2011 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.