Что такое mgpu directx 12

Обновлено: 03.07.2024

Близится выход Windows 10, поэтому сегодня внимание производителей видеокарт, разработчиков игр и геймеров приковано к новым API. Но большинство пользователей по-прежнему путаются в том, какие видеокарты будут поддерживать новый DX 12 и в каком виде. Нас вновь ожидают несколько уровней поддержки. Они соответствуют разным уровням аппаратной и программной поддержки, ниже мы как раз рассмотрим их более детально.

Большинство современных видеокарт, будь то от AMD или NVIDIA, поддерживают DirectX 12 в "родном" режиме. Однако речь здесь идёт о минимальном уровне поддержки, старые GPU не смогут полностью реализовать все технологии, поскольку они вышли два-три года назад. Но позвольте пролить свет на данный вопрос.

DirectX 12 API

Начнём с API DirectX 12. Важной частью API является снижение избыточной вычислительной нагрузки, что верно и для других низкоуровневых API, таких как Mantle. Здесь суть кроется не столько в представлении новых технологий, сколько в более эффективном использовании доступных ресурсов. Первые тесты под Windows 10 уже показали существование потенциала производительности. Но данные тесты были ограничены определёнными сценариями, и пока не совсем понятно, какой прирост производительности можно ожидать в играх из-за снижения избыточной вычислительной нагрузки.

На низком уровне API DirectX 12 обеспечивает для программистов более эффективные средства доступа к "железу". Сюда входит и улучшенное управление видеопамятью. Так что потенциально перед программистами открываются дополнительные возможности, но при этом и влияние ошибок может быть весьма печальным.

Технология Asynchronous Compute тоже является частью низкоуровневой поддержки, она позволяет лучше и эффективнее использовать ступени фиксированного конвейера рендеринга и уменьшить время рендеринга. Так что одновременно можно выполнять больше команд, а также задействовать больше ступеней конвейера. Уменьшение времени рендеринга приведёт к более высокой частоте кадров в секунду и к снижению задержек, что положительно сказывается на некоторых областях – например, на поддержке очков виртуальной реальности VR.

DirectX 12_0

Только GPU или архитектуры, специально разработанные для поддержки DirectX 12, будут поддерживать уровень функций DirectX 12_0, который содержит ряд новых технологий. Среди них – тайловые ресурсы Tiled Resources. В принципе, тайловые ресурсы известны ещё по DirectX 11, они отличаются высокой эффективностью по используемой памяти, а также могут значительно улучшить уровень детализации. С помощью мелких текстур в многократных ориентациях можно симулировать крупные текстуры. Кроме того, существенно экономится память. А качество картинки приносить в жертву не придётся.

В примере приводится классическая текстура Texture 3D под DirectX 11 с разрешением 1.200 x 600 x 600 пикселей с 32-битным цветом – она занимает 1,6 Гбайт. С тем же качеством можно использовать тайловую текстуру Tiled Texture 3D через многократные повторения – она будет иметь разрешение 32 x 32 x 16 пикселей с 32-битным цветом. Размер при этом будет составлять 156 Мбайт. В одном из примеров приведена сцена рендеринга, в которой тайловая 3D-текстура используется 2.500 раз. Для создания и симуляции некоторых материалов в 3D добавляется ещё одно информационное поле. Им может быть, например, значение прозрачности или вязкости. Такой подход позволяет лучше симулировать жидкости и газы.

Ещё один тип тайловых ресрусов – объёмные тайловые ресурсы (Volume Tiles Resources), однако они относятся к уровню функций уже не DirectX 12_0, а 12_1.

Новые технологии DirectX 12
Новые технологии DirectX 12

Новые технологии DirectX 12

К уровню DirectX 12_0 относится Typed UAV и новая модель Bind, которые ориентируют API на большее число ядер CPU, что обеспечивает более широкую параллелизацию и производительность. Обе функции мы уже рассматривали в обзоре GeForce GTX 980 и GTX 970.

