Проект Vulkan: OpenGL будет дополнять новый API.

Детские товары 22.06.2019

Тестовый стенд № 2 на базе платформы Intel Soket 2011

Тестовый стенд № 3 на базе платформы Intel Soket 1155

Тестовый стенд № 4 на базе платформы AMD Soket AM3 +

Тестовый стенд № 5 на базе платформы Intel Soket 1150

Все видеокарты тестировались на максимальном качестве графики программой MSI Afterburner. Целью теста является определить, как ведут себя видеокарты от различных производителей при одинаковых условиях. Ниже приведено видео тестового отрезка:

Наши видеокарты тестировались при разрешениях 1920х1080, 2560х1600 и 3840х2160 при максимальных настройках качества графики, допустимых Doom. AMD CrossFireX и SLI игрой в полной мере не поддерживаются и в тесте мы их не активировали. CrossFireX мы даже рекомендуем отключить, так как при его активации производительность падает в разы.

Тестирование при максимальных настройках качества 1920х1080 API OpenGL

Тестирование при максимальных настройках качества 1920х1080 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti.

Тестирование при максимальных настройках качества 2560x1440 API OpenGL

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti. Radeon HD 7950 или GeForce GTX 770 .

Тестирование при максимальных настройках качества 2560x1440 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R7 370 или GeForce GTX 750 Ti. Оптимальными решениями станут Radeon R7 370 или GeForce GTX TITAN.

Тестирование при максимальных настройках качества 3840х2160 API OpenGL

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R9 290 или GeForce GTX 970. Оптимальными решениями станут видеокарты уровня Radeon R9 290X или GeForce GTX 980.

Тестирование при максимальных настройках качества 3840х2160 API Vulkan

При данных настройках приемлемый показатель FPS показали видеокарты уровня Radeon R9 380X или GeForce GTX 970. Оптимальными решениями станут видеокарты уровня Radeon R9 290 или GeForce GTX 970.

По данным результатам можно сделать несколько выводов. Видекарты AMD в API Vulkan дают существенный прирост быстродействия, а NVIDIA минимальный(семейство Kepler вообще уходит в минус), видимо необходимо подождать новых драйверов.

Так же стоит отметить, что API Vulkan может рационально использовать лишь память видеокарты, и если игра потребляет больше, то производительность видеокарт падает до неиграбельного уровня...

Тестирование потребляемой игрой видеопамяти проводилось программой MSI Afterburner. За показатель брались результаты на топовых видеокартах от AMD и NVIDIA при разрешениях 1920х1080 и 2560х1440 с различными настройками сглаживания.

Тестирование при максимальных настройках качества memory GPU


Рекомендуемым объёмом использования видеопамяти для разрешения 1920х1080 станет 3076 мб видеопамяти, для разрешения 2560х1440 - 3076 мб видеопамяти и для разрешения 3840х2160 около 4096 мб видеопамяти.

Тестирование процессорозависимости мы провели на 16 моделях базовых конфигураций, которые актуальны на сегодняшний день. Тест проводился в тех местах, где значение видеокарты для игры минимально и её загрузка составляла менее 99%, в этот раз при разрешении 1920х1080.

Тестирование при максимальных настройках качества 1920х1080 API OpenGL

Тестирование при максимальных настройках качества 1920х1080 API Vulkan

Производительность процессоров в игре при использовании API Vulkan не только возрастает, но и позволяет избавиться от проблем, когда производительность падала из-за избытка процессорных ядер.

Doom задействует до 16 вычислительных потоков, но полностью использует лишь 4 ядра.

Тест проводился на базовой конфигурации Core i 7 5960Х@4.6 ГГц c количеством предустановленной памяти 32 GB DDR4 2400 MGz. За показатель бралась вся используемая оперптивная память. Тест оперативной памяти на всей системе проводился на различных тестовых стендах без запуска постороних приложений(браузеров и т.п.).

Тестирование потребления игрой ОЗУ при различных настройках качества

Как мы видим объём потребляемой оперативной памяти в Doom находится в пределах 3000 мегабайт.

Тестирование потребления системой ОЗУ


