Чaсть 1: тeoрия и aрxитeктурa
Сoдeржaниe
Прeдстaвляeм бaзoвый дeтaльный мaтeриaл с исслeдoвaниeм AMD Radeon RX Vega 64.
Спрaвoчныe мaтeриaлы
Oбъeкт исслeдoвaния: Ускoритeль трexмeрнoй грaфики (видeoкaртa) AMD Radeon RX Vega 64 8 ГБ 2048-битнoй HBM2
Свeдeния o рaзрaбoтчикe: Кoмпaния ATI Technologies (тoргoвaя мaркa ATI) oснoвaнa в 1985 гoду в Кaнaдe кaк Array Technology Inc. В тoм жe гoду былa пeрeимeнoвaнa в ATI Technologies. Штaб-квaртирa в г. Мaркxaм (Тoрoнтo). C 1987 гoдa компания сконцентрировалась на выпуске графических решений для ПК. Начиная с 2000 года основным брендом графических решений ATI становится Radeon, под которым выпускаются GPU как для настольных ПК, так и для ноутбуков. В 2006 году компанию ATI Technologies покупает компания AMD, в которой образуется подразделение AMD Graphics Products Group (AMD GPG). C 2010 года AMD отказывается от бренда ATI, оставив лишь Radeon. Штаб-квартира AMD в Саннивейл (Калифорния), а у AMD GPG остается главным офисом бывший офис AMD в Маркхаме (Канада). Своего производства нет. Общая численность сотрудников AMD GPG (включая региональные офисы) около 2000 человек.
Часть 1: Теория и архитектура
Выхода мощных графических решений компании AMD энтузиасты компьютерной графики ждали очень долго, ведь решения семейства Polaris хоть и вышли в июне 2016, но они были не топового уровня, а ступенькой ниже. В сегменте рынка видеокарт для энтузиастов компании AMD было попросту нечем конкурировать с Nvidia, видеокарты серии Fury были слишком дороги в производстве и их довольно быстро сняли с конвейера, а на замену им долгое время ничего не было выпущено. Обновление линейки Radeon RX 500 было чисто номинальным, а объявленная ещё в конце прошлого года Vega всё не выходила и не выходила.
Понятно, что выпуск подобного продукта затянулся сразу по нескольким причинам, основной из которых, по всей вероятности, стали относительная новизна и дороговизна быстрой памяти HBM второго поколения, на которую сделали (снова!) ставку в AMD. Возможно, в компании слишком оптимистично отнеслись к перспективам этого интереснейшего типа памяти, но проблемы с её освоением и снижением себестоимости явно затянули процесс выхода на рынок для Vega. Но вот, на прошедшей недавно в Лос-Анджелесе конференции SIGGRAPH прошло специальное мероприятие Capsaicin, на котором компания наконец-то анонсировала новые продукты, предназначенные для энтузиастов — долгожданную линейку видеокарт Radeon RX Vega вместе с также весьма интересными высокопроизводительными процессорами Ryzen Threadripper.
Специалисты Radeon Technologies Group заявляют, что архитектура Vega стала самым большим изменением в графических процессорах компании со времени выхода первых решений, основанных на архитектуре GCN —, а ведь с тех пор прошло уже более пяти лет! Новая архитектура Vega отвечает всем современным требованиям и принципам: масштабируемость и гибкость, поддержка больших объёмов данных и улучшенная энергоэффективность.
Объёмы данных упомянуты не просто так, ведь растут не только потребности в вычислительных мощностях графических процессоров. Развитие компьютерной графики показало, что разработчикам требуется работа с огромными объёмами данных: геометрических, текстурных и других. В игровых применениях это обусловлено появлением доступных 4K-мониторов, в том числе с HDR-экранами, набирающими популярность VR-шлемами, повышающими нагрузку на GPU минимум вдвое, появлением новых версий графических API с новыми возможностями, развитием алгоритмов и применением новых техник компьютерной графики и т. д.
Вычислительные задачи не отстают, появляются все новые сферы их применения: машинное обучение и зрение, распознавание образов и речи, обработка огромных массивов данных и т. п. В профессиональных применениях также постоянно растут требования к мощности GPU в части сложного моделирования, физически корректного рендеринга в реальном времени, создания качественного контента в высоком разрешении, моделирования физически корректных эффектов и многом другом.
Компания AMD считает, что предыдущие графические архитектуры не слишком хорошо подходят для современных задач, не говоря уже о будущем, и плохо масштабируются под постоянно растущие потребности графических и вычислительных задач. Объемы данных, используемых в игровых приложениях, за несколько лет выросли в десятки раз. Если в начале 2000-х годов было достаточно нескольких сотен мегабайт, то к 2016 году объемы игр выросли до десятков гигабайт. Не говоря о профессиональной графике, объемы данных в которой занимают уже не один петабайт, а также используемых объемах данных в вычислительных задачах, которые растут еще стремительнее. Ведь для распознавания речи, отслеживания объектов и распознавания образов требуется обрабатывать огромное количество данных.
При этом объемы доступной локальной памяти у графических процессоров просто не успевают за ростом их вычислительных мощностей — если производительность GPU за прошедшие несколько лет выросла уже в сотни раз, то рост среднего объема видеопамяти за это же время был на порядок ниже. Поэтому, учитывая возрастающие запросы, в AMD разработали новую графическую архитектуру Vega, использующую «масштабируемую архитектуру памяти», в основе которой лежит известная нам по предыдущим решениям очень быстрая память HBM, но уже второго поколения — HBM2. Причем, это уже не просто локальная видеопамять, а высокопроизводительный кэш — High Bandwidth Cache, о котором мы подробно расскажем в нашем материале.
На мероприятии было представлено сразу несколько моделей видеокарт RX Vega, которые основаны на графической архитектуре нового поколения. Эти видеокарты отличаются друг от друга как характеристиками, производительностью, так и системой охлаждения и ценой. Были анонсированы три модели: Radeon RX Vega 64 Liquid Cooled Edition, обычная RX Vega 64 и наименее мощная RX Vega 56, основанная на графическом процессоре Vega, урезанном по исполнительным блокам.
Судя по спецификациям, три представленные модели отличаются друг от друга только по количеству исполнительных блоков, частотам GPU и памяти, а также значениям энергопотребления — от 210 Вт у слабой карты до 345 Вт у топового варианта с жидкостным охлаждением. К слову, хоть это и не анонсировалось пока что, но в будущем весьма вероятен выпуск Nano-варианта Vega с печатной платой миниатюрных размеров и уровнем потребления энергии в 150 Вт — такую видеокарту уже подарили известному разработчику Тиму Свини (Unreal Engine).
Но пока что мы остановимся исключительно на обычной Radeon RX Vega 64. Так как основой всех видеокарт семейства является графический процессор Vega 10, имеющий улучшенную архитектуру GCN, которая во многих деталях схожа с ранее вышедшими решениями компании AMD, то перед прочтением теоретической части статьи будет полезно ознакомиться и с нашими предыдущими материалами по прошлым видеокартам компании, основанным на архитектуре GCN предыдущих поколений:
Рассмотрим подробные характеристики видеоплаты Radeon RX Vega 64, основанной на полной версии графического процессора нового поколения Vega 10 и имеющей воздушное охлаждение.
Графический ускоритель Radeon RX Vega 64 (с воздушным охлаждением)
Параметр
Значение
Кодовое имя чипа
Vega 10
Технология производства
14 нм FinFET LPP
Количество транзисторов
12,5 млрд.
Площадь ядра
486 мм²
Архитектура
Унифицированная, с массивом общих процессоров для потоковой обработки многочисленных видов данных: вершин, пикселей и др.
Аппаратная поддержка DirectX
DirectX 12, с поддержкой уровня возможностей Feature Level 12_1
Шина памяти
2048-битная шина памяти с поддержкой стандарта High Bandwidth Memory второго поколения
Частота графического процессора
1274 (1546) МГц
Вычислительные блоки
64 вычислительных блока GCN, состоящих в целом из 4096 ALU для расчетов с плавающей запятой (поддерживаются целочисленные и плавающие форматы INT8, INT16, FP16, FP32 и FP64)
Блоки текстурирования
256 текстурных блоков, с поддержкой трилинейной и анизотропной фильтрации для всех текстурных форматов
Блоки растеризации (ROP)
64 блока ROP с поддержкой режимов сглаживания с возможностью программируемой выборки более чем 16 сэмплов на пиксель, в том числе при FP16- или FP32-формате буфера кадра. Пиковая производительность до 64 отсчетов за такт, а в режиме без цвета (Z only) — 256 отсчетов за такт
Поддержка мониторов
Интегрированная поддержка до шести мониторов, подключенных по интерфейсам DVI, HDMI 2.0b и DisplayPort 1.4
Спецификации референсной видеокарты Radeon RX Vega 64
Параметр
Значение
Частота ядра
1274 (1546) МГц
Количество универсальных процессоров
4096
Количество текстурных блоков
256
Количество блоков блендинга
64
Эффективная частота памяти
1890 (2×945) МГц
Тип памяти
HBM2
Шина памяти
2048-бит
Объем памяти
8 ГБ
Пропускная способность памяти
484 ГБ/с
Вычислительная производительность (FP32)
до 12,7 терафлопс
Теоретическая максимальная скорость закраски
99 гигапикселей/с
Теоретическая скорость выборки текстур
396 гигатекселей/с
Шина
PCI Express 3.0
Разъемы
Один разъем HDMI и три DisplayPort
Энергопотребление
до 295 Вт
Дополнительное питание
Два 8-контактных разъема
Число слотов, занимаемых в системном корпусе
2
Рекомендуемая цена
$499 (для рынка США)
Названия новых моделей видеокарт компании AMD изменили принятую ранее систему наименований. Во-первых, они снова (как и Fury) имеют имя собственное — Vega, во-вторых, цифра после названия семейства теперь означает количество активных исполнительных блоков архитектуры GCN в графическом процессоре — 64 или 56 для урезанной версии. Так что цифр типа 560, 570 и 580 в этот раз нет. А вот начальные буквы RX остались, и это немного странно. Они ведь раньше показывали уровень видеокарты: R7 были медленнее, чем R9, например. Похоже, что теперь AMD просто понравилось сочетание RX, и они продолжили его использовать.
Рассматриваемая сегодня модель нового семейства Vega становится в текущей линейке компании на место околотопового решения, сверху дополняя семейство Polaris на рынке. Vega 64 относится к верхнему ценовому уровню, выше неё разве что Liquid Cooled Edition с несколько большей производительностью (и ценой, соответственно). Вообще, давайте сразу же посмотрим на цены всех представленных решений:
Да, разброс в цене представленных решений немалый — от $399 за RX Vega 56 до $699 за топовую видеокарту с водяным охлаждением. Но в данном случае речь идёт уже не только о видеокарте, а целом паке, который обходится в лишнюю сотню долларов. Что же предлагает AMD за дополнительные $100? В компании считают, что таким образом помогут пользователям решиться на апгрейд игровых систем, добавив возможность приобрести современный монитор, процессор и системную плату со значительной скидкой. А кроме этого, в комплекте будут предлагаться ещё и бесплатные игры.
В частности, в предложение компании входит $200 скидка на приобретение ультраширокоформатного современного монитора Samsung CF791 с диагональю 34″ и поддержкой технологии FreeSync, $100 скидка на некоторые процессоры Ryzen 7 в комплекте с системными платами на чипсете X370 — уже только это даёт экономию в $300, а они ещё и предлагают игры в комплекте, который будет зависеть от региона (для США их стоимость в рознице составляет ещё $120).
На бумаге предложение выглядит неплохо. В принципе, для тех, кто планирует сделать большой апгрейд, подобное предложение выглядит отличным вариантом для того, чтобы сэкономить свои деньги, а если кто просто хочет купить себе новую Radeon RX Vega, то заплатит на сотню меньше. В реальности есть некоторые детали — во-первых, нужно учитывать региональные особенности (кое-где никаких мониторов вам не предложат, а набор игр будет не таким привлекательным), а во-вторых — в некоторых случаях, предложенная скидка на приобретение монитора просто не имеет смысла, так как можно купить аналогичную модель за те же деньги и без каких-то скидок.
Кстати, внимательный читатель заметит, что показанные на слайдах видеокарты с воздушным охлаждением существуют двух видов: с серебристым корпусом системы охлаждения и чёрным, причём, по одной цене. В действительности, отличия между ними есть только по корпусу, а по остальным характеристикам они идентичны. Первые выпущены ограниченной серией и закончатся в продаже довольно быстро, если уже не (есть такие данные, что первые партии уже в основном распроданы).
Референсный вариант Radeon RX Vega 64 предлагается по рекомендованной цене в $499, и эту цену нельзя назвать слишком уж привлекательной, ведь на рынке по схожей цене давно продаётся такая модель, как GeForce GTX 1080, в том числе и в виде фабрично разогнанных версий. Именно с ними и конкурирует новинка. Насколько хорошо это у неё будет получаться — мы узнаем в практическом разделе статьи с игровыми тестами.
По понятным причинам, видеокарты Radeon RX Vega 64 существуют исключительно в версиях с 8 ГБ памяти типа HBM2, и даже Vega 56 не будет отличаться по этому параметру. Решение по установке именно 8 ГБ памяти на новый GPU практичное. 4 ГБ на топовую карту ставить нельзя, даже на картах семейства Fury этого было маловато, но и 16 ГБ кажутся расточительством с учётом огромной себестоимости HBM2-памяти. Так что 8 ГБ можно считать «золотой серединой», и это хоть и не оставляет особого запаса на будущее, но в ближайшее время будет вполне достаточно, особенно учитывая, что видеопамять у Vega можно расширить за счёт системной памяти (подробнее см. далее).
Для дополнительного питания референсная плата использует два 8-контактных разъема, и значение типичного энергопотребления для модели Radeon RX Vega 64 на основе полноценного графического процессора Vega 10 при воздушном охлаждении установлено на уровне 295 Вт. С одной стороны, два разъёма оставляют полезный запас на случай разгона, с другой — выглядят довольно пугающе. Как бы не получилось так, что по потреблению Radeon RX Vega 64 станет рекордсменом — с такими то предпосылками.
Архитектурные особенности Vega
Все анонсированные решения AMD основаны на первом графическом процессоре новой архитектуры Vega, который произведён по 14 нм FinFET LPP техпроцессу и содержит 12,5 миллиардов транзисторов. Этот сложный чип получил название Vega 10 и он содержит в себе в целом порядка 45 МБ SRAM-памяти, разработан для работы на высокой тактовой частоте вплоть до 1,7 ГГц (при условии жидкостного охлаждения), а внутренние связи используют уже известную нам по процессорам компании шину Infinity Fabric. Площадь немаленького чипа составляет 486 мм2 и на следующей фотографии можно наглядно оценить размеры кристаллов Vega (справа), по сравнению с кристаллами Fiji (видеокарты семейства Fury):
Графический процессор Vega 10 относится к архитектуре Graphics Core Next, хоть и значительно модифицированной. Базовым блоком архитектуры является вычислительный блок Compute Unit (CU), из которых собраны все графические процессоры AMD. Вычислительный блок CU имеет выделенное локальное хранилище данных для обмена данными или расширения локального регистрового стека, а также кэш-память первого уровня с возможностью чтения и записи и полноценный текстурный конвейер с блоками выборки и фильтрации, он разделен на подразделы, каждый из которых работает над своим потоком команд. Каждый из таких блоков занимается планированием и распределением работы самостоятельно.
Полноценный графический процессор Vega 10 содержит 4 движка асинхронного исполнения команд, 4 модифицированных геометрических движка и 64 вычислительных блока Compute Unit нового поколения — серьёзно переделанные, по сравнению с предыдущими архитектурами, как заверяют представители AMD. Всего в составе этих вычислительных блоков находится 4096 потоковых процессоров, 256 текстурных блоков и 64 блока ROP. Соответственно, по количество блоков можно понять, что это топовый GPU, предназначенный сразу для нескольких рынков: игрового, вычислительного, профессиональной графики и т. д. Рассмотрим схему нового графического процессора (по клику на изображении доступна увеличенная версия иллюстрации):
Хотя по количеству блоков Vega 10 повторяет чип Fiji, новое решение отличается специальными оптимизациями для работы на повышенной частоте, а также включает множественные архитектурные модификации, улучшающие производительность и энергоэффективность. К примеру, самая мощная модель Radeon RX Vega 64 Liquid Cooled Edition с жидкостным охлаждением способна дать производительность в 13,7 терафлопс при вычислениях с одинарной точностью и 27,4 терафлопс для 16-битных вычислений половинной точности, поддержка которых появилась в Vega.
При проектировании нового чипа для снижения задержек инженеры AMD воспользовались опытом создания архитектуры Zen, на 8% сократив внутренние задержки, получив на 18% меньшую площадь на кристалле для внутренних линий с почти вдвое меньшим потреблением энергии. Все линии данных в чипе на критических участках были укорочены и оптимизированы, основные ALU имеют четыре стадии, чип оптимизирован по утечкам, и в результате (вклад нового техпроцесса также учитываем) Vega 10 может работать на частоте до 1,7 ГГц, хотя предыдущие 28 нм чипы довольствовались частотой порядка 1,0–1,3 ГГц.
Графический процессор Vega 10 стал первым, в котором используется внутренняя шина Infinity Fabric, имеющая низкие задержки и предназначенная для соединения всех блоков процессора друг с другом. Так как эта шина стала стандартной для всех современных решений AMD, то она позволяет использовать гибкий модульный подход при создании различных чипов, в которых можно использовать любые блоки. В представленном GPU каналы данных Infinity Fabric соединяют основное графическое ядро с другими логическими блоками, такими как контроллеры памяти, контроллер PCI Express, дисплейный движок, движок обработки видеоданных. Благодаря использованию Infinity Fabric во всех них, встраивать возможности архитектуры Vega в будущие чипы (кто сказал APU?) будет намного проще.
Новая иерархия памяти с высокопроизводительным кэшем
В графическом процессоре Vega 10 используется HBM2-память с поддержкой ECC, важной для профессиональных применений, расположенная на одной подложке с самим GPU. Новый чип имеет HBM2-память, работающую по 2048-битной шине при тактовой частоте, близкой к 1 ГГц, что даёт высокую пропускную способность в 484 ГБ/с. В достижениях именно HBM2-памяти, по сравнению с первым поколением высокопроизводительной памяти — теоретически еще большая пиковая пропускная способность. HBM второго поколения может быть вдвое быстрее первого (хотя в случае Vega решили оставить ПСП на том же уровне). Также доступна до восьми раз большая емкость на каждый стек чипов памяти, что было наибольшим недостатком и самым обидным ограничением HBM1-памяти, известным по графическим процессорам Fiji, на которых основаны видеокарты серии Fury.
Отметим и традиционные преимущества HBM2 перед GDDR5-памятью, вроде более чем вдвое меньшего физического размера, занимаемого на печатной плате — именно поэтому и стало возможно создание таких малогабаритных плат, как Radeon R9 Nano и планируемой к выпуску RX Vega Nano (название условное, мы сами придумали). Также сотрудники AMD заявляют, что новый тип памяти, который планируется применять в Vega, до четырех-пяти раз более энергоэффективен, по сравнению с привычной GDDR5-памятью.
Теоретически возможен объем памяти до 32 ГБ, раз нам говорят о восьмикратном приросте поддерживаемого объёма на стек. Пока что в AMD решили поставить на игровые чипы 8 ГБ HBM2-памяти, а на профессиональные решения для высокопроизводительных вычислений — 16 ГБ. Это и понятно, ведь себестоимость этой новой памяти весьма велика, а 8 ГБ до сих пор хватает практически всем играм почти в любых условиях и настройках. А если и не хватит, то Vega будет использовать системную память, и вот об этой возможности мы сейчас и поговорим.
Самое любопытное в подсистеме памяти Vega то, что HBM2-память можно использовать как кэш-память для данных, которые находятся на медленных носителях. По сути, HBM2 в Vega используется как кэш-память последнего уровня для системной памяти и накопителей данных. По словам представителей AMD, высокопроизводительный кэш и его контроллер позволяют использовать плоскую виртуальную адресацию до 512 терабайт данных на разных носителях, и его работа полностью прозрачна для пользовательских приложений. 512 ТБ — это 49-битный доступ, но почему именно столько? Потому что этого как раз достаточно для того, чтобы с большим запасом покрыть 48-битную виртуальную адресацию современных CPU вместе с локальной видеопамятью GPU, что позволяет получить доступ к полному и единому адресному пространству памяти CPU и GPU, а также к дополнительным данным на накопителях.
При рендеринге, GPU требуется доступ ко всем ресурсам и данным, используемым в сцене, и обычно все они должны помещаться в локальную видеопамять. Альтернативный подход предлагает подкачивать недостающие данные из системной памяти по PCI Express шине, но зачастую такой метод не обеспечивает достаточной ПСП и имеет большие задержки. Конечно, игровые разработчики стараются обходить эти ограничения при помощи специальных хаков в коде, но сложное управление памятью — явно не то, чем бы они хотели заниматься, а объём локальной видеопамяти всегда ограничен.
По исследованиям AMD, игры The Witcher Wild Hunt и Fallout 4 в 4K-разрешении при ультра-настройках качества в реальности используют примерно вдвое меньше данных из локальной видеопамяти, чем они заполнили ее объема. К примеру, если игра заняла всю имеющуюся локальную видеопамять объемом в 8 ГБ, то при рендеринге кадра в реальности осуществляется доступ к ресурсам, занимающим вдвое меньший объем. То есть, играм технически совсем не обязательно было занимать все 8 ГБ, можно было бы обойтись и 4 ГБ локальной памяти. Иными словами, в играх видеопамять зачастую уже и так используется как общее адресное пространство, которое графический движок заполняет геометрией и текстурами. Фактически, можно хранить только самые важные данные в быстрой кэш-памяти, постепенно подгружая из более медленной все новые и новые ресурсы, требуемые при работе над кадром.
А ведь в дальнейшем объемы, занимаемые ресурсами игр и других приложений, продолжат свой неумолимый рост, и этот вопрос нужно как-то решать. Путь тупого наращивания объема видеопамяти — самый простой, но неоптимальный вариант, да и при этом потребление энергии микросхемами памяти будет расти слишком быстро, поэтому в AMD и решили пойти другим путем, предложив быстрый кэш, подгружающий ресурсы с более медленной памяти большего объема. Важно, что их решение не требует какого-либо вмешательства со стороны разработчиков программного обеспечения, и аппаратная кэш-память сама определяет, какие ресурсы будут нужны в каждый момент времени, подгружая их в быструю память по мере необходимости.
Такой подход позволяет использовать больший объем данных, чем помещается в видеопамяти, но лишь при правильной работе контроллера кэш-памяти. И то — вряд ли он сможет решить все проблемы, когда объем данных, требуемых при работе над сценой, значительно превышает объем быстрой кэш-памяти. Но в теории все выглядит красиво — с точки зрения ПО будет некая общая память, размещением данных в каждой из составляющих которой, и их менеджментом не нужно заниматься разработчику, а всё делается графическим процессором автоматически.
Для того, чтобы HBM2-память работала как кэш для системной памяти, энергонезависимой памяти (твердотельные SSD-накопители) или даже сетевых накопителей, нужно специальное управление всей этой иерархией — чтобы GPU брал данные из одного места и сохранял их в других по мере необходимости. Для решения этих задач в графический процессор Vega был внедрен новый контроллер высокопроизводительной кэш-памяти — High Bandwidth Cache Controller (HBCC).
Архитектура виртуальной памяти Vega использует страницы памяти разного размера (размер страниц настраивается, большие страницы лучше подойдут для последовательного доступа, а маленькие для случайного), неактивные перемещаются в более медленное хранилище, освобождая кэш для активных страниц памяти. При этом не требуется сложного управления памятью со стороны приложения, да и хранить все данные в быстрой локальной памяти (кэше) не обязательно. Такой подход позволяет использовать виртуально бесконечный объём ресурсов из многих миллионов треугольников и сотен гигабайт текстурных данных. В принципе, это похоже на поддержку виртуальной памяти в графических процессорах конкурента, но его решения имеют подобные возможности только для вычислительных применений, но не в графических задачах.
Если GPU пытается получить доступ к данным, не находящимся в локальной памяти, он подтягивает только требуемые страницы памяти по шине PCI Express, и сохраняет их в высокопроизводительном кэше (она же HBM2-память), вместо того, чтобы заставить весь чип простаивать до копирования ресурса целиком (например, если это большая текстура на несколько мегабайт) по шине. Разница между подходами в том, что маленькие страницы памяти меньше текстур и других ресурсов целиком, и их можно скопировать в кэш намного быстрее. А уже после копирования в кэш, любой доступ к данным внутри страницы будет максимально быстрым, так как она целиком находится в HBM2.
AMD называет такую новую архитектуру памяти революционной и для игровых и для профессиональных применений. Процессоры, основанные на архитектуре Vega, потенциально имеют лучший аппаратный менеджмент памяти, по сравнению с привычными программными решениями. К примеру, весьма интересно выглядит профессиональная карта Radeon Pro SSG с SSD-накопителями на борту, которые позволяют иметь видеопамять очень большого объёма (терабайты!), со сниженными задержками и высокой ПСП. Подобные решения могут использоваться при качественном рендеринге и редактировании видеоданных в 8К-разрешении и уже применяются в профессиональной сфере.
Важно, что можно использовать различные режимы работы высокопроизводительного кэша HBM2: inclusive и exclusive, с иерархической или плоской моделью памяти, а также устанавливать необходимый размер страниц, которые оптимизируются для частных случаев: маленькие страницы для случайного доступа и большие для последовательного.
Доступ к большому объёму видеопамяти с аппаратным менеджментом в теории позволит игровым разработчикам создавать уникальные игровые миры большого размера с высокой детализацией, лучшим освещением и анимацией, без традиционных опасений вылететь за пределы имеющегося объёма локальной видеопамяти. Но пока что это лишь теория, а практически новой технологией компании AMD заинтересовались, к примеру, в компании Bethesda, известной по играм с виртуальными мирами огромного размера, и наверняка какие-то их грядущие проекты будут использовать возможности HBCC.
Чтобы получить максимум от новой иерархии памяти в Vega, все исполнительные блоки нового GPU получили доступ к кэш-памяти второго уровня (L2), что отличается от предыдущих чипов архитектуры GCN, в которых пиксельные движки имели собственные независимые кэши. Это также важно для различных техник, использующих рендеринг в текстуры, например (карты теней, отложенное затенение и многое другое. А также, так как L2-кэш теперь играет ещё более важную роль в новой иерархии памяти и из-за применения тайловой растеризации (см.далее), то в AMD решили вдвое увеличить его объём — до 4 МБ, по сравнению с 2 МБ у предыдущих GPU компании.
Ещё одно важное отличие Vega от ранних графических архитектур, которое мы отметим — если пиксельные и текстурные блоки предыдущих GPU не могли обращаться к памяти одновременно (когерентность памяти), то теперь блоки растеризации RBE (render back-end) имеют быстрый доступ к кэш-памяти второго уровня и используют ее для экономии ПСП видеопамяти. Все это в теории должно помочь серьезно увеличить производительность в игровых и профессиональных приложениях, использующих отложенное затенение (deferred shading), в частности.
Геометрические движки нового поколения
Нововведения в графической архитектуре Vega многочисленны, и связаны они не только с подсистемой памяти. Также в новом GPU были сделаны и улучшения в геометрическом конвейере, более гибком и программируемом, чем предыдущие. Не секрет, что одной из наиболее существенных проблем 3D-графики с давних времён является так называемый overdraw — многократная прорисовка одних и тех же пикселей на экране, относящихся к разным поверхностям и моделям, которые загораживают друг друга так, что камере виден лишь ближайший пиксель.
После всех оптимизаций в кадре и так присутствует несколько миллионов полигонов, но если прорисовывать всю геометрию уровня, то это значение вырастет в десятки раз, и графический процессор большую часть времени будет заниматься бесполезной работой по отрисовке тех пикселей, которые пользователь никогда не увидит. Для оптимизации существует большое количество алгоритмов, включающих сравнение Z-координат и другие методы, предназначенные для отбрасывания невидимой геометрии, но её всё равно остаётся больше, чем необходимо.
Новый программируемый геометрический движок в графическом процессоре Vega 10 включает несколько нововведений, позволяющих увеличить итоговый темп обработки геометрии — по данным AMD, новый GPU способен обрабатывать геометрию значительно быстрее, по сравнению с решениями предыдущих поколений. Если графический процессор Fiji имеет четыре движка геометрии и обрабатывает четыре полигона за такт, то GPU новой архитектуры Vega с тем же количеством геометрических движков способен обрабатывать до 17 полигонов за такт (в определённых условиях). Также специалисты компании AMD смогли улучшить балансировку загрузки различных вычислительных блоков работой при помощи продвинутого блока распределения работы.
Более того, AMD уже некоторое время выступает за довольно радикальное изменение существующего геометрического конвейера и введение новых типов шейдеров. Каждая стадия существующего графического конвейера имеет свои недостатки, обусловленные ограничениями старых GPU, но новые графические процессоры их не имеют и являются более гибкими. Специалисты компании предлагают ввести Primitive Shaders — новую аппаратную стадию конвейера, которая объединяет проходы вершин и примитивов и позволит отбрасывать невидимые примитивы очень рано, повысив общую эффективность работы.
Эти новые шейдеры могут работать над различными типами примитивов (вершины, полигоны, патчи), и у них много потенциальных применений, кроме отбрасывания невидимых примитивов: для ускорения исполнения вершинных шейдеров, при рендеринге карт теней, систем частиц, рендеринге с переменным разрешением и т. д. И хотя Vega и сама по себе быстрее Fiji обрабатывает геометрию, предлагаемое изменение конвейера позволяет повысить скорость ещё втрое-вчетверо! Хотя Vega 10 имеет четыре геометрических движка, которые в обычных условиях могут обрабатывать четыре же примитива за такт, это значение вырастает до 17 и более при условии применения шейдеров примитивов.
Новый тип шейдеров не заменяет предыдущий подход с традиционным конвейером, а дополняет его. Шейдеры примитивов невозможно использовать в рамках текущих API и приложений без соответствующих изменений, но компания сотрудничает с ведущими разработчиками для того, чтобы заинтересовать их. Плюс к этому, специалисты AMD могут использовать новый подход для специфических оптимизаций под конкретные приложения в своих драйверах.
Произошли и изменения, связанные с новой иерархией памяти (кэширования данных). Геометрические движки теперь могут использовать начиповую кэш-память второго уровня для хранения вершинных данных. Эта возможность дополняет имеющийся выделенный кэш параметров, который удвоился в объеме, по сравнению с решениями предыдущего поколения Polaris. Возможности кэширования геометрии стали более гибкими и они позволяют видеодрайверу выбрать оптимальный подход для различных вариантов использования.
Ещё одно улучшение в обработке геометрии в Vega — улучшенная балансировка нагрузки между несколькими имеющимися геометрическими движками. Для этого в новом GPU есть специальный блок — интеллектуальный диспетчер intelligent workload distributor (IWD), который максимизирует загрузку движков, настраивает параметры геометрического конвейера в зависимости от вызовов функций отрисовки (draw calls), которые он получает от ПО. Диспетчер IWD старается минимизировать простои геометрических движков, связанные с переключениями контекста при выполнении вызовов функций отрисовки и пакует несколько небольших вызовов, которые не заполняют wavefront из 64 потоков, в один большой пакет.
Вычислительные блоки NCU и двойной темп для 16-битных вычислений
Из других важных изменений Vega 10 отметим улучшения, связанные с вычислительными блоками нового поколения, которые назвали Vega NCU — Next-Generation Compute Unit. Одной из самых важных новых возможностей вычислительного блока следующего поколения является Rapid Packed Math — двойной темп операций вычислений над целочисленными данными и данными с плавающей запятой половинной точности — то есть, INT16 и FP16 (по сравнению с общепринятыми в&nb