DirectX 12_1

Ещё на шаг дальше Microsoft и разработчики GPU пошли с DirectX 12_1. Но данный урвоень функций поддерживают только самые новейшие GPU. К ним относятся все GPU на основе 2-го поколения "Mawell". Одна из новых технологий – консервативная растеризация (Conservative Rasterization). Она используется для фильтра динамического суперразрешения (Dynamic Super Resolution) и сглаживания Multiframe Sampled Anti-Aliasing.

Новые технологии DirectX 12
Новые технологии DirectX 12

Новые технологии DirectX 12

При растеризации небольшого объекта/пикселя в некоторых случаях лучше учитывать все покрытые точки семплирования, пусть даже частично. Также консервативная растеризация важна при вокселизации VXGI. Улучшенная методика наиболее заметна и при расчете теней.

Аппаратная поддержка

Конечно, многих читателей интересует вопрос о том, какие GPU или видеокарты будут поддерживать DirectX 12 и на каком уровне. Хотя оба разработчика GPU AMD и NVIDIA несколько лет говорят о поддержке DirectX 12, она пока остаётся довольно ограниченной.

Поддержка DirectX 12 на современных видеокартах
Архитектура GPUDirectX 12 APIDirectX 12_0DirectX 12_1DirectX "12_2"
NVIDIA "Maxwell" 2-го поколения Да Да Да Да
NVIDIA "Maxwell" 1-го поколения Да Нет Нет Нет
NVIDIA Kepler Да Нет Нет Нет
NVIDIA Fermi Да Нет Нет Нет
AMD GCN 1.2 Да - - -
AMD GCN 1.1 Да - - -
AMD GCN 1.0 Да - - -

По крайней мере, NVIDIA вместе с представлением GeForce GTX 980 Ti пролила свет на поддержку нового API. Только видеокарты 2-го поколения архитектуры "Maxwell" будут поддерживать все упомянутые ранее функции и технологии. Среди них - GeForce GTX Titan X, GTX 980 Ti, GTX 980, GTX 970 и GTX 960. Все другие видеокарты вплоть до линейки GeForce 500 с GPU "Fermi" смогут поддерживать DirectX 12 API на базовом уровне, пользователи выиграют от улучшенного взаимодействия между драйвером и API.

К сожалению, со стороны AMD картина не такая понятная. Архитектура "Graphics Core Next" тоже даёт разные уровни поддержки. GCN версии 1.2 была реализована на видеокартах Radeon R9 285, в модифицированном виде мы получим поддержку и на новых видеокартах "Fiji". Версии GCN 1.1 (линейки Radeon 290 и Radeon 260) и GCN 1.0 (линейки Radeon 200 и Radeon 7000) тоже совместимы с DirectX 12, но, скорее всего, тоже на самом нижнем уровне. К сожалению, от AMD пока нет чётких утверждений по поводу поддержки DirectX 12. Некоторые функции, подобные асинхронным шейдерам (Asynchronous Shaders), должны работать на всех GPU с архитектурой "Graphics Core Next".

Вероятно, нам придётся подождать некоторое время, прежде чем AMD, NVIDIA и Intel представят более конкретную информацию об уровне функций. По крайней мере со стороны NVIDIA ситуация с поддержкой прояснилась.

Эта статья была задумана как дань старой традиции: нам хотелось полюбоваться дорогими системами с несколькими GPU, как это было в 2014 и 2016 годах, а потом мы готовились с разочарованием признать, что технологии SLI и CrossFire уже утратили всякую практическую ценность. Но вместо этого получилось своего рода продолжение наших недавних публикаций про API нового поколения (см. первую и вторую части исследования), ведь большинство игр из нашей тестовой методики поддерживают Direct3D 12. Под этим API пара видеокарт работают совсем по-иному, нежели в Direct3D 11, и нет никакого смысла ограничиваться сравнением под формально устаревшим, но все еще преобладающим интерфейсом Direct3D 11.