При наличии системы с 6-мя гигабайтам Doom потребляет все 5.5 гигабайт ОЗУ. При наличии системы с 8-ми гигабайтами потребление ОЗУ всей оперативной памяти составило 6 гигабайта. С системой на 16 гигабайт потребление общей памяти составило почти 7 гигабайт. И при наличии 32 гигабайт оперативной памяти система потребляет 7.2 гигабайта ОЗУ.

Это вообще разные вещи.
Нужно отличать изучение API , от изучения технологии . Если вы хотите выучить просто API, учите что угодно, ибо разницу заметите только, когда поймёте основы, базу .

OpenGL проектировался когда были другие архитектуры железа. Мультипроцессорность была только в теории, и считалась уделом суперкомпьютеров и ненужной для пользовательских ПК.
Можно привести аналогию: OpenGL == C++, Vulkan == асинхронный Assembler + hardware threads. Например, в C++ сейчас довольно много архитектурных косяков, которые пытаются решить новыми стандартами, объявляют какие вещи устаревшими, потому что они концептуально неверны и не подходят под современные реалии.
Но, при этом, вы можете всё то же самое написать на ассемблере, но нужно намного лучше понимать, как работает процессор и ОС, самому писать примитивы синхронизации, и т. п.

Для этих же целей и создавался вулкан. Для программирования на нём, нужно знать все тонкости железки, читать кучи пейперов от той же НВидии, исследовать, придумывать новые фичи для современных архитектур с нуля, которые изначально были придуманы в OpenGL, но для старого железа.
Т. е. на Вулкане нужно делать больше руками, больше оптимизировать. Вместо одного вызова функции OpenGL, на вулкане придётся несколько сотен строк написать. При этом, если вы не понимаете какой-то одной тонкости, вы сделаете менее эффективнее то, что изначально было хорошо реализовано в OpenGL. К тому же, OpenGL умеет выбрасывать ошибки, в случае, когда вы где-то накосячили. Вулкан же их не выбрасывает, он полагается на то, что вы уже знаете как этим пользоваться. Точно так же, как ассемблер просто меняет состояние регистров, у него нет понятия ошибки. Как интерпретировать эти регистры, зависит от того, насколько хорошо разработчик читал мануал к процессору.

В итоге, я бы ответил так:

Если вы будете заниматься графикой как наукой, дико задротить а-ля Кармак в студенчестве с его движками, что-то исследовать, писать какие-то гениальные алгоритмы, защищать на этом диссертации, публиковать их, рассказывать потом на конференции, как вы круто справились с какой-то насущной задачей, повысили производительность, то тогда учите Vulkan. Vulkan - это именно про графику как технологию, про производительность, про инжиниринг и архитектурный дизайн, а не про API и само программирование. С вулканом придётся больше сидеть с диаграммами, документациями и строить архитектуру, придумывать методы взаимодействия частей этой архитектуры, синхронизации состояний, нежели писать код.

Если же вы пишете простые прикладные вещи, которым нужно показать какую-то графику, то учите OpenGL. Здесь вы учите только API, соглашаясь с уже готовым, слегка устаревшим, архитектурным дизайном.

Если хотите писать игры не мирового класса, то учите готовые движки, Unity или Unreal. Они уже поддерживают за вас Vulkan, продумали за вас API и архитектуру.

Прежде чем говорить о деталях и тонкостях Vulkan API, думаю нужно сказать несколько слов о том, что же это такое и с чем его едят. Если сравнивать Linux с Windows, то Vulkan(который, все еще находится в разработке) это Directx, набор библиотек, для улучшения быстродействия в основном в компьютерных играх. Как известно, на платформе Linux, можно запускать игры с помощью , PlayOnLinux или коммерческой версии . Но не все игрушки запустятся и будут работать как следует, а все из-за проклятого API Directx.

Забыл сказать, что для производительности в играх для.nix платформ используется OpenGL, аналогичное программное обеспечение, как Directx для Windows. Так вот, Vulkan API, как сообщают разработчики из компании Nvidia (которые, в свою очередь, так же заинтересованы в реализации этого проекта) Vulkan API, будет дополняться устаревшим OpenGL. В свою очередь, это означает, что менее ресурсозатратные объекты, будут обрабатываться именно с помощью OpenGL, а когда приходит время , то тут в дело будет вступать новый проект.

