> > > > Архитектура Vega с памятью HBM2 и новым Compute Engine

Архитектура Vega с памятью HBM2 и новым Compute Engine

Опубликовано:

Вскоре после начала разработки архитектуры Polaris для видеокарт среднего уровня и мобильных GPU AMD приняла решение параллельно создать другую архитектуру, фокусирующуюся на других рынках. Конечно, AMD за последние месяцы представила новые графические ускорители FirePro, но компания "проспала" тенденцию развития таких сфер, как машинное обучение, глубокое обучение и искусственный интеллект. Нынешние GPU AMD из-за своей архитектуры не так хорошо показывают себя в упомянутых областях. Поэтому с архитектурой Vega AMD устраняет данный недостаток. Сегодня AMD опубликовала новую информацию об архитектуре Vega, которая позволяет оценить, что нас ждет в 2017.

В статье мы раскроем некоторые подробности архитектуры, о которых мы не могли говорить в середине декабря, когда опубликовали статью с мероприятия Radeon Instinct. В то время некоторые детали архитектуры Vega уже были известны, но AMD официально их не подтверждала.

При разработке архитектуры AMD расширила требования, теперь они касаются не только чистой вычислительной производительности потоковых процессоров, но и инфраструктуры памяти. Разработка технологий High Bandwidth Memory, GDDR5X и других вариантов многослойной памяти, подобных 3D XPoint от Intel и HMC от Micron, наглядно доказывают, что память становится важным фактором. В играх в память записываются гигабайты данных, которые потом считываются. При обработке видео объем данных увеличивается до нескольких петабайт. Если посмотреть на вычислительные области, которые AMD планирует атаковать с архитектурой Vega, то там и несколько экзабайт уже не редкость. С новой архитектурой AMD пытается устранить дисбаланс между вычислительной производительностью и подсистемой памяти.

Новая технология памяти

Поэтому в рамках презентации архитектуры Vega существенное внимание было уделено новой архитектуре памяти. Важным компонентом стал кэш High-Bandwidth Cache, который работает для всех видов памяти, доступных для GPU. Неважно, какая память используется: GDDR5, GDDR5X или HBM 1-го или 2-го поколений.

Преимущества новых технологий памяти, подобных HBM2, вполне очевидны. Пропускную способность памяти получилось удвоить до 1.024 Гбайт/с. Доступная емкость составляет до 32 Гбайт, если использовать четыре стека по 8 Гбайт каждый.

HBM2 дает гибкую конфигурацию подсистемы памяти

Пока что память High Bandwidth Memory в настольном сегменте используется у видеокарт семейства Radeon R9 Fury X. Но только первого поколения. AMD использует четыре стека HBM емкостью 1 Гбайт каждый с пропускной способностью 128 Гбайт/с на стек. Частота составляет 500 МГц, суммарный объем 4 Гбайт с пропускной способностью 512 Гбайт/с.

NVIDIA представила в прошлом году GPU-ускоритель Tesla P100, пока единственную модель с памятью HBM второго поколения. Чип использует четыре стека памяти, каждый емкостью 4 Гбайт и пропускной способностью 180 Гбайт/с. В сумме мы получаем 16 Гбайт памяти, пропускная способность памяти Tesla P100 составляет 720 Гбайт/с. В случае HBM2 тактовую частоту можно теоретически удвоить, поэтому мы получаем 256 Гбайт/с на стек, но NVIDIA с ускорителем Tesla P100, по всей видимости, не стала рисковать. Либо чипы памяти Samsung не были способны работать на столь высокой частоте.

В отличие от HBM1, память HBM2 можно конфигурировать более гибко. В частности, HBM2 можно устанавливать в стеках емкостью 2 (2Hi HBM2), 4 (4Hi HBM2), 8 (8Hi HBM2) и 16 Гбайт (16Hi HBM2). Пока что SK Hynix и Samsung выпускают память HBM2 в стеках емкостью только до 8Hi HBM2. Спецификации памяти 16Hi HBM2 утвержден, но пока что она существует только на бумаге. Также и число стеков может быть разным, от него зависит суммарная емкость и пропускная способность.

