Почему AMD работает с DirectX 12 лучше, чем Nvidia

После релиза Ashes of the Singularity возникла масса разговоров относительно впечатляющих результатов на GPU от AMD среднего ценового диапазона, который достиг результатов топовой графики от Nvidia, при этом последняя не представила значительного скачка производительности.

Пользователь ‘Mahigan’ с форума Overclock.net пролил немного света на различия в результатах AMD и Nvidia. В качестве подмоги есть даже несколько слайдов от самой AMD на данную тему.

Mahigan пишет, что Искажение Асинхронного Потока позволяет выставлять 31 вычислительную задач и 1 графическую задачу, тогда как GCN 1.1/1.2 от AMD состоит из 8 асинхронных вычислительных движков, каждый из которых позволяет выставлять по 8 задач в очереди, или 64 в общей сложности. Графическая задача также осталась одна, выполняемая графическим командным процессором.

По сути, это значит, что в отношении параллельных вычислений, чипы GCN (Graphic Core Next) должны превосходить прямых конкурентов Maxwell, что и было представлено в демо Ashes of the Singularity.

Уже давно известно, что Nvidia работает ощутимо лучше под DirectX 11, связано это с тем, что их GPU лучше справляются с Серийным Планированием, нежели с Параллельным Планированием.

Вот что пишет Mahigan относительно результатов тестирования:

"Людям было интересно, почему Nvidia лучше работает в DX11, чем DX12. Это связано с тем, что Nvidia оптимизировала свой DX11-путь в драйверах для Ashes of the Singularity. С DX12 нет оптимизации в драйверах, так как игровой движок почти полностью напрямую говорит с графическим железом. Поэтому оптимизации не производилось. Nvidia положилась на талант программистов и архитектуру Maxwell с параллельными потоками в DX12. Разработчики затачивали параллельную поточность в Ashes, чтобы эффективней вызывать эти объекты на экране. Таким образом, то что мы видим с Nvidia – это бутылочное горлышко возникающее в DirectX 12. Nvidia использует оптимизацию в DX11 путем приоритета нагрузки и смены шейдеров. Да, драйвер Nvidia включает компилятор, который ре-компилирует и меняет шейдеры, которые не подстроены под их архитектуру – одна игра за раз. Драйвер Nvidia также мульти-поточен и использует свободные ядра CPU для рекомпиляции/замены шейдеров. Та работа, которую Nvidia осуществляет в софте под DirectX 11, осуществляется AMD на железе под DX12 при помощи асинхронных вычислительных движков."

Что все это значит?

Если простым языком, то архитектура AMD отлично подходит для DirectX 12. 
Хотя Nvidia очень хорошо справляется с работой на DX12, их архитектура требует полной переработки, чтобы использовать огромный потенциал DX12, который сейчас у них упирается в пошаговую оптимизацию, а не параллельные вычисления.

Nvidia предстоит изменить архитектуру своих будущих GPU, если, конечно, они не убедят разработчиков использовать техники работы с DX12, которые выгодны Nvidia, и лишают AMD скачка производительности.

Больше статей на Shazoo
Тэги: