• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Фреймворк на основе Vulkan API для ускорения вычислений с использованием GPU

ФИО студента: Валиев Дамир Галимович

Руководитель: Иванова Елена Михайловна

Кампус/факультет: Московский институт электроники и математики им. А.Н. Тихонова

Программа: Информатика и вычислительная техника (Бакалавриат)

Оценка: 10

Год защиты: 2020

Целью данной работы является создание фреймворка, который облегчит разработку высокопроизводительных приложений, использующих видеоустройство для аппаратного ускорения. Фреймворк основан на языке C++ и кроссплатформенном программном интерфейсе Vulkan API, позволяющем использовать графический процессор для 3D графики и вычислений c низкими накладными расходами. Для понимания принципов работы с GPU была изучена архитектура графических процессоров и спецификация Vulkan API. Для определения актуальности разработки проведён анализ существующих программных решений для аппаратного ускорения, а также тщательный выбор и подготовка программных средств. Сформирована структура фреймворка - набор составляющих модулей и библиотек программной платформы. Выполнена разработка алгоритма создания логического устройства и аллокатора памяти, вычислительного модуля, в который входят реализации параллельной работы с буферами и изображениями, конвейерами и шейдерами, привязкой ресурсов к шейдерам, методы параллельного запуска команд, записи и чтения ресурсов, синхронизации запущенных процессов. Для работы с фреймворком был разработан интерфейс - спецификация типов данных и функций. Созданный интерфейс позволяет применять различные опции при работе программы в реальном времени. Помимо этого, была настроена среда для лёгкой конфигурации программной платформы перед компиляцией. Кроме библиотек, необходимых для работы фреймворка, также разработаны дополнительные подключаемые библиотеки для упрощения разработки целевых кроссплатформенных приложений. Для проверки и демонстрации структуры фреймворка были разработаны примеры, показывающие принцип работы с программной платформой. В программах демонстрируются методы генерации процедурных данных и модификации изображений с использование шейдерных программ. Также в примерах продемонстрирован способ вывода изображения на экран при помощи графического модуля. Вследствие разработки демонстрационных программ была сформирована высокопроизводительная библиотека с алгоритмами хеширования, процедурных текстур и градиентных шумов на языке С++ с использованием SIMD инструкций, а также копия этой библиотеки на языке шейдеров GLSL. Поскольку тестирование программного продукта, использующего GPU, несёт большие трудности, связанные с принципом его работы, для решения этой проблемы были разработаны методы тестирования с использованием слоев валидации и отладочного пакета Valgrind. Интерфейс фреймворка вместе с некоторыми библиотеками были задокументированы комментариями в стиле Doxygen. Программа Doxygen позволяет генерировать документацию в формате HTML, man, LaTeX и многих других при помощи особых отметок, указанных в комментариях к типам данных, перечислениям, объявлениям функций в языках Си, C++, Java и многих других. Разработаны инструкции по конфигурации и сборке программной платформы и демонстрационных программ, которые размещены вместе с фреймворком в репозиториях. Для распространения программного продукта была выбрана и применена свободная лицензия к каждому компоненту. Все заимствования материалов третьих лиц были выполнены легальным образом в соответствии с совместимыми лицензионными соглашениями. Весь представленный код в этом документе указан с небольшими поправками: удалены Doxygen комментарии и теги, изменены отступы и упрощена некоторая логика в целях облегчения восприятия информации читателем. Все исходные коды программной платформы выложены в открытом доступе на нескольких репозиториях. В отчете по ВКР содержится 134 страниц, 77 иллюстраций, 7 таблиц, 6 приложений.

Текст работы (работа добавлена 30 мая 2020 г.)

Выпускные квалификационные работы (ВКР) в НИУ ВШЭ выполняют все студенты в соответствии с университетским Положением и Правилами, определенными каждой образовательной программой.

Аннотации всех ВКР в обязательном порядке публикуются в свободном доступе на корпоративном портале НИУ ВШЭ.

Полный текст ВКР размещается в свободном доступе на портале НИУ ВШЭ только при наличии согласия студента – автора (правообладателя) работы либо, в случае выполнения работы коллективом студентов, при наличии согласия всех соавторов (правообладателей) работы. ВКР после размещения на портале НИУ ВШЭ приобретает статус электронной публикации.

ВКР являются объектами авторских прав, на их использование распространяются ограничения, предусмотренные законодательством Российской Федерации об интеллектуальной собственности.

В случае использования ВКР, в том числе путем цитирования, указание имени автора и источника заимствования обязательно.

Реестр дипломов НИУ ВШЭ