В.В.
Парубец, О.Г. Берестнева, Шаропин К.А.
Национальный
исследовательский Томский политехнический университет, Россия
РАЗРАБОТКА ПРИЛОЖЕНИЙ КОМПЬЮТЕРНОЙ
ГРАФИКИ С ИПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ CUDA*
E-mail: ogb6@yandex.ru
Современные
средства разработки приложений в области трёхмерной графики предоставляют
широкий спектр возможностей для создания фотореалистичных изображений, применяя
различные алгоритмы как построения самого изображения, так и эффектов
пост-обработки.
При
визуализации сложных геометрических сцен с различным набором материалов
объектов и необходимости в короткий срок обрабатывать действия пользователя
графической программы большую роль играют методы, отвечающие за визуализацию и
наложение эффектов. Таким образом, задача разработки программных и
алгоритмических средств расчёта освещения для интерактивных приложений требует
нахождения наиболее оптимальных методов расчёта освещения, применяя как программные, так и аппаратные решения.
Рассматривается математическая
модель построения освещения в базисе сферических функций для трёхмерной сцены.
Предлагается вариант решения проблемы длительного предварительного расчёта
коэффициентов разложения точек сцены по базису с применением технологии nVidia
CUDA.
Центральные процессоры разработаны
для самого широкого спектра задач и ограниченно используют возможности
параллельных вычислений. Увеличение их производительности в основном связано с
увеличением тактовой частоты и размеров кэш-памяти. Программирование на ЦПУ
(центральных процессорных устройствах) для ресурсоёмких научных вычислений
подразумевает тщательное структурирование данных и порядка инструкций для
эффективного использования всех уровней кэш-памяти. Напротив, графические
процессоры изначально спроектированы для параллельной обработки данных (например,
закрашивания массива пикселей), когда обработка отдельных элементов может
производиться независимо. ГПУ (графические процессорные устройства) являются
примером потоковых процессоров, которые используют явный параллелизм по данным
для увеличения скорости вычислений и уменьшения зависимости от задержек доступа
к памяти. За последние 10 лет ГПУ эволюционировали от устройств с фиксированной
функциональностью для ускорения примитивных графических операций до
программируемых процессоров, превосходящих обычные ЦПУ при выполнении
векторизуемых операций.
Преимущества технологии CUDA перед использованием стандартных
графических библиотек OpenGL и DirectX:
·
программирование на широко
известном языке Си с несколькими простыми расширениями;
·
произвольная адресация при
записи в память;
·
доступ к программируемой
разделяемой памяти;
·
значительно меньшие накладные
расходы на взаимодействие ГПУ и ЦПУ, некоторые операции выполняются асинхронно;
·
побитовые операции над целыми
числами, отсутствующие в шейдерной модели SM3.0;
двойная точность операций с
плавающей запятой.
Недостатки:
·
примитивные структуры
данных;
·
нет механизмов
абстракций: средств объектно-ориентированного и функционального
программирования;
·
нет управления
обработкой с ГПУ (в коде ядра нельзя запускать и останавливать ядра,
инициировать обмен данными с ЦПУ);
·
обработка параллельной
записи по одному адресу только для некоторых целочисленных операций.
Авторами было разработано приложение, позволившее оценить как качество
итогового освещения, так и разницу в производительности графических и
центральных процессоров.
Для тестирования использовалась
система на базе центрального процессора 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мин. |