Что такое кэш память шейдера amd

Вопрос настройки AMD Radeon для игр хотя бы раз возникал у пользователей игровых видеоадаптеров. Недостаточно просто воткнуть GPU в компьютер, в таком случае многие современные игры могут по-прежнему тормозить. Поэтому требуется первоначальная настройка драйвера графического ускорителя.

Вводная по теме и статье

В связи с тем, что статья периодически обновляется и поддерживается в актуальном состоянии (насколько это возможно), но не переписывается целиком, то здесь Вы можете найти две версии описываемых драйверов и настроек для видеокарт.

Одна из них, ведет речь про «старые» драйвера для соответствующих карт и ПО, а так же для внутренней прослойки и интерфейса (иногда до него можно набраться на определенных системах, типах драйверов и пр), т.е речь про AMD Catalyst Control Center, который Вы можете видеть на скриншоте выше.

Вторая версия (под другим подзаголовком) описывает визуальный и логичестический вид более новой версии, а именно AMD Radeon Software (он же, в разные периоды времени, — Crimson, Crimson Relive и тд и тп). Его Вы можете видеть ниже (кликабельно):

Так или иначе, независимо от используемого типа программного обеспечения (а и первый, и второй, это как раз окружение драйвера), настройки (под ними понимаются те самые выборки, кеш-память шейдера, анизотропная фильтрация и многое другое), по своему смысловому содержанию, сходны и именно они играют ключевую роль.

Поэтому последние, вынесены в отдельный подзаголовок, содержание после которого, является наиболее общим (в том числе для всех видеокарт) и актуальным.

С чего начать? С драйверов!