Некоторые преимущества High Bandwidth Memory уже были видны по первому поколению на видеокарте Radeon R9 Fury X. Мы получили очень высокую пропускную способность 512 Гбайт/с, при этом память HBM1 была в два раза более эффективной, поскольку потребляла меньше энергии. Наконец, High Bandwidth Memory располагалась на подложке рядом с GPU, то есть в одной упаковке. Поэтому память занимала на PCB гораздо меньше места.

К сожалению, сегодня нельзя просто наращивать объем DRAM. Иначе пришлось бы увеличивать площадь PCB, да и энергопотребление заметно возрастало бы. Определенную гибкость можно получить через гетерогенную структуру памяти. Для ее поддержки AMD разработала HBCC (High-Bandwidth Cache Controller). Контроллер обеспечивает управление и работу с разными технологиями памяти.

В реальных условиях важны не только объем и скорость памяти, существует множество других факторов, позволяющих повысить эффективность системы в целом. Некоторые данные, например, можно не размещать в высокопроизводительной памяти, поскольку GPU их обрабатывает с фиксированной скоростью. Таким образом, управление данными переходит от игровых разработчиков на AMD и архитектуру. До сих пор разработчики использовали всю память, которая доступна. Собственно, они получали к ней полный доступ. Конечно, на качественную и эффективную реализацию придется потратить время и деньги.

Radeon Pro SSC c SSD стал первым шагом в данном направлении, в архитектуре Vega он уже полностью поддерживается. Допускается сочетание разных технологий памяти, аппаратное обеспечение возьмет на себя задачу распределения данных и эффективного использования ресурсов.

В рамках новой парадигмы были объявлены новые концепции и функции. Видеопамять и кадровый буфер AMD теперь называет High-Bandwidth Cache. С ним работает новый High Bandwidth Cache Controller (HBCC), который распределяет данные в сетевом хранилище, системной памяти и HB Cache. В общей сложности HBCC может обеспечивать до 512 Тбайт виртуального адресного пространства. 49-битная адресация позволяет объединить память всех GPU в единое адресное пространство. Возможно создание пулов памяти. Один физический накопитель может иметь емкость до 256 Тбайт. HBCC решает, куда записать данные в итоге: в быструю или в медленную память. Управление выполняется на уровне драйвера (подобная технология начала применяться еще в Fiji). Кроме того, оптимизируется доступ к памяти, поскольку сегодня только примерно половина данных в кадровом буфере используется в дальнейшем.

На следующих примерах хорошо видно, насколько неэффективно используется память, несмотря на многие оптимизации. В примере сцены Deus Ex: Mankind Divided присутствуют 210 млн. полигонов, но только 2 млн. полигонов видны.

Пока не совсем понятно, какое влияние окажет новая технология памяти. В какой степени драйвер будет управлять контроллером, и какое влияние на его работу получат программисты? В DirectX 12 управление памятью находится в руках разработчиков. Но AMD и NVIDIA, со своей стороны, продолжают вносить оптимизации, адаптированные под соответствующие GPU.

Новый конвейер геометрии

Кроме подсистемы памяти AMD внесла и другие изменения в архитектуру Vega, в том числе и касающиеся конвейера геометрии (Geometry Pipeline). Сейчас пропускная способность конвейера увеличилась в два раза на такт по сравнению с предыдущими архитектурами AMD.

Позвольте провести небольшой экскурс в архитектуру GPU от AMD. AMD продвигает свои архитектуры и наборы инструкций за последние годы под брендом Graphics Core Next (GCN). AMD начала эту традицию еще с первого поколения семейства Radeon HD 7700. Внутри компании архитектура называлась GFX7. Затем нумерации архитектур и поколений GCN разошлись. Далее последовали GCN 2.0 и GCN 3.0 (или GFX8), архитектура Polaris, представленная летом прошлого года, получила обозначение GCN 4.0.