А что касается главного вопроса (осталась ли какая-то польза в SLI и CrossFire), то придется признать, что похороны двухадаптерных систем снова откладываются! Да, в связи со сменой API возникли новые проблемы, связанные и c реализаций Multi-Adapter в Direct3D 12, и с пропускной способностью шины PCI Express, и с пресловутой процессорозависимостью игр. Но, с другой стороны, именно Direct3D 12 несет в себе возможности для того, чтобы их преодолеть.

В целом оба производителя дискретных GPU сейчас прохладно относятся к мультиадаптерному рендерингу. Это заметно по тому, как сократилось разнообразие конфигураций, в которых работают SLI и CrossFire. Пропали видеокарты на основе двух графических процессоров, без которых прежде не обходилось ни одно обновление архитектуры. Драйверы AMD и NVDIA официально поддерживают не больше двух GPU. А ведь в 2011 году мы тестировали связки из трех и четырех видеокарт класса GeForce GTX 580, и в то время игры могли вполне неплохо загрузить три ускорителя высшего эшелона. К тому же NVIDIA загнала SLI в самый верх своей продуктовой линейки: младшей видеокартой в серии GeForce 10, которая имеет разъемы SLI, является сравнительно мощный и дорогой ускоритель GeForce GTX 1070.


Конечно, именно мощные видеокарты, как правило, и устанавливают парами, а утраченная возможность использовать три или четыре графических процессора по большей части была полезна только для набора рекордных баллов в 3DMark. Но потеря интереса к SLI и CrossFire со стороны хозяев рынка видеокарт отражает общий застой этого направления, к которому привело несоответствие между сложностью технических задач и низким спросом со стороны рядовых геймеров.

В концептуальном плане рендеринг при помощи множественных GPU — это вполне очевидная идея, которая логически следует из высокого параллелизма вычислений, но на практике такие технологии всегда были довольно-таки капризны и требовали постоянного внимания со стороны драйверописателей. В рамках Direct3D 11 функцию разделения нагрузки между несколькими видеоадаптерами целиком выполняет драйвер. Игровой движок, как и в случае одиночного GPU, отдает команды общей очередью, а драйвер распределяет их так, чтобы, пока первый графический процессор создает свой кадр видеоряда, второй GPU занимается следующим кадром (метод AFR — Alternate Frame Rendering). Для полноты картины стоит заметить, что мультиадаптерный рендеринг не сводится к AFR. В редких случаях используется метод SFR (Split Screen Rendering), в котором каждый GPU обрабатывает свою часть единого кадра, а Direct3D 12 предусматривает и более сложные режимы, но о последнем — чуть позже.

В идеале процедура мультиадаптерного рендринга в Direct3D 11 прозрачна для игрового движка и не требует дополнительных усилий от его разработчиков, но на практике все совсем не так просто. При использовании метода AFR нужно считаться с ограничениями в тех ситуациях, когда существуют зависимости между последовательными кадрами, а это практически неизбежно в современных играх. Как следствие, адекватная работа мультиадаптерной системы возможна только при наличии профилей настроек для каждой конкретной игры, благодаря которым драйвер получает подсказки о том, чем занимается движок, а разработчикам игры — в идеале — нужно понимать, что пытается сделать драйвер. Полезно использовать и проприетарный API (такой как NVAPI для GPU NVIDIA), открывающий доступ к GPU в обход уровня абстракции Direct3D, но даже в идеальных условиях не от каждой игры можно добиться хорошего масштабирования быстродействия на нескольких адаптерах.