Версия драйвера, иногда, имеет большое значение на производительность видеокарты. Если у вас не установлены “родные” драйвера от AMD (с ” AMD Catalyst Control центром ") , то вы не сможете их настроить под себя.

Такое может произойти, например, если после установки Windows вы не обновили драйвера. Проверить так ли это — очень легко, попробуйте нажать на рабочем столе, в любом месте, правую кнопку мышки — есть ли во всплывшем меню ссылка на настройку драйвера (обычно это: "AMD Catalyst Control Centr", либо "Свойства графики" — см. рис. 1 ниже) .

Поэтому простой совет, прежде чем начинать настраивать видеокарту — обновите драйвера (ссылка приведена выше): возможно появились новые функции и параметры, которые помогут оптимизировать работу вашего железа.

Кстати, лет 15 назад, была у меня видеокарта ATI Radeon (точную модель сейчас не назову). Суть в том, что кроме официальных драйверов, были драйвера "не официальные" — Omega Drivers (кстати, отличный пакет драйверов).

Так вот, установив эти драйвера и включив максимальную производительность (в их настройках) — можно было существенно увеличить производительность видеокарты!

Не мог никак пройти один уровень в игре, т.к. он жутко "тормозил" (FPS: 27-30). После установки Omega Drivers и их настройки, FPS поднялся до 36-40. Не много, но уровень пройти это позволило.

Прим. : сейчас устанавливать Omega Drivers — нет смысла (это была не реклама, просто показательный пример).

С чего начать? С драйверов!

Версия драйвера, иногда, имеет большое значение на производительность видеокарты. Если у вас не установлены «родные» драйвера от AMD (с » AMD Catalyst Control , либо «Свойства графики» — см. рис. 1 ниже) .

Статья о программах и утилитах для обновления драйверов — https://ocomp.info/update-drivers.html

Поэтому простой совет, прежде чем начинать настраивать видеокарту — обновите драйвера (ссылка приведена выше): возможно появились новые функции и параметры, которые помогут оптимизировать работу вашего железа.

Заметка о важности «дров».

Кстати, лет 15 назад, была у меня видеокарта ATI Radeon (точную модель сейчас не назову). Суть в том, что кроме официальных драйверов, были драйвера «не официальные» — Omega Drivers (кстати, отличный пакет драйверов).

Так вот, установив эти драйвера и включив максимальную производительность (в их настройках) — можно было существенно увеличить производительность видеокарты!

Не мог никак пройти один уровень в игре, т.к. он жутко «тормозил» (FPS: 27-30). После установки Omega Drivers и их настройки, FPS поднялся до 36-40. Не много, но уровень пройти это позволило.

Прим. : сейчас устанавливать Omega Drivers — нет смысла (это была не реклама, просто показательный пример).


Заключение

Вот и все, ребята! Надеюсь, вам понравилась серия, и вы заметили, что CPU и GPU оба многоядерные, но каждый специально разработан и настроен для разных вариантов использования. Другая интересная вещь — это то, как модель программирования повлияла на аппаратный дизайн и наоборот — и как мы находимся на пути к конвергенции. Код современного GPU, как правило, отлично работает на современных процессорах. Он достаточно хорошо написан, чтобы использовать преимущества многих ядер, может обрабатывать неравномерный доступ к памяти и легко справляться с малыми гарантиями попадания в кэш. Куда мы направляемся? Я не знаю, но знания о вычислительных шейдерах и моделях исполнения GPU помогут подготовиться к тому, что впереди!

Тесты удвоения объёма кеша L3 процессора

Зачем нужен кэш и как он влияет на производительность?

Современный процессор является сложным устройством, которое выполняет множество действий для решения поставленной задачи. И делает это всё современный процессор очень быстро. Настолько, что даже несмотря на название «оперативная память», память эта недостаточно оперативная. Если бы процессор всегда ждал данных из оперативной памяти, то ему приходилось бы простаивать по несколько десятков, а временами, и сотен тактов не делая ничего. Подобное поведение сделало бы любые улучшения внутри ядер процессора полностью бесполезными. И, если посмотреть в историю развития процессоров, проблема эта с ростом производительности процессоров становилась всё более острой. Вначале появлялись опциональные чипы кэша процессора, то есть места на плате куда можно установить чип памяти кеша L2. С ростом производительности такая «опция» уже перестала появляться, так как потери производительности без него становились слишком большими. Та же судьба была и у L3, который так же был вначале прерогативой серверных решений и располагался вне процессора и только с развитием полупроводникового производства на общем кристалле с ядрами стало достаточно места чтобы разместить ещё и кэш L3.

Кэши L2 и L3 позволяют получать процессору данные максимально быстро. В современных моделях задержки достигают единиц наносекунд. Что, в прочим, тоже для процессора довольно долго. Но современные архитектуры процессоров на подобные задержки и рассчитаны. Естественно процессор не будет пропускать по несколько тактов работы ожидая данные из кеша L3. Для того чтобы такое не случалось внутри процессорного конвейера организовываются очереди микроопераций, в которых они и выдерживаются до тех пор пока необходимые данные не будут доступны для использования уже в регистровой памяти процессора.

Но если так случилось, что микрооперация попала в конвейер, а данные для её выполнения расположены не в каком-то из кэшей, а в оперативной памяти (или вообще в постоянной памяти), то процессору ничего не остаётся как пропустить эту микрооперацию, оставив её в очереди, и выполнять следующие за ней мирооперации. И называется это «мероприятие» промах в кэш (Cache Miss).

Проблема тут в том, что для следующих микроопераций могут быть нужны данные которые должны были быть получены в той, что «застряла» в очереди… И всё это нарастает как снежный ком, который в конечном итоге приводит к тому, что часть времени процессор будет простаивать, не развивая свою максимальную теоретическую производительность.

И естественно, что чем больше объём кэш памяти, тем реже будут происходить промахи в кэш, а значит реже будут простои, что в свою очередь приведёт к росту производительности в реальных задачах.

Насколько большая разница от изменения объёма?

И встаёт закономерный вопрос: «На сколько же велико влияние?».

Ответ на него, к сожалению, однозначным быть не может, так как всё зависит от конкретного приложения. Если его данные и все создаваемые им результаты помещаются в кэш, то последующее увеличение размера кэша вообще не приведёт к росту производительности. А если приложение постоянно обращается к совершенно разным участкам памяти, плохо оптимизировано под использование только что созданных процессором результатов, которые только-только были записаны в кэш, то разница от увеличения объёма может быть несколько крат.

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

Для некой усреднённой задачи может получится зависимость производительности от цены при изменения объёма кэша примерно такая:

Где рыжая линия показывает динамику изменения соотношений цены/производительности от увеличения объёма кэша. До определённого объёма — увеличение кэша приводит к значительному росту производительности так-как снижает частоту критичных состояний процессора когда он простаивает от промахов в кэш. Но при дальнейшем росте объёма всё меньше задач будут выполняться со значительными потерями в производительности, при дальнейшем росте стоимости процессора из-за увеличения кэш памяти.

Как измерить разницу от объёма?

И перейдём уже к практической области решения данного вопроса.

Для того чтобы понять разницу необходима некая конфигурация систем в которых отличия ограничиваются только объёмом кэш памяти.

В нашем случае это процессоры i7 7700k и i9 9900k. В последнем отключено 4 ядра из восьми (кэш память при этом не отключается).

В данном случае могла бы быть проблема связанная с программными исправлениями аппаратных уязвимостей более новых процессоров. Решена она запуском процессора i9 9900k на материнской плате ASUS Z170i Pro Gaming с BIOS версией 2002. К моменту выхода прошивки этой материнской платы об аппаратных уязвимостях сведений ещё не было и исправления их в тестовых системах — нет.

Про то как установить процессоры 8 и 9 поколений на платы для 6 и 7 поколений процессоров можете посмотреть тут.

Кроме процессора важно выбрать оперативную память. Я решил взять некие средние для DDR4 показатели. Частоту 3600 МГц с таймингами 17-18-18-38 CR2. Все субтайминги материнская плата выставляла автоматически.

Для игр так же стоит упомянуть о видеокарте: Gainward GeForce RTX 2070 Phoenix с небольшим заводским разгоном.

Обзор видеокарты можно посмотреть тут.

Важно чтобы в играх производительность ограничивалась именно процессором, а не видеокартой. Если у процессора будет возможность делать простои, то именно в них все проблемы по накапливанию невыполнимых операций и будут решаться без вреда для производительности игры. Так что в играх тесты сделаны на пресетах максимальных настроек, но без сглаживания и в сниженном разрешении (768р).

Результаты

Для начала проведём тест который покажет, что объём кэша действительно разный.

  • Тест кэша и памяти в Sandra

Тест задержек кэша и памяти позволяет увидеть переходы к разным уровням кэша и на оперативную память по увеличению задержек. График отлично показывает разницу в объёме кэша L3 по смещению долгих задержек от оперативной памяти (график логарифмический, поэтому двукратная разница в объёме выглядит не двукратной на глаз).

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

Все тесты проводились по 3 раза с усреднением результатов.

В однопоточном тесте CPU-z разницы от увеличения объёма кеша L3 — нет. В многопоточном разница — 3%

В Cinebench R15 разница 0,4% (незначительно превышает погрешности теста).

Тесты которые слабо реагируют на разгон памяти слабо реагируют и на увеличение объёма кэш памяти.

Далее рассмотрим блок тестов, в которых бенчмарки зависимые от частоты и задержек памяти.

Win-rar. Прирост производительности — 35%. Стоит отметить, что встроенный бенчмарк не отражает реальный прирост производительности архиватора.

7-Zip. Прирост 4,5%.

CPU тест 3D Mark Time Spy. Прирост 3,7%

  • Все бенчмарки

Выводы по бэнчмаркам

В идеальных задачах максимально оптимизированных для процессора и работы с памятью прирост находится в пределах 0-2%.

Для задач имеющий меньшую оптимизацию или связанных с работой с данными прирост от увеличения объёма кэш памяти составил от 3,7 до 35%.

Оптимизировать игры так чтобы они выполнялись только в объёме кэш памяти без промахов — практически невозможно. Подготовка и отрисовка игровых кадров требуют от процессора постоянной смены выполняемых действий, что, неизбежно, приводит к нехватке объёма кэш памяти и учащению промахов в кэш.

Far Cry 5

Время кадра Плотность вероятности Распределение вероятности

На графиках выше можно увидеть разницу и без цифр. На графиках изображены все удачные прогоны бенчмарка. Все они нанесены для оценки отличий результатов от погрешностей проведения тестов.

Стоит ли включать кэширование SSD?

Как только SSD-кэширование запущено, оно само по себе позаботится о том, чтобы не было никакой его настройки от пользователя. Преимущества, если таковые имеются, пассивно производятся, что делает его удобным решением.

Однако настройка кэширования, даже с набором микросхем Intel SRT, является трудной задачей, которая включает в себя использование правильных драйверов, правильную настройку BIOS и запуск его в качестве настройки RAID, установку драйверов Windows и Rapid Storage Technology, управление режимами и т.д. Суть в том, что он значительно сложнее, чем использование SSD-накопителя большой емкости и простая установка Windows.

Кэширование SSD исторически стоило намного меньше, чем выделение для SSD разумного размера, но, поскольку технология становится все более распространенной, цена даже 100 ГБ или более SSD экспоненциально становится более доступной с течением времени. Следовательно, комбинация SSD-кэша и жесткого диска заменяется более крупными бюджетными твердотельными накопителями в качестве места для ОС, в то время как больший жесткий диск используется для хранения носителей, к которому редко обращаются.

По нашей оценке, основная концепция кэширования SSD стоит задуматься. На практике результаты не являются достаточно явными, чтобы выбрать кэширование SSD, а не большие затраты на больший SSD и запускать все — от Windows до ваших любимых шутеров с того же самого диска и позволить ОЗУ делать свои задачи быстрее.

Читайте также:  Программы для создания минусовок

ВИДЕОКАРТЫ

Обзор AMD Radeon Vega RX 64 8 GB | Внешний вид и разъёмы

AMD RX Vega 64 весит 1066 г, что на 16 тяжелее, чем Frontier Edition. Длина карты от скобы до конца кожуха составляет 26,8 см, высота от верхней части слота на системной плате до вершины кожуха — 10,5 см, а ширина — 3,8 см. Это по-настоящему двухслотовая карта, даже несмотря на то, что задняя пластина добавляет ещё 0,4 см к толщине.

Как кожух, так и задняя пластина изготовлены из анодированного алюминия чёрного цвета, благодаря чему карта выглядит дорогой и качественной. Текстура поверхности образована простой холодной формовкой, проведённой перед процессом анодизации. Все винты выкрашены матовой чёрной краской. Напечатанный красным логотип Radeon — единственное цветовое пятно на фронтальной панели.

На верхней панели карты находятся два восьмиконтактных разъёма питания PCI Express и красный подсвечиваемый логотип Radeon. Здесь же расположен двухпозиционный переключатель, позволяющий переходить на упомянутую выше вторую BIOS с пониженным энергопотреблением и её профили, который делают карту тише, холоднее и, конечно, немного медленней.

Торцевая часть карты закрыта кожухом и на ней имеются монтажные отверстия, типичные для видеокарт, предназначенных для рабочих станций. На выкрашенной чёрной матовой порошковой краской скобе расположились три разъёма DisplayPort и один порт HDMI 2.0. Отсутствие порта DVI — это разумный выбор, поскольку без него улучшается циркуляция воздуха. Скоба также служит в качестве вентиляционной решётки для выброса горячего воздуха.

Обзор AMD Radeon Vega RX 64 8 GB | Архитектура Vega и память HBM2

Ранее в новостях мы неоднократно сообщали различные подробности об архитектуре Vega, но имеет смысл собрать всё воедино и освежить наши знания. Vega — это новое поколение графических процессоров AMD, в котором заявлены более 200 изменений и улучшений, отличающие его от предыдущих вариантов GCN.

HBM2: архитектура масштабируемой памяти

И AMD, и Nvidia работают над снижением нагрузки на основной процессор, расширением пропускной способности интерфейсов для передачи данных на GPU и над устранением выявленных узких мест — особенно тех, которые возникают при обработке больших объёмов данных. Похоже, что целью разработки Radeon Pro SSG было именно получение большей ёмкости в непосредственной близости от процессора малыми средствами. Очевидно, что в Vega эта миссия продвинулась на ступеньку дальше благодаря более гибкой иерархии памяти.

Конечно же, в Vega используется память типа HBM2, которую AMD официально представила более полугода назад. Оказалось, что сегодня компания называет этот массив памяти, всегда известный как «кадровый буфер», «высокопроизводительной кэш-памятью». По терминологии AMD, HBM2 это то же самое, что и высокопроизводительный кэш. Вы поняли?

Как рассказывал Джо Макри, технический директор по продукции AMD, HBM задумывалась как высокопроизводительная память, расположенная максимально близко к графическому процессору. Однако, при этом он также хотел, чтобы графическому процессору была также доступна системная память и системные накопители. Конечно, в контексте этой более широкой иерархии памяти, было логично представить HBM2 в качестве высокоскоростного кэша — по сравнению с более медленными технологиями. Но во избежание путаницы, мы продолжим называть HBM2 тем, чем она на самом деле является.

Помимо прочего, HBM2 уже представляет собой существенный шаг вперёд. Восьмикратное увеличение объёма на стек по сравнению с HBM первого поколения отвечает на вопросы, возникавшие у энтузиастов по поводу долговечности Radeon R9 Fury X. Кроме того, удвоение пропускной способности существенно увеличивает потенциальную производительность.

Мы полагаем, что именно это изменение окажет наибольшее влияние на геймеров в том, что касается подсистемы памяти Vega. Однако в AMD также предоставили высокопроизводительному кэш-контроллеру (уже не просто контроллеру памяти) возможность адресовать 512 терабайт виртуального пространства для больших объёмов данных.

Когда у представителей AMD поинтересовались о том, как должна использоваться расширенная иерархия памяти в Vega, там предположили, что Vega сможет точно перемещать страницы памяти при помощи разных программируемых технологий. Она может получать запрос на выдачу данных и отправлять их через DMA, в то время как графический процессор переключается на другой поток и продолжает работу без остановок. Контроллер может получать данные по запросу, но также и предиктивно отправлять их обратно. Информация в HBM может быть продублирована в системной памяти как во внутреннем кэше, либо HBCC сохраняет только один экземпляр для экономии место. Всё это управляется на аппаратном уровне, так что должно работать быстро и с минимумом ресурсов.

В драйвере AMD для Radeon RX Vega 64 есть опция под названием HBCC Memory Segment, с помощью которой можно передавать часть системной памяти под управление кэш-контроллера Vega. Перемещая слайдер, можно изменять объём выделяемой памяти. Согласно AMD, включённый контроллер HBCC будет отслеживать использование локальной памяти видеокарты и при необходимости перемещать неиспользуемую информацию в более медленную системную память, тем самым эффективно увеличивая объём памяти, доступной графическому процессору. Учитывая наличие целых 8 Гбайт HBM2 в Vega 64, эта опция явно нацелена на перспективу — существует немного игр, которым нужно больше памяти. Конечно, единственной рекомендацией перед использованием HBCC, может быть установка большого объёма ОЗУ. Если у вас 16 Гбайт, то вам вряд ли захочется отдавать 4 или 8 Гбайт в управление HBCC.

В AMD предположили, что некоторое влияние от задействования сегмента памяти через HBCC будет заметно в Unigine Heaven, поэтому мы провели тест на разрешении 4K, используя 8-кратное сглаживание и качество Ultra. При отключённом HBCC мы получили 25,7 кадра в секунду. Присоединение дополнительных 4 Гбайт памяти DDR4 3200 повысило результат до 26,9 FPS.

Новый программируемый геометрический конвейер

Графический процессор Hawaii (Radeon R9 290X) получил несколько важных улучшений по сравнению с Tahiti (Radeon HD 7970), одним из которых было два блока обработки геометрии вместо двух. Более поздний Fiji (Radeon R9 Fury X) сохранил ту же четырёхканальную конфигурацию шейдерных блоков. Однако, поскольку она также благополучно пережила третью архитектуру AMD GCN, существовали некоторые проблемы со скоростью тесселляции. В Ellesmere (Radeon RX 480/580) был реализован целый набор технологий, чтобы выжать ещё больше из четырёхблочной конфигурации.

В прошлом году в AMD пообещали нам, что пиковая производительность геометрического конвейера составит 11 полигонов за такт, в 2,75 раза больше, чем в предыдущем поколении, где было 4 полигона за такт. Такая спецификация получилась путём добавления к геометрическому конвейеру новой стадии примитивных шейдеров. Вместо использования аппаратных средств с фиусированными функциями, этот примитивный шейдер использует для работы массив шейдеров.

Позже AMD опубликовала новые данные об архитектуре Vega, в которой пиковая скорость геометрического конвейера выросла до более 17 примитивных полигонов за такт.

Как вычислительный шейдер для обработки геометрии, конвейер лёгкий и программируемый, и имеет возможность сбрасывать примитивные шейдеры с высокой скорость. Функциональность примитивных шейдеров включает в себя многие из тех ступеней которые могут выполнять вершинные, поверхностные, доменные и геометрические шейдеры но она более гибка по отношению к контенту и порядку, в котором выполняется работа.

Как работает кэш-память

Как стало понятно из постановки задачи, данные должны поступать в процессор достаточно быстро. По меркам человека — это миг, но для вычислительного ядра — достаточно большой промежуток времени, и его нужно как можно эффективнее минимизировать. Вот здесь на выручку и приходит технология, которая называется кэш-памятью. Кэш-память — это сверхбыстрая память, которую располагают прямо на кристалле процессора. Извлечение данных из этой памяти не занимает столько времени, сколько бы потребовалось для извлечения того же объема из оперативной памяти, следовательно, процессор молниеносно получает все необходимые данные и может тут же их обрабатывать.

Кэш-память — это, по сути, та же оперативная память, только более быстрая и дорогая. Она имеет небольшой объем и является одним из компонентов современного процессора.

На этом преимущества технологии кэширования не заканчиваются. Помимо своего основного параметра — скорости доступа к ячейкам кэш-памяти, т. е. своей аппаратной составляющей, кэш-память имеет еще и множество других крутых функций. Таких, к примеру, как предугадывание, какие именно данные и команды понадобятся пользователю в дальнейшей работе и заблаговременная загрузка их в свои ячейки. Но не стоит путать это со спекулятивным исполнением, в котором часть команд выполняется рандомно, дабы исключить простаивание вычислительных мощностей процессора.

Спекулятивное исполнение — метод оптимизации работы процессора, когда последний выполняет команды, которые могут и не понадобиться в дальнейшем. Использование метода в современных процессорах довольно существенно повышает их производительность.

Речь идет именно об анализе потока данных и предугадывании команд, которые могут понадобиться в скором будущем (попадании в кэш). Это так называемый идеальный кэш, способный предсказать ближайшие команды и заблаговременно выгрузить их из ОЗУ в ячейки сверхбыстрой памяти. В идеале их надо выбирать таким образом, чтобы конечный результат имел нулевой процент «промахов».

Но как процессор это делает? Процессор что, следит за пользователем? В некоторой степени да. Он выгружает данные из оперативной памяти в кэш-память для того, чтобы иметь к ним мгновенный доступ, и делает это на основе предыдущих данных, которые ранее были помещены в кэш в этом сеансе работы. Существует несколько способов, увеличивающих число «попаданий» (угадываний), а точнее, уменьшающих число «промахов». Это временная и пространственная локальность — два главных принципа кэш-памяти, благодаря которым процессор выбирает, какие данные нужно поместить из оперативной памяти в кэш.

Временная локальность

Процессор смотрит, какие данные недавно содержались в его кэше, и снова помещает их в кэш. Все просто: высока вероятность того, что выполняя какие-либо задачи, пользователь, скорее всего, повторит эти же действия. Процессор подгружает в ячейки сверхбыстрой памяти наиболее часто выполняемые задачи и сопутствующие команды, чтобы иметь к ним прямой доступ и мгновенно обрабатывать запросы.

Пространственная локальность

Принцип пространственной локальности несколько сложней. Когда пользователь выполняет какие-то действия, процессор помещает в кэш не только данные, которые находятся по одному адресу, но еще и данные, которые находятся в соседних адресах. Логика проста — если пользователь работает с какой-то программой, то ему, возможно, понадобятся не только те команды, которые уже использовались, но и сопутствующие «слова», которые располагаются рядом.

Набор таких адресов называется строкой (блоком) кэша, а количество считанных данных — длиной кэша.

При пространственной локации процессор сначала ищет данные, загруженные в кэш, и, если их там не находит, то обращается к оперативной памяти.

Новая флэш-память

SSD на массовом рынке появились более десяти лет назад. Например, компания Intel выпустила свои первые SSD в 2008 году: это были модели X25-M и X18-M объёмом 80 ГБ с форм-фактором 2.5″ и 1.8″, соответственно. Первая вышла по рекомендованной цене $595…


Intel X25-M

Много воды утекло с тех пор. Сейчас мы видим десятки терабайтных моделей по гораздо меньшей цене. Но основные принципы работы твёрдотельных накопителей не изменились. И главные проблемы флэш-памяти NAND по-прежнему актуальны:

  • невозможность напрямую вносить изменения в записанные блоки данных во флэш-памяти, запись новой информации производится в пустые ячейки;
  • несоответствие между размерами страниц NAND и размерами блоков стирания;
  • снижение производительности при заполнении накопителя.


Вернуть изначальную производительность старых SSD можно было только с помощью утилиты HDD ERASE, источник

Всё это по-прежнему актуально. Современные твёрдотельные накопители намного больше, быстрее и дешевле, но их контроллеры и прошивки не решили названные проблемы до конца. У современных SSD появились и некоторые дополнительные проблемы, которые ещё больше усложняют механизмы их работы и затрудняют объективное тестирование.

Примерно в 2014 году появились накопители с памятью TLC NAND и поддержкой прямого интерфейса NVMe. К настоящему времени обе эти технологии практически захватили рынок: память MLC практически исчезла, а NVMe — дефолтный интерфейс для новых моделей. Более высокая производительность PCIe/NVMe по сравнению с SATA даёт ошеломляющую разницу в бенчмарках, но с точки зрения дизайна бенчмарков на самом деле важнее был переход на TLC. Это связано с тем, что потребительские твёрдотельные накопители TLC в значительной степени зависят от кэширования SLC.

В накопителе чем больше битов мы записываем в ячейку, тем она сложнее (и медленнее). Современные диски записывают 3 бита на ячейку (TLC) или 4 бита (QLC). Оба варианта медленнее для записи, чем запись 1 бита на ячейку (SLC). Поэтому в SSD часть ячеек обрабатывается в «режиме SLC», это позволяет увеличить поток входных данных.

Недостатком является то, что данные из SLC NAND потом надо переписать в блоки, которые работают как MLC/TLC/QLC. Этот процесс часто называют фолдингом, он обычно автоматически выполняется во время простоя накопителя, где задержка не важна. Таким образом освобождается место в кэше SLC для дальнейшего использования.

Увеличиваем производительность видеочипа с помощью NVIDIA Inspector

NVIDIA Inspector — специальная утилита, не требующая установки, с помощью которой можно разогнать графический процессор. Ее можно бесплатно скачать на официальном сайте. Утилита подходит для всех типов операционных систем Windows.

Инструкция по использованию программы:

запустите программу и в правом нижнем углу иконки нажмите “Show Overclocking”;

система вас автоматически перенаправит на окно разгона, в нем нужно найти “Shader Clock” и передвинуть ползунок на 15%;

чтобы сохранить результаты, необходимо в правом нижнем углу нажать на кнопку “Apply Clocks & Voltage”;

теперь стоит протестировать апгрейд, запустив любую игру, которая раньше висла. Если все работает исправно, двигаемся дальше;

увеличиваем частоту видеопамяти — передвигаем ползунок на “MemoryClock” вправо на 30 Мгц, сохраняем;

снова запускаем игру или программу, чтобы протестировать изменения;

если все работает, зайдите в утилиту и в параметр “Voltage” увеличьте на 1-2%, сохраните результаты.

Управление ГП

Как все устроено внутри чипов

Драйверы, которые AMD и NVIDIA создают для своих чипов, по сути работают как трансляторы: они преобразуют процедуры, выданные через API, в последовательность операций, понятную графическим процессорам. Затем все зависит от аппаратного обеспечения: какие инструкции выполняются в первую очередь, какая часть микросхемы их выполняет и так далее.

Читайте также:  Не включается рекавери на андроид что делать

Этот начальный этап управления инструкциями обрабатывается набором модулей в микросхеме. В RDNA 2 графические и вычислительные шейдеры маршрутизируются через отдельные конвейеры, которые планируют и отправляют инструкции остальной части микросхемы: первый называется Graphics Command Processor, второй — асинхронными вычислительными блоками (ACE).

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

AMD называет это Shader Engine (SE), тогда как в NVIDIA они имеют название графических кластеров (GPC): названия разные, но суть одна.

Причина такого разделения проста: блоки обработки графики просто не могут справиться со всем и сразу. Так что имеет смысл продвинуть некоторые обязанности по планированию и организации дальше. Это также означает, что каждый блок может делать что-то независимо от других: скажем, один — обрабатывать графические, другой — вычислительные шейдеры.

В случае RDNA 2 каждый SE содержит собственный набор фиксированных функциональных блоков — схем, предназначенных для выполнения одной конкретной задачи:

Блок Primitive Setup — подготавливает вершины к обработке, а также генерирует больше вершин (тесселяция) и отбраковывает их;

Растеризатор — преобразует трехмерный мир треугольников в двухмерную сетку пикселей;

Блоки вывода рендеринга (ROP) — считывают, записывают и смешивают пиксели.

Блок Primitive Setup работает с частотой 1 треугольник за такт. Параметр может показаться не очень большим, но не забывайте, что эти чипы работают на частотах между 1,8 и 2,2 ГГц, и эта настройка не должна оказываться узким местом ГП. Для Ampere этот блок находится на следующем уровне организации, и об этом мы еще поговорим позже.

Ни AMD, ни NVIDIA не особенно распространяются о своих растеризаторах. NVIDIA называют их Raster Engines. Мы знаем, что они обрабатывают 1 треугольник за такт, но больше никакой информации о них нет — например, о субпиксельной точности.

Каждый SE в чипе Navi 21 содержит 128 ROP; GA102 от NVIDIA включает в себя 112 ROP. Может показаться, что у AMD здесь есть преимущество, ведь большее количество ROP означает, что за такт может обрабатываться больше пикселей. Но такие устройства нуждаются в хорошем доступе к кэш-памяти и локальной памяти, и мы поговорим об этом позже в этой статье. А пока давайте дальше рассмотрим на разделение SE/GPC.

Shader Engines AMD разделены на то, что они сами называют двойными вычислительными блоками (DCU), при этом чип Navi 21 использует десять DCU для каждого SE — обратите внимание, что в некоторых документах они также классифицируются как Workgroup Processors (WGP). В случае Ampere и GA102 они называются кластерами обработки текстур (TPC), причем каждый графический процессор содержит 6 TPC. Они также работают со скоростью 1 треугольник за такт, и хотя графические процессоры NVIDIA работают на меньшей частоте, чем AMD, и у них намного больше TPC, чем у Navi 21 — SE. Таким образом, при той же тактовой частоте GA102 имеет здесь заметное преимущество, поскольку весь чип содержит 42 блока Primitive Setup, тогда как новый RDNA 2 от AMD — только 4. Но поскольку на один Raster Engine приходится шесть TPC, GA102 фактически имеет 7 систем примитивов, в то время как Navi 21 — четыре. Кажется, что NVIDIA имеет здесь явное лидерство.

Последний уровень организации чипов — вычислительные блоки (CU) в RDNA 2 и потоковые мультипроцессоры (SM) в Ampere — производственные линии в наших ГП-«заводах».

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

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

Но в случае с CU и SM AMD и NVIDIA используют разные подходы к обработке шейдеров. И пусть в некоторых областях у них много общего, но много и различий.

Подсчет ядер по методу NVIDIA

Если Turing имела множество существенных отличий от Pascal, то Ampere кажется довольно мягким обновлением предыдущей архитектуры — по крайней мере, на первый взгляд. Впрочем, мы точно знаем, что по сравнению с Turing новая архитектура имеет более чем в два раза большее количество ядер CUDA в каждом SM.

В Turing потоковые мультипроцессоры содержат четыре раздела (иногда называемых блоками обработки), каждый из которых содержит логические блоки 16x INT32 и 16x FP32. Эти схемы предназначены для выполнения очень специфических математических операций с 32-битными значениями данных: блоки INT обрабатывают целые числа, а FP — числа с плавающей запятой.

NVIDIA заявляет, что SM Ampere имеет в общей сложности 128 ядер CUDA, но, строго говоря, это неправда — или с таким же успехом можно считать, что у Turing их было столько же. Блоки INT32 действительно могли обрабатывать значения с плавающей запятой, но только в очень небольшом количестве простых операций. Для Ampere NVIDIA увеличила поддерживаемый диапазон математических операций с плавающей запятой, чтобы соответствовать другим модулям FP32. Это означает, что общее количество ядер CUDA на SM действительно не изменилось, просто половина из них теперь имеет больше возможностей.

Поскольку блоки INT/FP могут работать независимо, SM Ampere может обрабатывать до 128 вычислений FP32 за цикл или 64 операций FP32 и 64 операций INT32 одновременно. Turing же умела делать только последнее.

Таким образом, новый графический процессор может потенциально вдвое увеличить производительность FP32 по сравнению с предшественником. Для вычислительных рабочих нагрузок это большой шаг вперед, но для игр польза окажется гораздо меньшей. Это стало очевидно после тестирования GeForce RTX 3080, в которой используется чип GA102 с 68 включенными SM.

Несмотря на то, что пиковая пропускная способность FP32 составляет 121% по сравнению с GeForce 2080 Ti, в среднем она увеличивает частоту кадров только на 31%. Так почему же вся эта вычислительная мощность тратится зря?

Простой ответ: зря она не тратится, просто игры не всегда запускают инструкции FP32.

Когда NVIDIA выпустила Turing в 2018 году, компания отметила, что в среднем около 36% инструкций, обрабатываемых графическим процессором, связаны с процедурами INT32. Эти вычисления обычно выполняются для определения адресов памяти, сравнения двух значений и логического управления.

Таким образом, для этих операций функция двойной скорости FP32 не используется, поскольку блоки с двумя путями данных могут работать только с целыми числами или с плавающей запятой. SM переключится в этот режим только в том случае, если все выстроенные в очередь 32 потока, обрабатываемые им в данный момент, выполняют одну и ту же операцию FP32. Во всех остальных случаях SM в Ampere работают так же, как и в Turing.

Это означает, что GeForce RTX 3080 имеет только 11-процентное преимущество FP32 над 2080 Ti при работе в режиме INT+FP. Вот почему реальный прирост производительности в играх не так высок, как предполагают исходные данные.

Какие тут еще улучшения? На каждый SM приходится меньше тензорных ядер, но каждое из них оказывается намного более мощным, чем в Turing. Эти схемы выполняют очень специфические вычисления (например, умножают два значения FP16 и складывают ответ с другим FP16), и теперь каждое ядро ​​выполняет 32 таких операции за цикл.

Также есть поддержка новой функции Fine-Grained Structured Sparsity. Если кратко, то с ее помощью математическая скорость может быть удвоена путем удаления данных, которые не влияют на ответ. Опять же, это хорошая новость для профессионалов, работающих с нейронными сетями и искусственным интеллектом, но на данный момент в этом нет никаких значительных преимуществ для игровых разработчиков.

Ядра трассировки лучей также претерпели доработки: теперь они могут работать независимо от ядер CUDA, поэтому, пока они выполняют обход BVH или математику пересечения примитивов лучей, остальная часть SM все еще может обрабатывать шейдеры. Часть ядер трассировки лучей, отвечающая за проверку пересечений, также имеет вдвое большую производительность.

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

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

Что же насчет AMD — что они сделали с вычислительными модулями в RDNA 2?

Трассировка лучей по-особенному

На первый взгляд, AMD не сильно изменила вычислительные блоки: они по-прежнему содержат два набора векторных блоков SIMD32, скалярный блок SISD, блоки наложения текстур и стек различных кэшей. Произошли некоторые изменения в отношении того, какие типы данных и связанные с ними математические операции они могут выполнять. Но наиболее заметным изменением для обычного потребителя является то, что AMD теперь предлагает аппаратное ускорение для определенных процедур трассировки лучей.

Эта часть вычислительных блоков выполняет проверки пересечения лучевого бокса или лучевого треугольника — то же самое, что и ядра трассировки лучей в Ampere. Однако последние также ускоряют алгоритмы обхода BVH, тогда как в RDNA 2 это делается с помощью вычислительных шейдеров с использованием модулей SIMD 32.

Независимо от того, сколько у вас шейдерных ядер или насколько высоки их тактовые частоты, использование специализированных схем, предназначенных для выполнения только одной задачи, всегда будет предпочтительнее, чем обобщенный подход. Именно поэтому и были изобретены графические процессоры: все в мире рендеринга можно сделать с помощью ЦП, но общий характер делает их непригодными для графических применений.

Блоки Ray Accelerator находятся рядом с текстурными процессорами, поскольку они фактически являются частью одной и той же структуры. Хотя эта система действительно предлагает большую гибкость и устраняет необходимость в том, чтобы части кристалла занимались только трассировкой лучей и ничем другим одновременно с ней, первая реализация ее имеет некоторые недостатки. Наиболее примечательным из них является то, что текстурные процессоры могут обрабатывать только операции, связанные с текстурами или пересечениями примитивов лучей. Учитывая, что ядра трассировки лучей NVIDIA теперь работают полностью независимо от остальной части SM, это дает Ampere явное преимущество по сравнению с RDNA 2 в проработке структур ускорения и тестах пересечений, необходимых для трассировки лучей.

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

Например, в Gears 5 видеокарта Radeon RX 6800 (в которой используется вариант графического процессора Navi 21 с 60 CU) при включении трассировки лучей снизила частоту кадров только на 17%, тогда как в Shadow of the Tomb Raider — аж на 52%. Для сравнения, у NVIDIA RTX 3080 (с использованием 68 SM GA102) средняя потеря частоты кадров в этих двух играх составила 23% и 40% соответственно.

Чтобы больше рассказать о реализации AMD, необходим более подробный анализ трассировки лучей, однако в качестве первой итерации технологии она кажется вполне конкурентоспособной, но чувствительной к тому, какое приложение выполняет трассировку.

Как упоминалось ранее, вычислительные блоки в RDNA 2 теперь поддерживают больше типов данных: наиболее заметными из них являются типы данных с низкой точностью, такие как INT4 и INT8. Они используются для тензорных операций в алгоритмах машинного обучения, и хотя AMD имеет отдельную архитектуру (CDNA) для ИИ и центров обработки данных, это обновление предназначено для использования с DirectML.

Этот API является недавним дополнением к семейству Microsoft DirectX 12. Комбинация аппаратного и программного обеспечения обеспечивает лучшее ускорение шумоподавления в алгоритмах трассировки лучей и временного масштабирования. В случае с последним у NVIDIA, конечно же, есть своя технология под названием DLSS. Она использует тензорные ядра в SM для выполнения части вычислений — но учитывая, что аналогичный процесс может быть построен и через DirectML, может показаться, что эти компоненты в некоторой степени избыточны. Однако и в Turing, и в Ampere тензорные ядра также обрабатывают все математические операции, связанные с форматами данных FP16.

В RDNA 2 такие вычисления выполняются с использованием шейдерных блоков и упакованных форматов — то есть, каждый 32-битный векторный регистр содержит два 16-битных.

Какой же подход лучше?

AMD преподносит свои блоки SIMD32 как векторные процессоры, поскольку они выдают одну инструкцию для нескольких значений данных. Один векторный блок содержит 32 потоковых процессора, и поскольку каждый из них работает только с одним фрагментом данных, по факту операции носят скалярный характер. По сути, это то же самое, что и SM в Ampere, где каждый блок обработки также применяет одну инструкцию для 32 значений данных.

Но если у NVIDIA весь SM может обрабатывать до 128 вычислений FMA FP32 за цикл , один вычислительный блок RDNA 2 производит только 64 таких вычисления. Использование FP16 увеличивает это значение до 128 FMA за цикл, что совпадает с тем, что делают тензорные ядра в Ampere при стандартных вычислениях FP16.

SM NVIDIA могут выполнять инструкции для одновременной обработки целочисленных значений и значений с плавающей запятой (например, 64 FP32 и 64 INT32) и имеют независимые блоки для операций FP16, тензорной математики и процедур трассировки лучей. Блоки управления AMD выполняют большую часть рабочей нагрузки блоков SIMD32, хотя у них есть отдельные скалярные блоки, которые поддерживают простую целочисленную математику.

Читайте также:  Ожидание применения изменений Itunes что делать

Таким образом, может показаться, что у Ampere здесь преимущество: у GA102 больше SM, чем у Navi 21, и у них больше возможностей, когда дело доходит до пиковой пропускной способности, гибкости и предлагаемых функций. Но у AMD есть свой джокер в рукаве.

Система памяти и многоуровневые кэши

Давайте сначала взглянем на Ampere. В целом, внутри произошли некоторые заметные изменения: объем кэша 2-го уровня увеличился на 50% (Turing TU102 имел 4096 КБ, соответственно), а кэши 1-го уровня в каждом SM увеличились вдвое.

Как и раньше, кэш-память L1 здесь настраивается с точки зрения того, сколько места в кэше можно выделить для данных, текстур или общих вычислений. Для графических шейдеров (например, вершинных или пиксельных) и асинхронных вычислений кэш фактически установлен на:

64 КБ для данных и текстур;

48 КБ для общей памяти;

16 КБ для конкретных операций.

Остальная часть внутренней памяти осталась прежней, но за пределами графического процессора ждет приятный сюрприз. NVIDIA стала работать с Micron и теперь использует модифицированную версию GDDR6 для своих потребностей в локальной памяти. По сути, это тот же GDDR6, но шина данных полностью заменена. Вместо того, чтобы использовать обычную настройку 1 бит на вывод, при которой сигнал очень быстро колеблется между двумя значениями напряжения (PAM), GDDR6X использует четыре значения напряжения:

PAM2 в GDDR6 (сверху) и PAM4 в GDDR6X (снизу)

PAM2 в GDDR6 (сверху) и PAM4 в GDDR6X (снизу)

Благодаря этому GDDR6X эффективно передает 2 бита данных на вывод за цикл, поэтому при той же тактовой частоте и количестве выводов полоса пропускания удваивается. GeForce RTX 3090 поддерживает 24 модуля GDDR6X, работающих в одноканальном режиме и рассчитанных на 19 Гбит/с, что дает пиковую пропускную способность 936 ГБ/с. Это на 52% больше, чем у GeForce RTX 2080 Ti. Таких показателей пропускной способности в прошлом можно было достигнуть только при помощи HBM2, реализация которого может быть куда более дорогостоящей, чем GDDR6.

Однако такую память производит только Micron, а использование PAM4 добавляет дополнительной сложности производственному процессу, требуя гораздо более жестких допусков при передаче сигналов. AMD пошла по другому пути: вместо того, чтобы обращаться за помощью к стороннему поставщику, они использовали свое подразделение ЦП, чтобы изобрести что-то новое. Общая система памяти в RDNA 2 не сильно преобразилась по сравнению с предшественницей — но есть два существенных изменения.

Каждый шейдерный движок теперь имеет два набора кэшей первого уровня. Но как можно втиснуть в графический процессор 128 МБ кэш-памяти третьего уровня? Используя конструкцию SRAM для кэша L3, AMD встроила в чип два набора кэш-памяти высокой плотности объемом 64 МБ. Транзакции данных обрабатываются 16 наборами интерфейсов, каждый из них сдвигает 64 байта за такт.

Так называемый Infinity Cache имеет свой собственный тактовый домен и может работать на частоте 1,94 ГГц, что дает пиковую внутреннюю пропускную способность 1986,6 ГБ/с. И поскольку это не внешняя DRAM, задержки здесь исключительно низкие. Такой кэш идеально подходит для хранения структур ускорения трассировки лучей, и поскольку обход BVH включает в себя множество проверок данных, Infinity Cache должен в этом особенно помочь.

На данный момент не ясно, работает ли кеш третьего уровня в RDNA 2 так же, как в ЦП Zen 2: то есть, как кэш жертвы (victim cache) второго уровня. Обычно, когда необходимо очистить последний уровень кэша, чтобы освободить место для новых данных, любые новые запросы этой информации должны поступать в DRAM.

В кэше жертвы хранятся данные, помеченные для удаления из следующего уровня памяти, и имея под рукой 128 МБ, Infinity Cache потенциально может хранить 32 полных набора кэша L2. Эта система снижает нагрузку на контроллеры GDDR6 и DRAM.

Старые конструкции графических процессоров AMD боролись с нехваткой внутренней пропускной способности — особенно после увеличения тактовой частоты, — но дополнительный кэш во многом поможет при решении этой проблемы.

Так что же лучше?

Использование GDDR6X дает GA102 огромную полосу пропускания для локальной памяти, а большие кэши помогают уменьшить влияние промахов кэша. Массивная кэш-память 3-го уровня Navi 21 позволяет реже использовать DRAM, при этом графический процессор может работать на более высоких тактовых частотах без дефицита данных.

Решение AMD придерживаться GDDR6 означает, что сторонним поставщикам доступно больше источников памяти, в то время как любая компания, производящая GeForce RTX 3080 или 3090, будет вынуждена использовать Micron. И хотя GDDR6 поставляется с модулями различной плотности, GDDR6X в настоящее время ограничен 8 Гб.

Система кэширования в RDNA 2, возможно, является лучшим подходом, чем та, что используется в Ampere, поскольку использование нескольких уровней встроенной SRAM всегда обеспечивает более низкие задержки и лучшую производительность для заданного диапазона мощности, чем внешняя DRAM, независимо от пропускной способности последней.

Пайплайны рендеринга

Обе архитектуры содержат множество обновлений для фронтэнда и бэкэнда пайплайнов рендеринга. Ampere и RDNA 2 полностью поддерживают mesh-шейдеры и variable rate-шейдеры в DirectX12 Ultimate, хотя чип NVIDIA обладает большей геометрической производительностью благодаря большему количеству процессоров для этих задач.

Хотя использование mesh-шейдеров позволит разработчикам создавать еще более реалистичное окружение, ни в одной игре никогда не будет полной привязки производительности к этому этапу процесса рендеринга. Это связано с тем, что основная часть самой сложной работы приходится на этапы трассировки пикселей или лучей.

Именно здесь вступает в игру использование variable rate-шейдеров. В основном этот процесс включает применение шейдеров для освещения и цвета на блоке пикселей, а не на отдельных пикселях. Это похоже на уменьшение разрешения игры для повышения производительности, но, поскольку его можно применить только к выбранным областям, потеря визуального качества не всегда очевидна.

Обе архитектуры также получили обновление для блоков вывода рендеринга (ROP), поскольку это улучшит производительность при высоких разрешениях независимо от того, используются ли variable rate-шейдеры. Во всех предыдущих поколениях своих графических процессоров NVIDIA привязывала ROP к контроллерам памяти и кэшу 2-го уровня.

В Turing восемь блоков ROP были напрямую связаны с одним контроллером и фрагментом кэша размером 512 КБ. Добавление большего количества ROP представляется проблематичным, поскольку для этого требуется больше контроллеров и кэша, поэтому для Ampere ROP теперь полностью выделены для GPC. GA102 поддерживает 12 ROP на один GPC (каждый обрабатывает 1 пиксель за такт), что дает в общей сложности 112 блоков для всего чипа.

AMD следует системе, аналогичной старому подходу NVIDIA (т. е. привязке к контроллеру памяти и кэш-памяти L2), хотя их ROP в основном используют кэш первого уровня для чтения/записи и смешивания пикселей. В чипе Navi 21 ROP теперь обрабатывает 8 пикселей за цикл в 32-битном цвете и 4 пикселя в 64-битном.

RTX IO в NVIDIA — система обработки данных, которая позволяет графическому процессору напрямую обращаться к накопителю, копировать необходимые данные, а затем распаковывать их с помощью ядер CUDA.

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

Этот механизм по своей природе является последовательным: ЦП обрабатывает один запрос за раз. NVIDIA заявляет о таких цифрах, как «100-кратная пропускная способность» и «20-кратное снижение нагрузки на ЦП», но до тех пор, пока система не будет протестирована в реальных условиях, их никак нельзя будет исследовать дальше.

Когда AMD представила RDNA 2 и новые видеокарты Radeon RX 6000, вместе с ними была представлена и так называемая Smart Access Memory. Это не ответ на RTX IO — на самом деле, это даже не новая функция. По умолчанию контроллер PCI Express в ЦП может адресовать до 256 МБ памяти видеокарты для каждого отдельного запроса доступа. Это значение устанавливается размером регистра базового адреса (BAR), и еще в 2008 году в спецификации PCI Express 2.0 была дополнительная функция, позволяющая изменять его размер. Преимущество его состоит в том, что нет нужды обрабатывать большое количество запросов на доступ, чтобы адресовать всю DRAM карты.

Функция требует поддержки операционной системой, центральным процессором, материнской платой, графическим процессором и его драйверами. В настоящее время на ПК с Windows система ограничена определенной комбинацией процессоров Ryzen 5000, материнских плат серии 500 и видеокарт Radeon RX 6000.

Эта простая функция дала поразительные результаты на тестах: повышение производительности на 15% при разрешении 4K. Неудивительно, что вскоре NVIDIA заявила, что реализует эту функцию для RTX 3000 в ближайшем будущем.

Мультимедиа-движок и видеовыход

Обе архитектуры обеспечивают вывод изображения через HDMI 2.1 и DisplayPort 1.4a. Первый предлагает более широкую полосу пропускания сигнала, но оба они рассчитаны на 4K при 240 Гц с HDR и 8K при 60 Гц. Это достигается при помощи либо цветовой субдискретизации 4:2:0, либо DSC 1.2a. Это алгоритмы сжатия видеосигнала, обеспечивающие значительное снижение требований к полосе пропускания без большой потери визуального качества. Без них даже пиковой пропускной способности HDMI 2.1 в 6 ГБ/с было бы недостаточно для передачи изображений 4K с частотой 60 Гц.

48-дюймовый OLED-монитор LG CK: 4K при 120 Гц требует HDMI 2.1

48-дюймовый OLED-монитор LG CK: 4K при 120 Гц требует HDMI 2.1

Ampere и RDNA 2 также поддерживают системы с переменной частотой обновления (FreeSync для AMD, G-Sync для NVIDIA), в кодировании и декодировании видеосигналов между ними также нет заметной разницы.

Независимо от того, какой процессор рассматривать, в обоих есть поддержка декодирования 8K AV1, 4K H.264 и 8K H.265, хотя и еще не было тщательно изучено, насколько хорошо они оба работают в таких ситуациях. Ни одна из компаний не раскрывает подробностей о внутреннем устройстве в этих областях. Какими бы важными они ни были в наши дни, все внимание по-прежнему привлекают другие аспекты графических процессоров.

Созданы для вычислений, созданы для игр

Раньше AMD и NVIDIA использовали разные подходы к выбору архитектуры и конфигурации. Но по мере того, как 3D-графика набирала все большую популярность, они становились все более похожими.

На данный момент у NVIDIA есть три чипа, использующих технологию Ampere: GA100, GA102 и GA104.

GA104 используется в GeForce RTX 3060 Ti

GA104 используется в GeForce RTX 3060 Ti

Последний — урезанная версия GA102. GA100 — совсем другое дело.

В нем нет ядер трассировки лучей и CUDA с поддержкой INT32+FP32 — вместо этого он содержит множество дополнительных модулей FP64, еще больше load/store систем и огромный объем кэш-памяти L1/L2. Все это объясняется тем, что он разработан для вычислений ИИ и анализа данных.

GA102/104, в свою очередь, должны охватывать все остальные рынки, на которые нацелена NVIDIA: геймеров, профессиональных графических художников и инженеров, а также маломасштабный ИИ и вычислительные системы. Ampere должен быть мастером на все руки — а это задача не из легких.

Arcturus CDNA площадью 750 мм2

Arcturus CDNA площадью 750 мм2

RDNA 2 была разработана только для игр на ПК и консолях, хотя могла с таким же успехом работать в тех же областях, что и Ampere. Однако AMD решила сохранить свою архитектуру GCN и обновить ее в соответствии с требованиями сегодняшних клиентов.

Там, где RDNA 2 породила Big Navi, можно сказать, что CDNA породила Big Vega: в Instinct MI100 находится их чип Arcturus — 50-миллиардный транзисторный графический процессор с 128 вычислительными блоками.

Хотя NVIDIA в значительной степени доминирует на профессиональном рынке с моделями Quadro и Tesla, Navi 21 просто не нацелена на конкуренцию с ними. Ограничивает ли это каким-либо образом требование, чтобы Ampere вписалась на несколько рынков?

Правильный ответ: нет.

Скоро AMD выпустит Radeon RX 6900 XT, в котором используется полная версия Navi 21 (без отключенных CU), которая сможет работать так же хорошо, как GeForce RTX 3090 или даже лучше. Но GA102 на этой карте также не полностью включен, поэтому у NVIDIA всегда есть возможность обновить эту модель до «супер»-версии, как они это сделали с Turing в прошлом году.

Можно утверждать, что, поскольку RDNA 2 используется в Xbox Series X/S и PlayStation 5, разработчики игр будут отдавать предпочтение этой архитектуре для своих игровых движков. Но стоит просто вспомнить времена, когда GCN использовался в Xbox One и PlayStation 4, чтобы получить представление, как это, вероятно, будет происходить.

Первая версия, выпущенная в 2013 году, использовала графический процессор, построенный на архитектуре GCN 1.0, не появлявшийся в видеокартах для настольных ПК вплоть до следующего года. Xbox One X, выпущенный в 2017 году, использовал GCN 2.0, которому к тому времени было уже более 3 лет.

Так что же — все игры, созданные для Xbox One или PS4, а затем портированные на ПК, по умолчанию лучше работали на видеокартах AMD? А вот и нет. Поэтому мы не можем предположить, что на этот раз с RDNA 2 все будет иначе, несмотря на впечатляющий набор функций.

Но все это в конечном итоге не имеет значения, поскольку оба графических процессора обладают исключительными возможностями и представляют собой чудо того, что может быть достигнуто в производстве полупроводников. NVIDIA и AMD предлагают разные инструменты, поскольку пытаются решать разные проблемы: Ampere стремится быть всем для всех, RDNA 2 — только для игр.

На этот раз битва зашла в тупик, хотя каждый может претендовать на победу в определенной области. Войны ГП еще продолжатся в течение следующего года, когда в бой вступит новый участник: Intel со своей серией Xe. По крайней мере, нам не придется ждать еще два года, чтобы увидеть, как протекает эта борьба.

Ссылка на основную публикацию
Adblock
detector