Преимущество Vulkan API

Почему же этот проект, поддерживают, очень солидные компании, среди которых, Intel, AMD, Nvidia и др. В чем же прелесть, нового API? Здесь нужно показать видео, которое наглядно покажет, что же он из себя представляет на практике...

Как можно было увидеть из видеоматериала выше, Vulkan API, очень хорошо, управляет многозадачностью процессора, что в свою очередь позволяет, эффективно управлять графическим процессором, тем самым, нагрузка распределяется равномерно, что показывает очень хороший результат в производительности. В то время как в OpenGL, вся нагрузка идет на центральный процессор, и FPS, заметно проседает, в Vulkan API все сделано с умом, нагрузка распределена и FPS, все же проседает, но гораздо реже.

Перспективы развития Vulkan API

К сожалению, точная дата выхода, пока неизвестна, также держатся в секрете какие, игры, получат поддержку нового API. В свою очередь, компания AMD (которая сейчас очень активно сотрудничает с разработчиками) намекнула, что они работают над новой игрой, которая будет использовать Vulkan API, либо какая-то игра будет портирована.

Забыл упомянуть, что новый проект будет кроссплатформенным и даже Android, будет работать с ним.

Дальнейшие новости о проекте Vulkan API, будут известны с 14 по 18 марта, во время конференции The Game Developers Conference (GDC).

Все мысли по поводу Вулкана, оставляем в комментариях. Очень интересно узнать, станет ли Linux, игровой платформой или же Windows, снова придумает, что-нибудь сверхъестественное.

Перевод, комментарии: alfabuster, специально для сайта

На минувшей неделе был представлен API Vulkan, о широкой поддержке которого заявили AMD и NVIDIA. Новый графический интерфейс разрабатывал Khronos Group, консорциум, основанный в 2000 году. Khronos Group отвечает за разработку и поддержку открытых стандартов в сфере мультимедийных приложений на разных платформах и устройствах. Консорциум поддерживают AMD и NVIDIA, а также многие другие компании.

На минувшей неделе была ратифицирована финальная версия 1.0 API Vulkan. AMD и NVIDIA представили соответствующие бета-драйверы. AMD заранее выпустила бета-версию Radeon Software еще 14 февраля. NVIDIA представила драйвер GeForce 356.39, который тоже ориентирован на поддержку API Vulkan.

Подход API Vulkan очень похож на API Mantle. Суть заключается в том, чтобы разработчики получили более глубокий доступ к «железу», чтобы выжать из него максимум. Такой подход позволяет максимально избежать существующих «узких мест». С другой стороны, разработчики должны точно знать, что они делают – например, при работе с памятью. Интерфейс OpenGL не так популярен, как DirectX, но позволяет выжать больше.

Интерфейс API Vulkan в версии 1.0 поддерживается под Windows 7, Windows 8.1, Windows 10, Android и Linux. Разработчики игр пока что не объявили о поддержки в конкретных играх, но здесь стоит дождаться Games Developer Conference, которая будет проводиться с 14 по 18 марта в Сан-Франциско. Из игровых движков пока есть информация о Source 2, который уже поддерживает API Vulkan. Процесс отладки облегчается поддержкой Valve, LunarG и Codeplay.

The Talos Principle

Хорошо, но какая игра или движок поддерживают API Vulkan? Игра The Talos Principle разрабатывалась компанией Croteam, которая и в прошлом была известна поддержкой многих графических API. И в последней итерации игра The Talos Principle не стала исключением – она поддерживает DirectX 9, DirectX 11, OpenGL и теперь Vulkan. Для студии разработчиков Vulkan является пробным шаром, хотя API Vulkan доступен в версии 1.0, поддержка пока находится в бета-стадии. На добавление поддержки разработчики Croteam затратили порядка трех месяцев. Но универсальный характер API позволяет вскоре представить вариант Linux.

