Как работают видеокарты?
С тех пор, как 3dfx представила оригинальный ускоритель Voodoo, ни один элемент оборудования на ПК не оказал такого сильного влияния на возможность игры на вашей машине, как скромная видеокарта. В то время как другие компоненты имеют огромное значение, топовый ПК с 32 ГБ ОЗУ, ЦП за 4000 долларов и хранилищем на базе PCIe задохнется и умрет, если его попросят запустить современные игры AAA на карте десятилетней давности с современными разрешениями и уровнями детализации. . Графические карты, также известные как графические процессоры (графические процессоры), имеют решающее значение для производительности игр, и мы подробно их рассмотрим. Но мы не часто вникаем в то, что заставляет GPU работать и как работают карты.
По необходимости, это будет общий обзор функциональности графических процессоров и общая информация для интегрированных графических процессоров AMD, Nvidia и Intel, а также для любых дискретных карт, которые Intel может построить в будущем на основе архитектуры Xe. Он также должен быть общим для мобильных графических процессоров, созданных Apple, Imagination Technologies, Qualcomm, ARM и другими поставщиками.
Почему мы не запускаем рендеринг с помощью ЦП?
Первый момент, который я хочу затронуть, - это то, почему мы вообще не используем процессоры для рендеринга рабочих нагрузок в играх. Честный ответ на этот вопрос заключается в том, что вы можете запускать рабочие нагрузки рендеринга непосредственно на ЦП. Ранние 3D-игры, предшествовавшие повсеместному распространению видеокарт, такие как Ultima Underworld, полностью работали на центральном процессоре. UU является полезным эталонным вариантом по нескольким причинам - у него был более продвинутый движок рендеринга, чем в таких играх, как Doom, с полной поддержкой просмотра вверх и вниз, а также с такими расширенными функциями, как наложение текстур. Но за такую поддержку пришлось заплатить высокую цену - многим людям не хватало ПК, на котором можно было запускать игру.
На заре развития 3D-игр многие игры, такие как Half-Life и Quake II, имели программный рендеринг, позволяющий игрокам без 3D-ускорителей воспроизводить игру. Но причина, по которой мы отказались от этой опции в современных играх, проста: процессоры спроектированы как микропроцессоры общего назначения, что является еще одним способом сказать, что им не хватает специального оборудования и возможностей, которые предлагают графические процессоры. Современный ЦП мог легко справиться с названиями, которые имели тенденцию к заиканию при работе в программном обеспечении 18 лет назад, но ни один ЦП на Земле не мог легко справиться с современной игрой AAA с сегодняшнего дня, если запустить в этом режиме. По крайней мере, без кардинальных изменений сцены, разрешения и различных визуальных эффектов.
В качестве забавного примера: Threadripper 3990X может запускать Crysis в программном режиме, хотя и не так хорошо.
Что такое графический процессор?
Графический процессор - это устройство с набором определенных аппаратных возможностей, которые предназначены для точного сопоставления с тем, как различные 3D-движки выполняют свой код, включая настройку и выполнение геометрии, отображение текстур, доступ к памяти и шейдеры. Существует взаимосвязь между тем, как работают 3D-движки, и тем, как разработчики графических процессоров создают оборудование. Некоторые из вас, возможно, помнят, что в семействе AMD HD 5000 использовалась архитектура VLIW5, а в некоторых высокопроизводительных графических процессорах семейства HD 6000 использовалась архитектура VLIW4. Создав GCN, AMD изменила свой подход к параллелизму во имя повышения полезной производительности за такт.
В архитектуре AMD, последовавшей за GCN, RDNA, вдвое больше использовалась идея усиления IPC, при этом инструкции отправляются каждый такт. Это улучшило IPC на 25 процентов. RDNA2 основывалась на этих достижениях и добавляла такие функции, как огромный кэш L3, для дальнейшего повышения производительности.
Nvidia впервые ввела термин «графический процессор» с запуском оригинальной GeForce 256 и ее поддержки для выполнения аппаратных преобразований и вычислений освещения на графическом процессоре (это примерно соответствовало запуску Microsoft DirectX 7). Интеграция специализированных возможностей непосредственно в оборудование была отличительной чертой ранних технологий GPU. Многие из этих специализированных технологий все еще используются (в самых разных формах). Более энергоэффективно и быстрее иметь выделенные ресурсы на кристалле для обработки определенных типов рабочих нагрузок, чем пытаться выполнять всю работу в едином массиве программируемых ядер.
Между ядрами GPU и CPU есть ряд различий, но на высоком уровне вы можете думать о них так. ЦП обычно предназначены для максимально быстрого и эффективного выполнения однопоточного кода. Такие функции, как SMT / Hyper-Threading, улучшают это, но мы масштабируем многопоточную производительность за счет размещения более эффективных однопоточных ядер бок о бок. 64-ядерные / 128-поточные процессоры AMD Epyc - самые большие из доступных сегодня. Для сравнения: самый младший графический процессор Pascal от Nvidia имеет 384 ядра, а процессор x86 с максимальным количеством ядер на рынке - 64. «Ядро» на языке графического процессора - это процессор гораздо меньшего размера.
Примечание. Вы не можете сравнить или оценить относительную игровую производительность между AMD, Nvidia и Intel, просто сравнив количество ядер графического процессора. В одном и том же семействе графических процессоров (например, серии GeForce GTX 10 от Nvidia или семейства AMD RX 4xx или 5xx) большее количество ядер графического процессора означает, что графический процессор более мощный, чем карта более низкого уровня. Сравнение на основе FLOPS подозрительно по причинам, обсуждаемым здесь.
Причина, по которой вы не можете сделать немедленных выводов о производительности графических процессоров между производителями или семействами ядер, основываясь исключительно на количестве ядер, заключается в том, что разные архитектуры более и менее эффективны. В отличие от процессоров, графические процессоры предназначены для параллельной работы. И AMD, и Nvidia структурируют свои карты в блоки вычислительных ресурсов. Nvidia называет эти блоки SM (Streaming Multiprocessor), а AMD называет их вычислительным блоком.
ОК
Каждый блок содержит группу ядер, планировщик, файл регистров, кэш инструкций, кэш текстуры и L1, а также блоки отображения текстуры. SM / CU можно рассматривать как наименьший функциональный блок графического процессора. Он не содержит буквально все - механизмы декодирования видео, выходные данные рендеринга, необходимые для фактического рисования изображения на экране, и интерфейсы памяти, используемые для связи со встроенной VRAM, - все это выходит за рамки его компетенции, но когда AMD ссылается на APU как на имеющую 8 или 11 вычислительных блоков Vega, это (эквивалентный) блок кремния, о котором они говорят. А если вы посмотрите на блок-схему графического процессора, любого графического процессора, вы заметите, что именно SM / CU дублируется на изображении десятки или более раз.
Чем выше количество модулей SM / CU в графическом процессоре, тем больше работы он может выполнять параллельно за такт. Рендеринг - это тип проблемы, который иногда называют «досадно параллельным», что означает, что он может очень хорошо масштабироваться при увеличении числа ядер.
Когда мы обсуждаем конструкции графических процессоров, мы часто используем формат, который выглядит примерно так: 4096: 160: 64. Количество ядер графического процессора - это первое число. Чем он больше, тем быстрее графический процессор, при условии, что мы сравниваем в одном семействе (GTX 970 против GTX 980 против GTX 980 Ti, RX 560 против RX 580 и т. Д.).
Вывод текстур и рендеринг
Есть два других основных компонента графического процессора: блоки наложения текстуры и выходные данные рендеринга. Количество блоков наложения текстуры в дизайне определяет максимальный вывод текселей и то, как быстро он может адресовать и отображать текстуры на объектах. В ранних 3D-играх использовалось очень мало текстурирования, потому что рисовать 3D-многоугольники было достаточно сложно. На самом деле текстуры не требуются для 3D-игр, хотя список игр, в которых они не используются в наше время, чрезвычайно мал.
Число блоков отображения текстуры в графическом процессоре обозначено второй цифрой в метрике 4096: 160: 64. AMD, Nvidia и Intel обычно меняют эти числа одинаково при масштабировании семейства графических процессоров вверх и вниз. Другими словами, вы действительно не найдете сценария, в котором один графический процессор имеет конфигурацию 4096: 160: 64, а графический процессор над или под ним в стеке имеет конфигурацию 4096: 320: 64. Отображение текстур может быть узким местом в играх, но следующий по величине графический процессор в стеке продуктов обычно предлагает по крайней мере больше ядер графического процессора и блоков сопоставления текстур (будут ли более дорогие карты иметь больше ROP, зависит от семейства графических процессоров и конфигурации карты. ).
Выходы рендеринга (также иногда называемые конвейерами растровых операций) - это когда выходные данные графического процессора собираются в изображение для отображения на мониторе или телевизоре. Количество выходных данных рендеринга, умноженное на тактовую частоту графического процессора, определяет скорость заполнения пикселей. Большее количество ROP означает, что одновременно может выводиться больше пикселей. Блоки ROP также обрабатывают сглаживание, и включение АА - особенно АА с суперсэмплингом - может привести к игре с ограниченной скоростью заполнения.
Пропускная способность памяти, объем памяти
Последние компоненты, которые мы обсудим, - это пропускная способность памяти и объем памяти. Пропускная способность памяти означает, сколько данных можно копировать в выделенный буфер видеопамяти графического процессора и из него в секунду. Многие продвинутые визуальные эффекты (и более высокие разрешения в целом) требуют большей пропускной способности памяти для работы с разумной частотой кадров, поскольку они увеличивают общий объем данных, копируемых в ядро графического процессора и из него.
В некоторых случаях недостаточная пропускная способность памяти может быть существенным узким местом для графического процессора. APU AMD, такие как Ryzen 5 3400G, сильно ограничены пропускной способностью, а это означает, что увеличение тактовой частоты DDR4 может оказать существенное влияние на общую производительность. Выбор игрового движка также может существенно повлиять на то, какая пропускная способность памяти требуется графическому процессору, чтобы избежать этой проблемы, как и целевое разрешение игры.
Общий объем встроенной памяти - еще один важный фактор в графических процессорах. Если объем VRAM, необходимый для работы на заданном уровне детализации или разрешении, превышает доступные ресурсы, игра часто все равно будет запускаться, но для хранения дополнительных данных текстуры придется использовать основную память ЦП, а это займет у GPU значительно больше времени. для извлечения данных из DRAM, а не из встроенного пула выделенной VRAM. Это приводит к сильному заиканию, поскольку игра колеблется между извлечением данных из быстрого пула локальной памяти и общей системной оперативной памяти.
Следует помнить, что производители графических процессоров иногда оснащают карты младшего или среднего уровня большим объемом видеопамяти, чем обычно, в качестве способа немного дороже за продукт. Мы не можем сделать однозначного прогноза относительно того, сделает ли это графический процессор более привлекательным, потому что, честно говоря, результаты варьируются в зависимости от рассматриваемого графического процессора. Что мы можем вам сказать, так это то, что во многих случаях не стоит платить больше за карту, если единственная разница - больший буфер RAM. Как показывает практика, графические процессоры более низкого уровня, как правило, сталкиваются с другими узкими местами до того, как их захлебнет ограниченная доступная память. В случае сомнений проверьте отзывы о карте и сравните, уступает ли версия 2 ГБ версии 4 ГБ или любой другой соответствующий объем оперативной памяти. Чаще всего, предполагая, что все остальное у этих двух решений одинаково, вы обнаружите, что более высокая загрузка оперативной памяти не стоит того, чтобы платить.
Ознакомьтесь с нашей серией wfoojjaec Explains, чтобы получить более подробное описание самых актуальных технических тем на сегодняшний день.
Читать далее
Ученые разработали спрей для носа, который может вылечить коронавирус
В недавно опубликованном исследовании смесь оказалась эффективной для дезактивации нового коронавируса до того, как он смог заразить клетки.
Как работают SSD?
Вы когда-нибудь задумывались, как твердотельные накопители читают и записывают данные или что определяет их производительность? Наш технический специалист поможет вам.
Как работают кэши ЦП L1 и L2 и почему они являются неотъемлемой частью современных микросхем
Вам когда-нибудь было любопытно, как работает кеш L1 и L2? Мы рады, что вы спросили. Здесь мы глубоко погружаемся в структуру и природу одного из самых фундаментальных проектов и инноваций вычислительной техники.
Новый процессор Qualcomm Snapdragon 888 будет работать на флагманских телефонах Android в 2021 году
888 оснащен новым процессором, интегрированным 5G и мощным графическим процессором. Это станет самым значительным обновлением флагманской системы на кристалле (SoC) Qualcomm за последние годы.