Консорциум Khronos, занятый разработкой графических стандартов, анонсировал (https://www.khronos.org/news/press/khronos-reveals-vulkan-ap...) Vulkan, новый высокоэффективный API для доступа к графическим и вычислительным возможностям GPU. Разработка Vulkan была инициирована в рамках инициативы OpenGL Next Generation, нацеленной на создание API, отвечающего требованиям современных реалий и устраняющего основные недостатки OpenGL. Начальная версия спецификации и первые рабочие реализации нового API ожидаются в течение этого года.
Для обеспечения высокой производительности и предсказуемости, Vulkan предоставляет приложениям средства для прямого управления состоянием GPU и встроенную поддержку многопоточной обработки команд GPU. Одной из основных проблем OpenGL является изначальная ориентация на фиксированный поток команд для одноядерных систем с минимальным доступом к состоянию GPU, что мешает использованию всего потенциала современных программируемых многоядерных графических процессоров. Vulkan подразумевает более активную прямую работу с GPU, минимизируя накладные расходы, вносимые драйвером. Реализуемые на стороне драйвера возможности заметно упрощаются и становятся более предсказуемыми.
Vulkan охватывает все доступные платформы и предоставляет единый API для настольных, мобильных систем и Web, позволяя использовать один общий API для различных графических процессоров и областей применения. Современные GPU для настольных, встраиваемых и мобильных систем приблизились друг к другу по функциональности и внутренней архитектуре, что позволяет избавиться от устаревшей привязки к разным спецификациям (OpenGL, OpenGL ES). Благодаря многослойной архитектуре Vulkan, подразумевающей создание инструментов, работающих с любыми GPU, производители оборудования могут использовать при разработке типовые элементы для проверки кода, отладки и профилирования.
Для создания шейдеров предлагается новое переносимое промежуточное представление SPIR-V, использующее общие с OpenCL 2.1 базовые технологии и универсальное для всех платформ. SPIR-V подразумевает выделение отдельной фазы компиляции шейдеров в промежуточное представление, что позволяет создавать фронтэнды для различных высокоуровневых языков. На основе различных высокоуровневых реализаций отдельно генерируется единый промежуточный код, который может использоваться драйверами Vulkan и OpenCL без применения встроенного компилятора шейдеров. Избавление драйвера от компилятора шейдеров существенно снижает сложность драйвера, ускоряет загрузку шейдеров и делает драйвер независимым от высокоуровневых языков разработки программ для GPU.
URL: https://www.khronos.org/news/press/khronos-reveals-vulkan-ap...
Новость: https://www.opennet.ru/opennews/art.shtml?num=41773