УСКОРЕНИЕ ТРАССИРОВКИ ЛУЧЕЙ НА ОСНОВЕ FPGA

Авторы: Мальчева Раиса Викторовна, Юнис Мухаммед. Перевод: Попова А.Н.
Донецкий национальный технический университет, Украина

Источник: European Scientific Journal February 2014 /SPECIAL/ edition vol.3 ISSN: 1857 – 7881 (Print) e - ISSN 1857- 7431

Анотация:

Анализируется аппаратная реализация алгоритма трассировки лучей. Работает на частоте 90МГц, аппаратная реализация алгоритма трассировки лучей достигает в реальном времени скорости 20-60 кадров в секунду в широком спектре 3D сцен, чтобы поддерживать текстурированние, несколько источников света и несколько уровней отражения или прозрачности. Чтоб изменить эту систему метод межпиксельной интерполяции, основывается на предположении, что смежные пикселы трассировки изображений имеют примерно те же параметры цвета. Основная идея: отследить пикселы с некоторым шагом, в зависимости от требуемого качества, для получения значений не отслеживаемых цветовых компонентов с помощью блока интерполяции; проверить результат, если коэффициент цветовых различий, выше допустимого, выполнить регулирование шага интерполяции. Алгоритмы линии и блока межпиксельной интерполяции для ускорения трассировки лучей разрабатываются и моделируются с помощью интерфейса передачи сообщений для .NET. технологии (кластер ДонНТУ). Исследована производительность модифицированного алгоритма трассировки лучей. Анализ результатов показывает, что алгоритм межпиксельной интерполяции снижает синтез от 12,5% до 15%, в зависимости от шага интерполяции и коэффициента цветовых различий.

Ключевые слова: трассировка лучей, FPGA, пиксель, интерполяция, производительность.

Введение:

Трассировка лучей является одним из многочисленных методов, которые служат для визуализации изображения на компьютере. Трассировка лучей используется в производственной среде для отображения не в реальном времени. Для такого отображение означает, что нет необходимости завершить обработку менее чем за несколько миллисекунд. Трассировка лучей в реальном времени на данный момент является очень активным полем деятельности, поскольку было замечено, что 3D-ускорители нуждаются в большем ускорении. Трассировщик лучей действительно нравится в областях, где качество отражений имеет большое значение. Многие эффекты, которые трудно достигнуть с помощью других методов, очень естественно реализует трассировщик лучей. Отражение, преломление, глубина резкости, высококачественные тени. Конечно это не означает, что это быстро. С другой стороны видеокарты в наши дни генерируют множество изображений, но очень ограниченны при трассировке лучей. Основная специализация алгоритма трассировки лучей – действие выполняется для каждого пикселя на экране, так что это может занять много времени для сложных сцен. Увеличить возможности трассировки лучей можно при резком увеличении времени для расчетов. Мало того, что программа должна найти все пересечения с основными лучами (как в отбрасывании луча), но еще должна также найти все пересечения для каждого вторичного и теневого луча.

Фактически от 75 процентов до более чем 95 процентов времени трассировщика лучей потрачено на такие вычисления [1]. То есть уменьшение числа пикселей отслеживания без изменения конечного изображения является актуальной задачей исследования.

Основной текст:

Анализ алгоритма трассировки лучей показывает, что все большие особенности трассировки лучей могут быть сделаны путем резкого увеличения времени, затраченного на расчеты. Мало того, что программа должна найти все пересечения с основными лучами, но она должна также найти все пересечения для каждой вторичного луча и тени. Качество, в данном случае, стоит не дешево, а становится только дороже, как вы увидите в следующем разделе. В настоящее время новая технология NVIDIA CUDA для ускорения двигателей FPGA может быть применена для реализации алгоритма трассировки лучей.

Системы ускорения NVIDIA

NVIDIA, лидер в вычислениях GPU, сегодня представил механизм трассировки лучей NVIDIA OptiX, часть комплекта механизмов ускорения работы приложений для разработчиков программного обеспечения. Системы ускорения NVIDIA упрощают внедрение полезного, высокой производительности в приложениях, одновременно сокращая время разработки. Механизмы ускорения работы приложений NVIDIA [2] включают:

  • механизм NVIDIA OptiX для трассировки лучей в реальном времени;
  • механизм NVIDIA SceniX для управления 3D данными и сценами;
  • механизм NVIDIA CompleX для масштабирования производительности на нескольких GPUs;
  • NVIDIA PhysX 64-разрядный механизм для гипер-реалистичного физического взаимодействия с окружающей средой в реальном времени.