Свой вклад в эту проблему вносит и пресловутая «процессорозависимость»: графические чипы сейчас развиваются быстрее, нежели быстродействие CPU архитектуры x86 с небольшим числом потоков, и это заметно даже в конфигурациях с одной мощной видеокартой, не говоря уже о двух. Наконец, как мы раз за разом видим по результатам группового теста GPU в какой-нибудь популярной игре, единственный адаптер высшего эшелона, скорее всего, удовлетворит любого геймера. С другой стороны, и разница в качестве изображения между низкими и максимальными настройками качества графики уже не та, что в золотые времена SLI и CrossFire. В результате побуждение наращивать кадровую частоту любой ценой сошло на нет, а раз так, то какой смысл для людей, работающих над драйверами GPU, вкладывать усилия в нишевую технологию мультиадаптерного рендеринга? Пока работа продолжается (особенно со стороны NVIDIA), но с пришествием Direct3D 12 ситуация может полностью измениться — причем как в лучшую, так и в худшую сторону.

Новый графический API Microsoft предусматривает два различных подхода к программированию мультиадаптерного рендеринга. В режиме Implicit Multi-Adapter задачу разделения работы между GPU выполняет драйвер — как в Direct3D 11, со всеми его плюсами и минусами. С другой стороны, в режиме Explicit Multi-Adapter ресурсами графических процессоров целиком распоряжается игровой движок, и это одновременно и благословение, и проклятие, ведь в таком случае все зависит от готовности разработчиков вкладывать силы в поддержку Multi-Adapter.

При должном старании программисты смогут извлечь из связки GPU быстродействие, принципиально недостижимое в предыдущей версии API. В частности, можно отказаться от AFR и применять сложные методы распределения нагрузки между адаптерами — такие как конвейеризация кадров (Frame Pipelining), при которой несколько GPU выполняют различные этапы рендеринга одного кадра, а проблема зависимостей между соседними кадрами отсутствует как таковая. Кроме того, конвейеризацию можно использовать в пользу качества рендеринга, а не частоты смены кадров. К примеру, загрузить второй GPU расчетом глобального освещения, трассировки лучей, физики и так далее.

У Explicit Multi-Adapter есть два метода реализации: Linked Node и Unlinked Node. Первый метод — это аналог SLI и CrossFire в рамках новой парадигмы мультиадаптерного рендеринга. Как и в этих проприетарных технологиях, работающих на уровне драйвера под Direct3D 11, здесь несколько адаптеров представлены общими очередями команд: графика, вычисления общего назначения и очередь Copy для передачи данных по шине PCI Express. Проще говоря, игра «видит» несколько адаптеров как один, а принадлежность команды определенному GPU определяется так называемой маской узла.


Direct3D 12 Linked Node

Linked Node имеет несколько важных достоинств. В первую очередь, подразумевается общая архитектура и производительность узлов, что существенно упрощает задачу балансировки нагрузки. Также Linked Node позволяет узлам напрямую обращаться к оперативной памяти друг друга, минуя системную RAM. Наконец, при рендеринге методом AFR возможна передача кадров «ведущему» узлу через интерфейсы, отличные от PCI Express (то есть мостики SLI, поскольку AMD давно избавилась от специализированной шины в CrossFire).

В свою очередь, в Unlinked Node каждый узел предоставляет собственный набор очередей инструкций и допускает максимально гибкое управление ресурсами GPU. В частности, возможны асимметричные конфигурации из адаптеров неодинаковой мощности и различной архитектуры. Вполне жизнеспособна даже комбинация устройств AMD и NVIDIA в одной системе. Не менее заманчива возможность увеличить быстродействие дискретной графики за счет встроенного в центральный процессор GPU, который сможет выполнять финальные стадии обработки кадра (фактически, это частный случай конвейеризации кадров, и он не требует тщательной балансировки нагрузки, неизбежной в асимметричных связках GPU).

Переход графических адаптеров в Linked Node осуществляется на уровне драйвера, а для пользователя — включением опции SLI или CrossFire в настройках. Тем не менее не всякая игра сможет использовать адаптеры в Linked Node или, напротив, Unlinked Node. К примеру, Ashes of the Singilarity требует активации Unlinked Node, а остальные из наших тестов работают только в режиме Linked.


Direct3D 12 Unlinked Node

