Содержание
Есть распространённое мнение о том, что nvidia занижает производительность своих старых видеокарт драйверами. В качестве подтверждения этому иногда приводятся доводы о том, что на старте продаж, в 2016 году, RX 480 были чуть слабее в играх, чем GTX 1060. А в настоящий момент именно RX 480 является лидером по производительности в этой паре.
Однако ранее на сайте было выложено два материала с тестами в которых проверялась данная гипотеза как с картами AMD, так и с картами Nvidia.
И в итоге выяснилось, что ни AMD ни Nvidia производительность не занижает, а даже наоборот.
У RX 470 между 2016 и 2020 годом поменялись даже стоковые частоты работы в большую сторону.

Если же говорить про игры, то производительность в среднем изменилась мало и по результатам 7 игр выроста в рамках 1%

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

Сравнивая результаты AMD и Nvidia на одной диаграмме можно увидеть следующее:

У nvidia чуть сильнее увеличились средние и медианные значения FPS, но почти не увеличились значения меньших 0.1 и 1% mFPS обратных от времени кадра.
У AMD — средние значения изменились меньше, а вот стабильность чуть увеличилась, за исключением самых длинных и редких микрофризов.
Но изменения эти столь незначительны друг относительно друга, что повлиять на расклад соотношений видеокарт не могут.
То есть исходя из проведённых исследований можно сделать вывод, что драйвера в том что RX догнали GTX не причём.
Так в чём же тогда дело?
А получается это из-за того, что архитектура GCN у AMD вышла довольно универсальной и удачной для своего времени. При этом архитектура довольно гибкая для вычислений, но для игр она как-то не пошла настолько, насколько могла, API обращались к ней не оптимальным образом.
Собственно огромная вычислительная мощность заложенная в карты видна и по заявленным цифрам Терафлопс, которые всегда выше были у AMD с сопоставимыми по игровой производительности видеокартами от Nvidia, и майнеры эту вычислительную мощь тоже быстро освоили, а в играх заявленных преимуществ в вычислениях видно не было.
GTX 1060 | RX 470 |
4.35 TFlops | 5.8 TFlops |
Но время шло, видеокарты начинали выполнять всё больше работы в играх которые ранее выполнял процессор. Сейчас уже обсчет значительной части физики, пересечения геометрии, расчёт деформаций, генерация и расчёт частиц в основном выполняется видеокартой и всё это параллельно традиционным работам с отрисовкой, то есть когда надо на основе теней и света разукрасить картинку, вдобавок сильно усложняются алгоритмы построения процедурных затенений и освещения, не говоря уже про ресурсоёмкость алгоритмов трассировки, которая использовалась и до DXR, просто требовала того чтобы разработчики игр сами писали математику этих процессов. Всё это привело к тому, что видеокарта должна была стать более независимым элементом компьютера с более качественными API работающими с графикой на более низком уровне, позволяя занимать потоки графики более разнообразными текущими задачами, что, учитывая малое количество планировщиков на огромное число ядер сделать не так то просто. То есть требования к видеокарте изменились, в современном мире — видеокарта это не та штука которая просто отрисовывает подготовленные кадры как это было раньше.
Это не вчера появилось и не 3 года назад, а со времён первых CUDA ядер, но в последние годы на видеокарту стали наваливать вообще практически всё, потому что центральный процессор мало для чего подходит в играх, потому что однотипных задач всё равно очень много, а процессоры их так медленно декодируют, что толку от центральных процессоров во многих задачах нет, даже то что сейчас есть длинные инструкции собирающие группы однотипных векторных операций идущих паровозом — это капля в море для игр.

То есть индустрия требовала изменений для дальнейшего развития и они были реализованы в DX 12 и API Vulkan. Новые API были написаны для того, чтобы взять все эти задачи, которые свалились на голову видеокартам и оптимизировать их выполнение путём более низкоуровневого общения с графическим чипом. И так вышло, что видеокарты от AMD уже имели и большую вычислительную мощность, которая стала ещё важнее для карт и имели более гибкие возможности у планировщиков, для того чтобы задействовать эти мощности при наличии одновременно решаемых разных задачах.
Со временем больше игр стали использовать новые API и более приспособленные для них RX получили от этого больше профита.
Тесты
Чтобы увидеть насколько RX стал оптимальнее для новых API надо сделать довольно простые тесты.
Взять драйвера 2016 года и игры 2016 и более старые.
А потом взять драйвера 2020 года и самые современные игры.
И сравнить разницу между видеокартами.