Как первый в мире интерактивный механизм трассировки лучей, который усилит GPU, механизм NVIDIA OptiX – программируемый конвейер трассировки лучей, позволяющий разработчикам программного обеспечения легко принести новые уровни реализма к их приложениям, используя традиционное программирование C. Благодаря мощности параллельных вычислений NVIDIA Quadro Processors, «движок» OptiX значительно ускоряет трассировку, используемую в широком спектре дисциплин, включая: фотореалистичную визуализацию, акустическое проектирование, оптическое моделирование, расчеты объемных и радиационных исследований. Разработчики приложений используют «движок» OptiX для того, чтобы пересмотреть то, что возможно для дизайнеров, инженеров и исследователей.

Движок ускорения FPGA

Производительность существующих реализаций программного обеспечения по-прежнему сильно ограничена современными процессорами, такие реализации требуют много процессоров для достижения производительности в режиме реального времени. Поэтому в Саарском университете (Германия) разработана структура аппаратной реализации трассировки лучей на FPGA [3]. Работая в частоте 90 МГц, аппаратная реализация алгоритма трассировки лучей достигает уровня в реальном времени 20 - 60 кадров в секунду в широком спектре 3D сцен, поддерживает текстурирование, многократные источники света и многократные уровни отражения или прозрачности. Функция этой системы - повторное использование модуля преобразования для решения задач, которые включают эффективный поиск пересечения лучей с треугольниками. Несмотря на дополнительную поддержку динамических сцен, этот подход уменьшает общую стоимость аппаратной части на 68%. Также для ускорения алгоритма трассировки лучей может использоваться математическое ядро на FPGA, что показывает большую скорость операций, операнды представлены 64-разрядными числами. Ядра включают Xilinx Floating-Point Operator Core. Это ядро предоставляет разработчикам инструменты для выполнения аппаратной обработки данных в формате с плавающей точкой на FPGA. Поддерживает операции: умножение, сложение, вычитание, деление, извлечение квадратного корня, сравнение. Производительность ядра обеспечивается за счет того, что операции проводятся на ядрах FPGA DSP, частота которого составляет 300 МГц. Эта система позволяет генерировать изображения с разрешением 320×240 и 512×480.

Межпиксельная интерполяция

Чтобы увеличить размер изображений, предложен модифицированный алгоритм и система на FPGA с межпиксельной интерполяцией (рисунок 1).

Структура модифицированной системы на основе FPGA

Рисунок 1 – Структура модифицированной системы на основе FPGA

Он основан на предположении, что соседние пиксели отслеживаемых изображения имеют примерно те же (или очень похожие) параметры цвета. Основная идея алгоритма состоит в том, чтобы проследить пиксели на любых шагах (горизонталь и вертикаль) и, применить интерполяцию, чтобы определить компоненты цвета для не отслеживаемых пикселей. Алгоритм трассировки лучей с межпиксельной интерполяцией разработан и смоделирован с использованием Message Passing Interface для .NET. технологии (кластер NeClus, ДонНТУ, рисунок 2).

Конфигурация NeClus

Рисунок 2 – Конфигурация NeClus

NeClus использует действующую систему Scientific Linux 5.4; пакеты Torque PBS и Maui для управлять ресурсами и инструментами для параллельного программирования MPI: openmpi-1.2.4, mpich-ch_p4-gcc-1.2.7, lam-7.1.4. Сцена для тестирования и исследования алгоритма показана на рисунке 3.

Сцена для тестирования алгоритма

Рисунок 3 – Сцена для тестирования алгоритма

Коэффициент различия в цвете используется для оценки изображения и необходимости выполнять корректировку шага интерполяции [4]. Результаты исследований представлены на рисунке 4.

Результаты исследований

Рисунок 4 – Результаты исследований

Результаты показывают, что эффективный коэффициент различия в цвете равен 4, и этап интерполяции – 2 или 3 пикселя.

Вывод:

Анализ результатов показывает, что модифицированный алгоритм трассировки лучей с межпиксельной интерполяцией сокращает время генерации изображения на 12,5-15%. Для того, чтоб выбрать шаг трассировки и интерполяции используется коэффициент различия в цвете. Направлением дальнейших исследований является проверка работоспособности блока интерполяции и увеличение числа процессорных блоков.

Сноски:

  1. Foley, James D. Computer Graphics: Principles and Practice. Reading, Mass.: Addison-Wesley, 1990.
  2. Danny Shapiro. NVIDIA OptiX Engine Joins Groundbreaking Suite of Application Acceleration Engines, SIGGRAPH 2009, NEW ORLEANS-Aug. 4, 2009.
  3. Schmittler Jorg. Realtime Ray Tracing of Dynamic Scenes on an FPGA Chip, Computer Science, Saarland University, Germany, 2004, pp.8.
  4. R.V. Malcheva, M. Younis. Research of effect of step of ray tracing and coefficient of difference in color components on the time of an image generation, Proceedings of Donetsk National technical university, vol. 14(188), Donetsk, 2011, pp. 195-201.