Чтобы получить Linked Node под Direct3D 12 на видеокартах NVIDIA, нужно связать их мостиком, иначе драйвер просто не даст включить SLI. Как сказано выше, Direct3D 12 позволяет использовать мостики по назначению в связанном режиме, но мы проверили: ни в одной из тестовых игр нет разницы по кадровой частоте между современным мостом HB SLI Bridge и простым гибким мостиком, которая в противном случае обязательно бы возникла. С одной стороны, это проблема, ведь мостик обеспечивает необходимую пропускную способность для передачи кадров между GPU в обход шины PCI Express даже в таких тяжелых режимах, как 4К. С другой, жесткие мостики с подсветкой, которые способны работать в двухканальном режиме и на повышенной частоте, — дорогое удовольствие, а в Direct3D 12 можно обойтись копеечным гибким интерфейсом.

Конфигурация тестового стенда
CPU Intel Core i7-5960X @ 4 ГГц (100 МГц × 40), постоянная частота
Материнская плата ASUS RAMPAGE V EXTREME
Оперативная память Corsair Vengeance LPX, 2133 МГц, 4 × 4 Гбайт
ПЗУ Intel SSD 520 240 Гбайт + Crucial M550 512 Гбайт
Блок питания Corsair AX1200i, 1200 Вт
Система охлаждения CPU Thermalright Archon
Корпус CoolerMaster Test Bench V1.0
Монитор NEC EA244UHD
Операционная система Windows 10 Pro x64
ПО для GPU AMD
Все видеокарты AMD Radeon Software Crimson ReLive Edition 18.6.1
ПО для GPU NVIDIA
Все видеокарты NVIDIA GeForce Game Ready Driver 398.11
Бенчмарки: игры
Игра (в порядке даты выхода) API Настройки, метод тестирования Полноэкранное сглаживание
1920 × 1080 / 2560 × 1440 3840 × 2160
GTA V DirectX 11 Макс. качество. Встроенный бенчмарк MSAA 4x + FXAA + Reflection MSAA 4x Выкл.
The Witcher 3: Wild Hunt DirectX 11 Макс. качество. FRAPS, локация Caer Morhen AA + HairWorks AA 4x
Rise of the Tomb Raider DirectX 11 / Direct3D 12 Макс. качество, VXAO выкл. Встроенный бенчмарк SSAA 4x
Tom Clancy's The Division DirectX 11 / Direct3D 12 Макс. качество, HFTS выкл. Встроенный бенчмарк SMAA 1x Ultra + TAA: Supersampling TAA: Stabilization
Deus Ex: Mankind Divided DirectX 11 / Direct3D 12 Макс. качество. Встроенный бенчмарк MSAA 4x
Battlefield 1 DirectX 11 / Direct3D 12 Макс. качество. OCAT, начало миссии Over the Top TAA
Ashes of the Singularity: Escalation DirectX 11 / Direct3D 12 Макс. качество. Встроенный бенчмарк MSAA 4x + TAA 4x
Total War: WARHAMMER II, встроенный бенчмарк DirectX 11 / Direct3D 12 Макс. качество. Встроенный бенчмарк (Battle Benchmark) MSAA 4x
Far Cry 5 DirectX 11 Макс. качество. Встроенный бенчмарк TAA

В набор бенчмарков вошли девять игр 2016–2017 годов выпуска, среди которых шесть способны работать под API Direct3D 12. К Direct3D 11 прикованы только относительно старые игры — GTA V и The Witcher 3: Wild Hunt, а также Far Cry 5.

Что касается совместимости с мультиадаптерными системами под Direct3D 11, то она исключена в Ashes of the Singularity, а Battlefield 1 не поддерживает CrossFire. В остальных играх SLI и CrossFire работоспособны под старым API.

В режиме Direct3D 12 две видеокарты задействованы в Ashes of the Singularity, Battlefield 1, Deus Ex: Mankind Divided и Rise of the Tomb Raider. Tom Clancy’s The Division и Total War: WARHAMMER II этой возможности лишены. Кроме того, в Deus Ex: Mankind Divided под Direct3D 12 не работает связка из двух ускорителей Vega 64, хотя нет никаких проблем с Radeon RX 580.