API Vulkan теоретически совместим с несколькими платформами – но пока что тесты и сравнения можно провести только под Windows, причем здесь имеются свои ограничения. Реализация пока остается на очень раннем этапе. Путь рендеринга DirectX 11 совершенствовался многие годы, поэтому потенциала для оптимизации здесь уже нет. Здесь ситуация больше зависит от разработчиков драйверов, а именно AMD и NVIDIA. Игра The Talos Principle стала первой с поддержкой Vulkan. Поэтому пока нет возможности сделать сравнительный тест для оценки хорошей или плохой реализации поддержки.

Новые технологии первое время реализуются в примерах, подготовленных производителями. В случае DirectX 12 акцент был выставлен на Draw Calls, тот же тест 3DMark DirectX 12 опирается только на измерение производительности Draw Calls, игры DirectX 12, подобные Star Wars, тоже пытаются задействовать подобную нагрузку. Но The Talos Principle не так сильно зависит от высокой скорости Draw Call, чтобы низкоуровневый API дал большую разницу.

Поддержка API Vulkan версии 1.0 находится на ранней стадии, то же самое касается драйверов AMD и NVIDIA. Оба драйвера, по сути, относятся к бета-версиям, именно так их рассматривают производители GPU. Здесь обычно нет новых улучшений производительности или поддержки новых технологий, так что мы получаем шаг назад. Но как только определенный уровень разработки будет достигнут, драйверы обоих разработчиков GPU получат поддержку Vulkan в финальной версии. Когда это произойдет – не совсем понятно. Но пока ключевые приложения не используют Vulkan и игры с поддержкой API находятся в состоянии бета-версии, так что разработчики GPU могут спокойно дорабатывать свои драйверы.

Для тестов мы взяли нашу тестовую систему для видеокарт. Драйверы видеокарт AMD и NVIDIA мы уже описали выше. В настройках мы выставили максимальный уровень графики, но при этом протестировали и низкие разрешения вплоть до 1.280 x 720 пикселей, чтобы увеличить производительность Draw Call.

Тест The Talos Principle - 1.280 x 720 пикселей

Тест The Talos Principle - 2.560 x 1.440 пикселей

Тест The Talos Principle - 3.840 x 2.160 пикселей

Как можно видеть по результатам, API Vulkan дает существенный прирост по сравнению с OpenGL. Но до производительности DirectX 11 новый API не дотягивает. Тому есть несколько причин. С одной стороны, разработка под Vulkan находится в ранней стадии. Это касается и самого API, и драйвера, и игры The Talos Principle. По сравнению с OpenGL новый интерфейс позволяет освободить часть ресурсов и избежать «узких мест». Но DirectX много лет совершенствовался до текущего уровня. В любом случае, потенциал у API Vulkan очень хороший.

Если погрузиться в детали, то визуальных отличий между API Vulkan и DirectX 11 мы не обнаружили. Так что путь рендеринга очень хорошо адаптирован. У текущей реализации The Talos Principle видеокарты с 2 Гбайт памяти получают падение производительности, вероятно, из-за не самой эффективной работы с памятью. Как и Mantle и DirectX 12, API Vulkan может обращаться к ресурсам памяти на более глубоком уровне – сей факт можно рассматривать как преимущество, но он может стать и недостатком, если разработчики не смогут эффективно использовать память.

Несколько разочаровала ошибка в текущем драйвере NVIDIA, из-за которой после каждого теста приходилось перезагружать систему. Без перезагрузки игра «вылетала». Хотя с драйвером AMD мы не обнаруживали подобной ошибки.

Нынешняя реализация API Vulkan кажется обещающей. Пока что для игр на настольных ПК она будет не такой актуальной, поскольку рынок DirectX 11 и 12 очень велик, и по сравнению с тем же DirectX 12 затраты на реализацию могут быть слишком велики, а отдача слишком мала. Но если игры необходимо запускать на разных платформах с разными аппаратными требованиями, Vulkan может сыграть важную роль. В любом случае, следует дождаться реакции со стороны разработчиков игр, иначе мы получаем проблему курицы и яйца, из которой сложно выйти.



Рекомендуем почитать

Наверх