> > > > GTC 2016: API Vulkan приходит, чтобы остаться

GTC 2016: API Vulkan приходит, чтобы остаться

Опубликовано:

nvidia gtcВо время первого дня конференции GPU Technology Conference новостей было не так много, хотя мы уже отметили появление Quadro M5500 и анонс программы VR Ready для рабочих станций. Сегодня внимание разработчиков приковано к нескольким новым графическим API, помимо DirectX 12 можно назвать Vulkan и другие API Khronos Group. API Vulkan обеспечивает прирост производительности благодаря снижению избыточной вычислительной нагрузки, эту тенденцию начала AMD с Mantle, а в DirectX 12 она найдет широкое применение. Khronos Group со своим API Vulkan пытается закрыть нишу универсального интерфейса, который работает на разных операционных системах и платформах, от смартфонов и планшетов до настольных ПК.

Галерея: Khronos Group на GTC 2016
Галерея: Khronos Group на GTC 2016

Чтобы уменьшить избыточную вычислительную нагрузку и получить более глубокий контроль над аппаратными ресурсами часть задач были убраны из драйвера (OpenGL ES и OpenGL) и реализуются через приложения. Подразумевается, что разработчики лучше знакомы с требованиями своих приложений, поэтому они смогут более эффективно использовать ресурсы по сравнению с драйвером. Подобное глубокое управление аппаратными ресурсами стало отличительной чертой DirectX 12, Metal и других низкоуровневых API. Ошибки выявляются на специальном уровне Debug and Validation Layer. Таким образом минимизируется риск появления ошибок, связанных с более глубоким управлением аппаратными ресурсами. И часть ошибок можно выявить на раннем этапе разработки. Конечно, Vulkan требует от разработчиков дополнительных усилий и большей компетенции, зато дает серьезные преимущества.

Сравнение между Vulkan и Metal показывает, что у Metal дополнительные вычислительные расходы по сравнению с OpenGL ES меньше, но зато отсутствуют функции, подобные геометрическим шейдерам и тесселяции. Несмотря на увеличение сложности, Vulkan дает потенциал для существенно большего прироста производительности – и, если верить Khronos, дополнительные усилия разработчиков окупаются более чем.

Галерея: Khronos Group на GTC 2016
Галерея: Khronos Group на GTC 2016

Нейл Тревет (Neil Trevett), президент Khronos Group, во время своего выступления не переставал повторять, что Vulkan не знаменует конец OpenGL или OpenGL ES. Оба «старых» API продолжат свое существования и даже будут разрабатываться дальше. Для некоторых сфер применения оба API по-прежнему дают свои преимущества, которых нет у Vulkan. Но Khronos Group прекрасно понимает, что API Vulkan сегодня находится на начальном этапе своего развития, для широкого распространения API необходима поддержка со стороны приложений и игр. Было объявлено, например, что Unreal Engine 4 уже почти полностью портирован под Vulkan. Для движков и SDK, подобных Lunar G, VALVE Portal Engine 2 и Unity, уже объявлена или даже реализована поддержка Vulkan. Для тестов производительности пока доступна только бета-версия игры The Talos Principle, мы как раз недавно их провели. В ближайшем будущем должны появиться обновленные синтетические тесты GFXBench, Bassmark, Futuremark Slingshot с поддержкой Vulkan, которые значительно облегчат измерение производительности.

OpenVX, OpenCL SC и OpenKCam

OpenGL, OpenCL и теперь Vulkan – основные API Khronos Group. Разрабатываются или уже выпущены еще несколько API, подобных OpenVX, OpenCL SC и OpenKCam. OpenVX – интерфейс для обработки в реальном времени данных сенсоров и камер. Он будет поддерживаться в мобильных и встраиваемых системах. OpenVX может задействовать несколько CPU и GPU. Также оптимизирована работа с DSP и ISP. Эффективность OpenVX достигается благодаря распределению нагрузки на несколько CPU и GPU, хорошим управлением памятью и подготовкой данных для дальнейшего использования.

Еще один новый API - OpenCL SC, добавка SC означает Safety Critical, то есть нацеленность на максимальную отказоустойчивость. OpenCL SC был разработан для авиации, но интерфейс начинает все более активно использоваться в автомобильной индустрии – теперь уже в виде OpenGL SC 2.0. OpenKCam нацеливается на ту же сферу, что и OpenVX, но сильнее ориентирован на анализ и обработку данных камеры. Здесь Khronos Group тоже нацеливается на автомобильную индустрию.