29 июля состоится релиз Windows 10. И в составе новой ОС мы увидим пакет API DirectX 12, который является эксклюзивным для данной версии.

DirectX 12 обещает быть прорывом в игровой индустрии, так как позволяет поднять уровень графики и производительности на новый уровень, независимо от конфигурации устройства, на котором оно запущено.

Более детально обо всех изменениях и нововведениях мы расскажем вам в нашей статье, посвященной DirectX 12.

“Свершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей.”


С выходом Windows 10 всем станет доступна новая версия API DirectX, которая сильно изменит производительность в играх в лучшую сторону. В отличие от предыдущих версий, для работы вам не потребуется новая видеокарта, так как почти все выпущенные GPU за последние несколько лет будут иметь поддержку Dx12.

Новая версия интерфейса для игр и мультимедийных приложений, которая будет работать на всех устройствах Microsoft: смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. DX12, давая доступ разработчикам к низкоуровневому программированию и улучшенной многопоточности, позволит улучшить производительность уже имеющегося железа в играх. По данным AMD, использование нового API позволяет увеличить количество обрабатываемых объектов в 16.5 раз по сравнению с DX11 при той же частоте кадров. А встроенная поддержка DX12 в Windows 10 сулит ему невероятную популярность. (c) Windows 10 - Восемь самых важных нововведений для геймера

Про DirectX

Перед тем как детально рассказать про Dx12 и все нововведения, напомню, что же такое DirectX, из каких частей состоит весь пакет этого API.

DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями. (c) Wikipedia

Основной библиотекой, в которой чаще всего происходят изменения и внедрение новых технологий, является Direct3D. С каждым важным апдейтом этой библиотеки весь пакет DirectX получает новый индекс. Самые важные нововведения в Dx12 сделаны именно в ней. Остальные библиотеки тоже обновлены, но никаких новых технологий в них почти нет, хотя Microsoft обещают что-то новое в будущих обновлениях DirectX.

В целом пакет DirectX подразделяется на такие библиотеки:

  • Direct2D - интерфейс вывода двухмерной графики.
  • Direct3D (D3D) - интерфейс вывода трёхмерных примитивов.
  • DirectInput - интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
  • DirectPlay - интерфейс сетевой коммуникации игр.
  • DirectSound - интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic - интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow - интерфейс, используемый для ввода/вывода аудио- и/или видеоданных.

Каждая новая версия DirectX приурочена к определенному важному техническому прорыву. В основном это новые версии шейдерных моделей, которые поддерживаются только определенными поколениями GPU и версиями Windows.

Ключевые особенности версий:

  • DirectX 6.0 — Мультитекстурирование
  • DirectX 7.0 — Аппаратная поддержка преобразований, обрезания и освещения
  • DirectX 8.0 — Шейдерная модель 1.1
  • DirectX 8.1 — Пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
  • DirectX 9.0 — Шейдерная модель 2.0
  • DirectX 9.0b — Пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
  • DirectX 9.0c — Шейдерная модель 3.0
  • DirectX 10 — Шейдерная модель 4.0
  • DirectX 10.1 — Шейдерная модель 4.1
  • DirectX 11 — Шейдерная модель 5.0
  • DirectX 11.1 — Шейдерная модель 5.1
  • DirectX 12 — API низкоуровневого рендеринга, улучшенная многопоточность, поддержка нескольких GPU на уровне API

Особенности и новые технологии в DirectX 12


Низкоуровневый доступ
Если раньше интерфейс DirectX был нацелен на универсальность и не давало разработчикам прямого доступа к низкоуровневым функциям видеокарты, то теперь благодаря новым процедурам вызова, доступ к ним открыт, и даже больше – если разработчики не используют их, драйверы смогут автоматически оптимизировать их использование для решения стандартных задач. Благодаря такому подходу, использование специфичных технологий видеокарт позволит увеличить производительность даже в старых играх, портированных на DX12.

