RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2021, том 33, выпуск 5, страницы 181–204 (Mi tisp635)

Эта публикация цитируется в 1 статье

Автоматизация разработки на Vulkan: предметно-ориентированный подход

В. А. Фроловab, В. В. Санжаровab, В. А. Галактионовb, А. С. Щербаковa

a Московский государственный университет имени М. В. Ломоносова
b Институт прикладной математики им. М.В. Келдыша Российской академии наук (ИМП РАН)

Аннотация: Предлагается новый высокоуровневый подход к разработке приложений на GPU на основе Vulkan API. Цель работы – снижение трудоемкости разработки и отладки приложений, реализующих сложные алгоритмы на GPU при помощи Vulkan. Предлагаемый подход использует технологию генерации кода путем трансляции программы на языке C++ в оптимизированную реализацию на Vulkan, включающую автоматически генерацию шейдеров, привязывание ресурсов и использование механизмов синхронизации. Предлагаемое решение не является технологией программирования общего назначения, а специализируется на конкретных задачах, но обладает при этом расширяемостью, позволяющей адаптировать решение под новые задачи. Для одной входной программы на языке C++, мы можем сгенерировать несколько реализаций для разных случаев (опций транслятора) или разного аппаратного обеспечения. Например, вызов виртуальных функций может быть реализован либо через конструкцию switch в одном вычислительном ядре, либо через сортировку потоков и непрямой вызов в разных ядрах, либо через т. н. callable shaders в Vulkan. Таким образом, предлагаемая технология позволяет обеспечить кроссплатформенность решения за счёт генерации разных реализаций одного и того же алгоритма под разные GPU. В то же время за счёт этого она позволяет обеспечить доступ к специфической аппаратной функциональности, необходимой в приложениях компьютерной графики.

Ключевые слова: генерация кода, программирование GPU, Vulkan.

DOI: 10.15514/ISPRAS-2021-33(5)-11



© МИАН, 2024