В архитектуре Vega произошло немало изменений, что и обусловило смену нумерации. Архитектура Vega называется GFX9. А варианты Vega 10 и Vega 11 останутся в пределах разброса нумерации архитектур GCN.

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

Новый Compute Engine

Третий важный компонент новой архитектуры – обновленный Compute Engine, и в нем произошли существенные изменения. В частности, теперь мы получили наименование NCU, соответствующее "новым вычислительным блокам".

Новый Compute Engine может выполнять 512 8-битных операций за такт, 256 16-битных операций или 128 32-битных операций. В результате у архитектуры Vega мы получаем соотношение a 4:2:1 для данных операций, как и у GPU Hawaii. Но с двойной точностью не все так гладко. AMD использовала технологию, которая у NVIDIA называется Mixed Precision. 32-битные регистры для 32-битных операций можно разбить на 2x 16-битных регистра для 2x 16-битных операций. Подобный шаг весьма важен для сферы машинного обучения. Кроме того, благодаря другим оптимизациям NCU получили более высокий уровень однопоточной производительности.

Новый Pixel Engine

Блок Pixel Engine тоже был улучшен. Теперь он поддерживает технологию Draw Stream Binning Rasterizer, обеспечивающую лучший уровень сжатия данных. Технология снижает требования к видеопамяти, что также дает преимущества по скорости передачи данных в память или обратно. На сцене расчет идет по объектам, которые могут быть видимы для растеризатора или нет. Алгоритм Draw Stream Binning Rasterizer позволяет скрыть пиксели объекта, которые остаются невидимыми. И выполнять для них затенение больше не требуется. Все это позволяет уменьшить потребляемое пространство в памяти и пропускную способность памяти. В предыдущих архитектурах GPU AMD пиксельная и текстурная память не были синхронизированы, поэтому часто возникали дубли. В случае архитектуры Vega Geometry Pipeline, Compute Engine и Pixel Engine используют доступны кэши L1 и L2 совместно. То же самое касается и задней части конвейера рендеринга.

Конечно, серьезной проблемой для AMD стало использование в GPU все большего числа транзисторов. Все же необходимо увеличивать не только производительность, но и эффективность. Частично улучшения можно получить через оптимизацию техпроцесса, но все же большая часть достигается переходом на новую более современную архитектуру. В случае Vega мы получили, например, новую иерархию памяти, а также оптимизации Compute Engine и Pixel Engine. Одним из результатов разработки, которая началась четыре года назад, стал интерконнект Infinity Fabric.

Infinity Fabric

У процессоров Zen или RYZEN многократно упоминалась инфраструктура Infinity Fabric или Infinity Control Fabric. Но что скрывается за этим термином? Мы попытаемся внести ясность.

С архитектурами Zen и Vega AMD перешла на новый интерконнект под названием Infinity Fabric, над которым AMD работала четыре года. Название Fabric означает полотно, что косвенно указывает на структуру интерконнекта. По информации AMD, Infinity Fabric имеет модульный дизайн и может внедряться с любой степенью сложности. Подобная гибкость позволяет использовать Infinity Fabric во всех новых процессорах и GPU.

Infinity Fabric разделяется на Control Fabric и Data Fabric. Control Fabric отвечает за управление разными участками чипа. На основе Control Fabric работают такие технологии, как управление питанием, функции защиты и безопасности, сброса, инициализации и тестирования. Data Fabric, с другой стороны, обеспечивает высокоскоростную передачу данных внутри архитектуры. Data Fabric используется и для защищенного подключения к памяти. В случае GPU Vega интерконнект работает с чипами HBM2 на скорости до 512 Гбайт/с. С мобильными чипами, к которым подключается память DDR4, достаточна скорость всего 40-50 Гбайт/с. Все это наглядно демонстрирует гибкость реализации Infinity Fabric.