Многопоточная оптимизация
DirectX 12 – первая из всех версий, которая оптимизирована под многопоточность на низком уровне. Игры смогут более равномерно нагружать все доступные ядра CPU, в связи с чем повышается производительность игры в целом. Уменьшается время на обработку основного потока игры, и также позволяет вызывать больше Draw-call. В итоге – на том же железе можно отрисовывать в разы больше объектов без понижения частоты кадров. DX 12 выжмет из вашего ПК весь потенциал!

Оптимизация многопоточности CPU








Использование нескольких GPU
Свершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей. Игры будут обращаться не к конкретному GPU за обработкой графики, а ко всему массиву видеокарт, доступных в системе, как к единому GPU.


Подтверждения того, можно ли будет объединить две дискретные видеокарты от AMD или Nvidia, пока нет, но сами компании демонстрируют совместную работу APU+GPU от AMD, или встроенного видео ядра Intel + дискретной карты Nvidia GTX. Возможно, нас ждут кроссбрендовые связки или использование видеокарт разных поколений в одной системе, что положит конец многолетней войне фанбоев AMD и Nvidia.


Главным достоинством объединения всех GPU в один кластер является возможность обработки каждого отдельного кадра всем массивом, что устраняет проблемы совместимости игр с Multi-GPU, а также позволяет не копировать видеопамять каждого устройства, а использовать ее совместно, то есть теперь объём памяти нескольких видеокарт суммируется!



Использование всего потенциала eSRAM (только Xbox One)
eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Если раньше было специальное API для работы с ней, то сейчас эти процедуры и функции встроены в Dx12, а доступ к ней оптимизирован, и более прост для конечных разработчиков. Поэтому нас ожидает увеличение производительности консоли, а также увеличения качества и быстродействия в будущих играх.


Обратная совместимость с DirectX 11 видеокартами
Большинство современных видеокарт, которые поддерживают DX 11.1, полностью совместимы с DX 12. Более ранние видеокарты будут поддерживать новое API только частично. Сейчас более 70% видеокарт, которые есть у геймеров, будут иметь полную или частичную поддержку всех нововведений. Полный список видеокарт, совместимых с DX 12, по заявлениям производителей, будет представлен в конце статьи.


DirectX 12 + встроенные и low-end GPU
Все преимущества DirectX 12 будут доступны не только игровым ПК c видеокартами последнего поколения, но и устройствам с бюджетными видеокартами или даже встроенными в процессоры GPU, например, ноутбукам и планшетам. Тесты, произведенные на Surface Pro 3 с процессором Core i5 с встроенным Intel 4400 GPU, показывают прирост производительности свыше 50% в графических приложениях и играх на примере специального бенчмарка, в котором частота кадров увеличилась с 19 FPS до 33 FPS, при использовании нового API.


4k + DirectX 12
Также нас ждет оптимизация работы с высокими разрешениями, и при переходе на DX12 средний уровень повышения производительности в разрешениях 4k составит 30-40 процентов. Такие числа назвал главный разработчик Project CARS - Ian Bell.


Похожие технологии

До выхода Dx12 некоторые компании представили свои API, схожие по функционалу, но ориентированные на конкретные GPU определенного производителя или на другие графические библиотеки, такие как OpenGL.

Mantle — спецификация низкоуровневого API, разработанная компанией AMD в качестве альтернативы DirectX и OpenGL. В настоящее время поддерживается лишь графическими процессорами AMD архитектуры GCN, хотя есть вероятность, что другие производители GPU могли бы реализовать её в будущем, но в связи с выходом Dx12, который поддерживается всеми производителями GPU на рынке, вероятность этого крайне мала. Ну а последним гвоздем в гроб может стать то, что, судя по тестам проведенным самой AMD, Dx12 работает быстрее их собственной технологии на их же видеокартах.