До этого мы уже сравнивали производительность одних и тех же видеокарт в старых играх, теперь же я предлагаю эти же результаты тестов использовать для сравнений но уже между видеокартами.
То есть тут мы посмотрим на то как отличались по производительности GTX 1050 Ti и RX 470 в 2016 году в тех играх которые могли бы в тестах в 2016 году и с теми драйверами, которые были в то время.
GTA V
Самая старая игра в сравнении.
И в ней между RX 470 и GTX 1050 Ti разница около 6%.

Ashes of the Singularity: Escalation
Ещё одна игра со старыми. Хотя в ней есть и DX 12, но тесты были на 11. Разница — около 16%.

Ведьмак 3
Также DX 11. Разница между картами — около 25%

Watch Dogs 2

Ещё одна игра с DX11 и разница между картами около 17%
В более современных к тому моменту играх и разница уже стала выше.
Tom Clancy’s Rainbow Six Siege

Разница около 36%
Rise of the Tomb Raider

DirectX 12. Разница около 33%.
The Division

DX12. Разница порядка 40%
Уже тут видно как даже в 2016 году между старыми и новыми играми появляется не малая разница.

А в среднем по всем 7 играм между RX 470 и GTX 1050 Ti в 2016 году разница составила 25%.

Тесты в новых играх
Новых игр я не набрал у себя 7 штук, которые имеют приличную повторяемость результатов, игр только 5.
Far Cry 5

Разница между картами — 25% и забегая вперёд скажу, что среди блока новых игр именно в этой разрыв между картами наименьший.
World War Z

API Vulkan, разница составила 39%.
Shadow of the Tomb Raider

DX12 — разница 33%.
The Division 2

DX 12 — разница около 32%.
Red Dead Redemption 2
Последняя игра в тесте. С тестом возникли сложности, почему-то на картах от nvidia. Естественно она была отключена в меню. Принудительное отключение синхронизации в панели управления Nvidia также не дало результатов.
Правда в игре не вертикальная синхронизация, а что-то на подобии FastSync когда нет лока кадров, которые бы увеличивали импут лаг, то есть FPS может быть выше развёртки экрана и FPS свободно меняется во времени и многие и не заподозрили бы, что синхронизация включена, но её палят два фактора — во первых периодические долгие кадры в моменты после задержек кадров на вывод, и как следствие на этапе первых обращений к API на отрисовку они выглядят как фризы. А второе — это то, что я снимаю врем кадра по экранному времени, то есть по фактическому времени кадров выведенных на дисплей и вот с картами от Nvidia синхронизация не отключается, то есть у меня мгновенный FPS каждого кадра является делителем значения развёртки монитора.

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

Суммарная погрешность хронометража теста после исправления данных составила около 6 мс на длительности тестовой сцены более 132 тысяч миллисекунд. То есть коррекция пар кадров была выполнена с точностью до округлений значений времени при математических операциях над ними.
По графикам распределения вероятности видно, что график всё равно недостаточно гладкий, то есть дефекты синхронизации полностью не исправлены, для вычисления меньших 0,1 — это не подойдёт, но для остальных значений восстановленных данных — хватит.

В RDR2 разница между GTX 1050 Ti и RX 470 составляет 34-36%.

Выводы
И в среднем по 5 современным играм разница — 33%, тогда как в играх до 2016 разница была 25%. При этом в играх 2016 года с новыми драйверами и AMD и nvidia разница была бы 23%, а не 25.


И Turing, когда вышел, имел уже более оптимальную архитектуру под одновременное выполнение и вычислительных и графических задач, так что причина того что со временем 16 и 20 поколение стало сильнее отрываться от 10 тоже самое, что и показанное выше, а не в том что nvidia что-то делает с драйверами 10 серии.
А причина в том, что изменились требования к самому железу в играх, изменились API работающие с этим железом, новые видеокарты от nvidia вышли с учётом этих реалий, архитектура GCN, от AMD опередив эти требования тоже показала себя с лучшей стороны.
Видео на YouTube канале "Этот компьютер"














497 Comments on “Почему Radeon RX догнали Nvidia GTX Pascal”