Guest User

Что такое раскрытие потенциала видеокарт AMD или почему драйвера ни при чём

a guest
Sep 14th, 2020
2,492
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Что такое раскрытие потенциала видеокарт AMD или почему драйвера ни при чём
  2.  
  3. С переходом на новые API Dx12 и Vulcan игроки заметили, что видеокарты AMD, в том числе старый GCN на 28 нм, получили бонус в производительности. В то же время видеокарты Nvidia старше Паскалей, наоборот, просели или в лучшем случае ничего не выиграли. Отсюда возникли мифы о неком потенциале AMD, который постепенно раскрывается с новыми драйверами, и о том, что Nvidia искусственно занижает производительность старых видеокарт чтобы разводить игроков на покупку новых. В этой заметке мы детально разберёмся, что скрывается за полумифическим потенциалом AMD и действительно ли Nvidia портит свои продукты.
  4.  
  5. В далёком 2007 году вышли первые видеокарты ATI с архитектурой TeraScale. В ней инженеры заложили направление развития, которому AMD следовала вплоть до выхода RDNA в 2019 году, а именно: максимальная вычислительная мощность чипа при данном числе транзисторов.
  6.  
  7. Архитектура TeraScale использовала VLIW5-инструкции (very long instruction word), то есть в одной длинной инструкции было сразу пять команд для пяти потоковых процессоров. Поэтому процессоры группировались по 5 в блоки SPU, которые собирались по 16 в SIMD-ядра. Каждое SIMD-ядро выполняло волну64 за 4 такта (64/16=4). Распараллеливание инструкций было переложено на компилятор, за счёт чего удалось значительно упростить управляющую обвязку ядер и разместить максимальное их количество на чипе. Проблема в том, VLIW5-инструкции не удавалось стабильно забивать командами. В среднем было задействовано 3,4 процессора из 5, то есть 68%.
  8.  
  9. В GCN инженеры отказались от VLIW и стали использовать более гибкие аппаратные планировщики, которые на ходу распределяли инструкции по SIMD-ядрам. Компилятор значительно упростился и в некоторых случаях видеокарту даже удавалось целиком загрузить. Однако для экономии каждые четыре SIMD-ядра по очереди обслуживались лишь одним планировщиком (для сравнения в Паскалях при том же числе потоковых процессоров планировщиков было вдвое больше, а в Тьюрингах в четыре раза больше). В играх длинные волны64 (у Nvidia они вдвое короче) часто забивались не полностью и часть потоковых процессоров простаивала, а для их дозагрузки приходилось ждать несколько тактов пока освободится планировщик. Это вело к неполной загрузке и большим задержкам.
  10.  
  11. Получается, с 2007 года и до появления RDNA в 2019 году видеокарты AMD хронически недогружались в играх. Это и есть тот самый нераскрытый потенциал. Теперь посмотрим, каким образом он раскрылся.
  12.  
  13. В Dx11 существовала лишь одна очередь команд для видеокарты. При её выполнении неизбежно возникали ситуации, когда основную работу выполняли блоки наложения текстур, ROPы и т.д., а потоковые процессоры простаивали. В Dx12 и Vulcan появилось несколько очередей инструкций разных типов. Теперь графический процессор мог одновременно выполнять инструкции из разных очередей чтобы его отдельные блоки не простаивали зря. В народе это называется асинхронными вычислениями, хотя строго говоря они не очень-то и асинхронные.
  14.  
  15. Инженеры AMD понимали, что GCN непросто нагрузить целиком, и с самого начала предусмотрели несколько движков (Multi-Engine в терминах Dx12). Они могут на уровне железа одновременно обрабатывать несколько очередей инструкций и раскидывать команды разным CU чтобы они меньше простаивали. В Dx11 их возможности никогда не использовались целиком, но с приходом Dx12 и Vulcan видеокарты AMD стали более равномерно нагружаться. Кроме того, GCN позволяет безболезненно менять контекст. Если CU ждёт результатов вычислений другого CU, то он может сохранить промежуточные данные и переключиться на другую задачу, а затем вернуться к первой. Наконец, GCN может менять приоритет вычислительных и графических задач устраняя узкие места, а RDNA научился полностью останавливать одну задачу в пользу другой. Поэтому видеокарты AMD с новыми API стали показывать себя лучше, ведь поддержка новомодных особенностей у них изначально была на уровне железа.
  16.  
  17. Что касается Nvidia, то она ещё в Кеплере отказалась от мощных аппаратных движков, переложив их работу на драйвер. Благодаря этому чипы стали проще и энергоэффективнее, и в эпоху Dx11 это работало хорошо. Однако младшие Кеплеры поддерживали только одну очередь инструкций. Только старшие Кеплеры (GTX 780/780 Ti и TITAN) и Максвеллы получили поддержку нескольких вычислительных очередей, да и то под проприетарным API CUDA. Динамическое изменение приоритета вычислений и графики завезли только в Максвелле, но так, что лучше бы не завозили. Если в GCN при смене контекста промежуточные данные сохранялись в кеше, то у Максвелла в оперативной памяти с чудовищными задержками.
  18.  
  19. Более-менее вменяемую поддержу Multi-Engine реализовали начиная с Паскалей. И то в Паскале число вычислительных и графических очередей ограничили 32, в то время как уже в GCN 1 поколения времён царя Гороха их было 64, а в следующем поколении вообще без ограничений. Поэтому Nvidia отключила поддержку асинхронных вычислений в Кеплерах и Максвеллах, драйвер попросту сливал несколько очередей инструкций в одну. В Паскале Multi-Engine работают, но толку от этого меньше, чем у AMD, и только Тьюринг действительно хорошо себя показывает в новых API.
  20.  
  21. Итого, видеокарты AMD хронически недогружались в эпоху Dx11, но новые API с помощью продвинутых движков смогли улучшить использование ресурсов чипа. Это и есть «раскрытие потенциала». А вот старые видеокарты Nvidia, заточенные под Dx11, на уровне железа не позволяют извлечь выгоду из нескольких очередей инструкций, поэтому с переходом на новые API они в лучшем случае показывают ту же производительность, а нередко даже просаживаются. Это и есть «занижение драйверами».
  22.  
  23. Не разобравшись в подобных тонкостях многие игроки сочинили себе сказки о драйверах, которые в одном случае стали лучше, а в другом намеренно хуже. Эти самые драйвера стали способом объяснить что угодно, совсем как фактор X в вялотекущей шизофрении. Обходите вялотекущих адептов секты свидетелей драйверов стороной.
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×