Vulkan API - изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания Khronos Group отказалась от этих наименований в пользу названия Vulkan. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D графикой, такие как игры или интерактивные книги, на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12 и Mantle. Vulkan основан на технологиях AMD в Mantle. Как и в прошлом OpenGL, в будущем Vulkan станет единственной достойной альтернативой DirectX и будет поддерживаться Open Source объединениями и такими гигантами игростроя, как Valve.

Список видеокарт с поддержкой DirectX 12 в настоящее время

Вместо заключения. Выводы

Если Microsoft и производители GPU выполнят свои обещания и не будут блокировать кросс-вендорные связки, как сейчас происходит с PhysX и Mantle, нас ждет технический прорыв. Спустя столько лет и разочарований вроде ПК версии Batman Arkham Knight, разработчики API и игр взялись за оптимизацию кода под имеющееся железо. Что еще нужно геймеру? Конечно, больше FPS бесплатно! Следующие поколения видеокарт будут оптимизированы еще больше под DX12 и будут иметь больше мегагерц и гигабайт, поддержку новых технологий, но играть комфортно в новые игры можно будет уже совсем скоро. Многие скажут, что игр под новый DirectX еще нет и не будет, и они будут почти правы. Но множество хитовых тайтлов этого года получат обновления для поддержки нового API после выхода Windows 10. А 90% игр, релиз которых состоится в конце этого года, уже заявили о его поддержке. А что будет на самом деле, узнаем в ближайшие месяцы, оставайтесь на связи!

DirectX 12 Multi-GPU: пока работает

Одно из самых важных нововведений в DirectX 12 – это так называемый «asymmetric multi-GPU», функция, позволяющая соединять и запускать вместе видеопроцессоры от разных брендов, при условии поддержки определенного общего уровня технологий (в случае Ashes of Singularity – это Direct3D 12_0). Для работы этой функции недостаточно иметь две видеокарты с поддержкой DirectX 12, нужно также использовать их на приложениях, которые поддерживают DirectX 12. Проще говоря, если вы думаете, что прошлогодние игры на DirectX 11 заработают быстрее с этой функцией – ну, в общем, вы думаете неправильно. Команда Anandtech решила проверить заявления Microsoft о работоспособности этой функции и собрала систему с несколькими видеочипами, используя карты Radeon R9 Fury X и GeForce GTX 980 Ti. Выводы получились интересные.

Для начала, действительно, самый распространенный метод работы с несколькими картами – AFR, когда каждая карта обрабатывает только определенную часть кадров – работает. При его включении появился больше чем 50-процентный прирост производительности, но, увы, далеко не такой большой, как если бы использовались карты одного бренда в связке CrossFire или SLI. Во-вторых, на производительность влияло то, какая из видеокарт выбрана как основная. В Anandtech обнаружили, что конфигурация, в которой основной была R9 Fury X (то есть, к ней был подключен монитор), а GTX 980 Ti была вторичной, работала немного быстрее, чем при обратном варианте. Также через Multi-GPU работает запуск разных видеопроцессоров одного производителя (к примеру, GTX 980 Ti и GTX TITAN X). В чем же главный и неоспоримый плюс этой функции? В том, что система с R9 Fury X и GTX 980 Ti во всех тестах вела себя абсолютно стабильно.

02

Остается только гадать, сколько продлится это идиллическое состояние индустриальных стандартов, и сколько пройдет времени, прежде чем (может быть) производители видеочипов обнаружат, что это не идет на пользу их коммерческой выгоде. Судя по всему, и AMD, и NVIDIA потратили на мультичиповую оптимизацию довольно много ресурсов. И также только в несколько отдаленном будущем мы точно узнаем, какую часть этих ресурсов они предпочтут пустить на обеспечение мультичиповой производительности в унифицированной системе, а сколько – на собственные разработки SLI и CrossFire.

03


Интересующимся подробностями и хорошо читающим по-английски мы предлагаем ссылку на полный отчет Anandtech о проведенных тестах.

Читайте также: