Симилетов Александр Сергеевич elmm @ ukr.net
|
|
В ы п у с к н а я
р а б о т а
м а г и с т р а
|
|
Автореферат выпускной работы магистра по теме: «Исследование структур трёхмерных акселераторов, использующих FPGA технологии»
Руководитель: Зинченко Юрий Евгеньевич
Обоснование темы и её актуальность
Технологии трёхмерной графики уже на протяжении ряда лет перешли из разряд дорогих и высокотехнологичных вещей в разряд общедоступных технологий. С каждым годом они проникают во всё большее число областей и устройств. Это стало возможным благодаря появлению массовых вариантов ускорителей трёх мерной графики, так называемых 3d акселераторов. Производители и разработчики постоянно стремятся снизить себестоимость устройств, уменьшить стоимость и время их разработки. Сделать их более универсальными, внедрить их в новые области использования, например, такие как мобильные вычисления. Многим этим требованиям удовлетворяет относительно молодая, но бурно развивающаяся технология микросхем с перепрограммируемой логикой (FPGA - field programmable gate array). Быстро растущие возможности FPGA технологии начинают привлекать всё больше внимания для решения данных задач. Появляется всё больше и больше проектов, которые пытаются использовать FPGA технологии тем или иным способом для ускорения задач визуализации трёхмерного пространства. Как и сами задачи, так и способы их решения весьма не однородны. К тому же FPGA технологии накладывают свои, зачастую весьма жестокие, рамки на возможности проектов. В связи с этим становится весьма актуальной задача исследования подходов в реализации алгоритмов трёх мерной графики с использованием FPGA технологий, выявлении общих недостатков и поиска наиболее эффективных путей, адаптации имеющихся алгоритмов и решений для новой технологии, разработка новых алгоритмов, способных использовать по максимуму все возможности FPGA технологии, а так же обойти существующие на данный момент недостатки данной технологии.
Рисунок 1. Пример трёхмерной анимации.
Обзор состояния разработок и исследований по теме
На данный момент в этой области, не было замечено ни каких попыток систематизировать имеющиеся данные, выработать общий подход в разработке устройств ускорения визуализации трёхмерных объектов с использованием FPGA технологий. Однако имеется ряд проектов, которые реализовали или пытаются реализовать устройства данного класса с использованием FPGA технологий.
Один из проектов Manticore - представляет из себя попытку реализовать классический 3d акселератор оперирующий многоугольниками, для представления трёх мерных данных. Разработанное устройство имеет на борту блок преобразований треугольников, согласно заданным матрица, блок заливки треугольника, интерфейс для подключения SDRAM памяти и VGA контролер. Данная разработка была протестирована с использованием платы Neos и показала свою работоспособность. Однако какой-либо практической пользы данная разработка не несёт.
Более интересным и сложным является другой проект - Vizard II. Это устройство ускоряющее процесс визуализации трёх мерных данных, представленных в виде вокселей. Данная задача весьма востребована в такой области как медицина, где необходимо визуализировать результаты трёхмерного сканирования (например томограммы). Структура устройства приведена на рисунке 2. На рисунке 3 изображена структура ядра системы Vizard II, которое выполнено на микросхеме семейства Virtex.
Рисунок 2. Структура системы Vizard II.
Рисунок 3. Структура ядра системы Vizard II.
Данное устройство является уже вторым поколением акселераторов такого типа. В отличии от предыдущей версии, в Vizard II удалось разместить всё ядро целиком на одной FPGA микросхеме. Однако разработчиком не удалось реализовать все задуманные идеи. Например, не возможно перепрограммировать микросхему частично, изменив только определённую её область. Можно надеяться что в будущем разработчики FPGA микросхем, предоставят такую возможность, что ещё больше увеличит возможности использования FPGA технологий в системах визуализации.
Ещё одним проектом, использующим FPGA технологии при визуализации трёхмерных объектов является "Sepia". В этой системе визуализация изображения производится на кластере машин, а полученный с каждого хоста кластера данные обьединяются при помощи специализированного устройства, центральный компонент которого выполнен по FPGA технологии. Такой подход позволил разработчикам ускорить процесс разработки как самого устройства, так и соответствующего программного обеспечения. Разделит и сделать оба этих процесса не зависимыми. Позволил вносить изменения в аппаратное обеспечение, не затрагивая работу программного обеспечения. Структура системы "Sepia" изображена на рисунке 4.
Рисунок 3. Структура системы Sepia.
Перечень не решённых вопросов цель и задачи работы
Анализируя приведённые выше примеры, можно прийти к выводу, что мы как раз находимся в той точке, когда раннее весьма скромные возможности FPGA технологии дорастают до высоких запросов задачи визуализации трёхмерных сцен. Микросхемы с перепрограммируемой логикой имеют ряд не сравненных преимуществ, по сравнению с заказными и при этом потихоньку по своим возможностям приближаются к последним. Появляются специализированные FPGA микросхемы, имеющие блоки, заточенные под решение задач из конкретных предметных областей, например для ускорения задач визуализации. Всё это в совокупности с быстрым и стремительным развитием самой предметной области визуализации трёхмерной информации, заставляет по-новому взглянуть на подходы в разработке устройств акселерации трёхмерной графики. Программируемость микросхем вносит новые элементы в процесс разработки. Появляется возможность заимствовать различные подходы из процесса раннее являвшегося лишь смежным, параллельным разработке устройства - из процесса написания программного обеспечения. Можно стандартизировать не только разъемы, и протоколы. Можно было бы разработать стандартные интерфейсы блоков, составляющих устройство, а затем при создании использовать реализацию блока, которая наиболее удовлетворяет заданным условиям. Это подняло бы возможность повторного использования кода на ещё более высокий уровень, позволило бы сократить время и стоимость разработок, уйти от уровня библиотек на более высокий уровень абстракции - уровень интерфейсов.
Также не является востребованной в полной мере возможность перепрограммирования микросхемы во время работы устройства. Можно было бы разработать систему у которой ядро подстраивается под решаемую в данный момент задачу. На данный момент технологии FPGA не позволяют в полной мере использовать это, например отсутствует возможность частичного перепрограммирование, самоперепрограммирования, на пример для реализации так называемых шейдеров - алгоритмов обработки вершин и пикеслей, которые загружаются и выполняются ядром акселератора. Такой подход позволил бы не создавать ядро в виде процессора, заточенного под выполнение определённого класса операций, а загружать сразу аппаратную реализацию алгоритма, что позволило бы получить ещё больший выигрыш в скорости, без потери необходимой гибкости.
Научная новизна результатов работы
В работе будет выполнен анализ существующих подходов в создании трёх мерных ускорителей. Будет совершена попытка разработать, наиболее универсальную и оптимальную структуру акселератора, учитывающую все особенности FPGA технологии. Данная структура будет проверена как логически, так и на практике, с учётом возможностей современных FPGA микросхем. Для практической проверки будет реализовано ряд наиболее важных блоков трёхмерного акселератора. В качестве практического применения данной реализации, видится использование этих блоков для построения устройства. Будет выдвинуто ряд идей, о новых способах использования будущих возможностей FPGA технологий для целей визуализации трёхмерной информации. Будут предложены пути развития FPGA технологии, которые будут наиболее выгодны для решения задач визуализации трёхмерной графики.
Практическая ценность работы
Так как для проверки эффективности разработанной структуры будут разработаны, согласно этой структуре, основные узлы трёхмерного ускорителя, то можно на основе этих узлов создать устройство ускорения трёхмерной графики. Реализовав такое устройство с минимальными аппаратным затратами и максимальной модульностью, можно позиционировать такое устройство в молодую и развивающуюся сферу мобильных графических вычисления. Такое устройство могло бы использоваться в мобильных телефонах, PDA и других устройствах, где размер компонентов критичен, но есть необходимость в ускорении трёхмерной графики. Модульная архитектура позволила бы сочетать ядро устройства с оборудованием различных производителей, а также гибко изменять сложность и функциональность устройства в зависимости от доступных ресурсов и класса решаемых задач.
Основные материалы работы
Предполагается что разработанная структура будет отличаться высокой модульностью и гибкостью в настройке. Она будет состоять из набора базовых блоков, из которых потом можно будет собирать систему, отвечающую необходимым требованиям. Часть блоков к примеру может эмулироваться центральным процессором, если для их реализации не хватает аппаратных возможностей. Пример таких блоков смотрите на рисунке 5.
Рисунок 5. Пример основных блоков трёхмерного акселератора.
Например наиболее востребованным блоком является блок растерезации, а функции преобразования вершин может выполнять центральный процессор. Предполагается разработать эту систему с использованием языка описания аппаратуры VHDL. После отладки системы в эмуляторе может быть проведена её проверка на какой либо отладочной плате, типа Neos др. Для этого необходимо будет разработать ряд дополнительных блоков, позволяющих отобразить каким либо способом визуализированную информацию. Например блок VGA контролера. Также понадобятся дополнительные блоки, организующие интерфейс с памятью.
Вывод
Так как FPGA технологии развиваются на сегодняшний день быстрыми темпами, и по многим параметрам догоняют заказные микросхемы, то они становятся всё более привлекательной альтернативой последних. С ростом производительности микросхем появилась возможность реализовывать на них сложные, трудоёмкие алгоритмы, такие как алгоритмы визуализации трёх мерных данных, которые всё шире используются в науке и технике. Подход к разработке и реализации такого сложного устройства как трёхмерный акселератор, с использованием FPGA и других отличных технологий разнится в большой степени. Для максимального использования возможностей, представляемых FPGA технологией, требуется разработать аппаратные структуры, учитывающие все особенности микросхем с программируемой логикой.
Список литературы
«Adding 3D Graphics Support to PLX.» Xiao Yang and Ruby Lee. Department of Electrical Engineering, Princeton University. {xiaoyang, rblee}@princeton.edu.
«Four-way VLIW Geometry Processor for 3D Graphics Applications.» FUJITSU Sci. Tech. J.,36,1,pp.39-47(June 2000).
«VHDL для проектирования вычислительных устройств» Сергиенко А. М. К.: ЧП «Корнейчук», ООО «ТИД «ДС», 2003.
«Огранизация ЭВМ» К. Хамахер, З. Вранешич, С. Заки. К.: СПб.: Питер; Киев: Издательская группа BHV, 2003.
|
|