Infinity Fabric является частью не только графической архитектуры Vega, но также процессоров Summit Ridge и RYZEN, как и мобильных процессоров Raven Ridge, которые выйдут во второй половине 2017 тоже под маркой RYZEN. В случае архитектуры Vega интерконнект Infinity Fabric реализован в полносвязной топологии. Причина кроется в том, что GPU содержит тысячи потоковых процессоров, которые необходимо обеспечивать данными, и эффективное распределение данных как раз лучше всего достигается через полносвязную топологию. Что касается процессоров, они используют менее сложную топологию Infinity Fabric. AMD не раскрывает дополнительных деталей, но вполне разумна топология кольца, которую, например, использует Intel.

Но Infinity Fabric – не просто интерконнект внутри кристалла CPU или GPU. Как указывает AMD, Infinity Fabric может использоваться и для соединения сокетов. Также интерконнект является физической основой для AMD HyperTransport. После выхода на рынок Zen и Vega мы наверняка получим более подробную информацию об интерконнекте Infinity Fabric.

До первых аппаратных реализаций пройдет некоторое время

Во время демонстраций на мероприятии Radeon Instinct Раджа Кодури, глава Radeon Technologies Group, упомянул, что демонстрируемое аппаратное обеспечение было выпущено считанные недели тому назад. Первые пробные кристаллы Vega 10 были выпущены, по всей видимости, летом. Примерно такие же временные рамки AMD закладывала для архитектуры Polaris. Тогда первые пробные чипы появились в конце ноября или начале декабря 2015, а видеокарта Radeon RX 480 вышла в июне 2016, как раз спустя полгода. Тот же самый ритм, скорее всего, будет соблюдаться и для Vega, то есть первые видеокарты вряд ли стоит ждать раньше мая или июня 2017.

По фотографиям мероприятия тоже можно выделить некоторые интересные подробности архитектуры Vega. Раджа Кодури много раз демонстрировал GPU камерам журналистов. В упаковке GPU хорошо видны два стека HBM. То есть GPU может работать с 8 или 16 Гбайт памяти HBM2. Но у тестовой системы мы обнаружили только 8 Гбайт.

На данный момент неизвестно, какая реализация архитектуры Vega демонстрировалась. Скорее всего, AMD показывала Vega 10, то есть самую "младшую" версию. Позвольте вернуться к демонстрационной системе Vega и 8 Гбайт памяти. В случае HBM2 для AMD вполне логично использовать два стека памяти. С памятью 4Hi HBM2 мы получим емкость 8 Гбайт, с частотой 1.000 МГц пропускная способность составит 256 Гбайт/с на стек или 512 Гбайт/с в сумме.

Если предположить, что Radeon Instinct MI25, тоже опирающийся на GPU Vega, для которого AMD указала вычислительную производительность 25 TFLOPS (FP16), использует 4.096 потоковых процессоров, то частота GPU составляет 1.520 МГц. Посмотрим, какую частоту GPU AMD выставит для настольных видеокарт. Судя по частоте кадров в DOOM в разрешении 3.840 x 2.160 пикселей и качестве Ultra, первые видеокарты Vega будут чуть быстрее GeForce GTX 1080. Но более точную оценку пока провести нельзя.

AMD будет постепенно раскрывать технические спецификации, а мы будем радовать читателей новостями. Чипы, скорее всего, производятся по 14-нм техпроцессу. Судя по фотографиям GPU и известной площади стеков HBM2 (7,75 мм × 11,87 мм и 91,99 мм²), площадь кристалла составляет от 520 д 540 мм². У GPU Polaris 10 на площади 232 мм² располагалось 5,7 млрд. транзисторов. У чипа Vega 10 с площадью 520 мм² можно ожидать порядка 12,8 млрд. транзисторов, то есть чип будет на уровне сложности GPU GP102 или NVIDIA Titan X. Если площадь значительно превысит 500 мм², то первые GPU Vega окажутся намного сложнее, чем предполагалось изначально. И чистая вычислительная производительность может быть существенно выше, чем у NVIDIA GeForce GTX 1080.

В любом случае, нам следует дождаться первых видеокарт на GPU Vega. К моменту их объявления AMD наверняка поделится дополнительной информацией. Будем надеяться, что вскоре мы получим ответ на вопросы о частоте и производительности.