ОЗУ в контексте интегрированной и дискретной графики

14 Окт 2018

ОЗУ в контексте интегрированной и дискретной графики

Чтобы проанализировать влияние производительности оперативной па­мя­ти на результаты различных видов бенчмарок, можно использовать мо­дель, в которой центральный и графический процессоры (один или не­сколь­ко) вы­ступают в качестве инициаторов опе­ра­ций чте­ния и за­пи­си дан­ных, а сис­тем­ное ОЗУ — исполнителем этих операций.

Экспериментировать будем на процессорных решениях от AMD. Это по­зво­ля­ет задействовать в тестах как интегрированные GPU, так и дис­к­рет­ные графические чипы. Дополнительный бонус — опорная точка в виде дискретной графики NVIDIA GeForce GTX 1050: всегда полезно взглянуть на производительность глазами главного конкурента.


Рис 1. Видеокарта ASUS ROG Strix RX Vega 64 Gaming в упаковке

В качестве базовой графической платформы возьмем лучшую видеокарту по соотношению цена/качество — ASUS ROG Strix RX Vega 64 Gaming. Это продвинутый и улучшенный вариант хорошо нам знакомой и весьма популярной платы на Radeon RX Vega 56.


Рис 2. Фрагмент печатной платы ASUS X570ZD

Возьмем в оборот также интегрированный видео контроллер в мобильном исполнении — AMD RX Radeon Vega 10 на платформе ASUS X570ZD в составе центрального процессора Ryzen 7 2700U. На этом ноутбуке есть также и дискретный чип GeForce GTX 1050, по которому и будем сверять показания тестов.


Рис 3. Блок-схема графического процессора семейства AMD RX Radeon Vega

Приняв к сведению топологию Vega-архитектуры, заметим, что в тестах оперативной памяти, например NCRB или AIDA64 Memory Benchmark, главные события развиваются в связке Host CPU System Memory. При этом цент­раль­ный процессор выполняет код, максимально загружающий шину DRAM, выполняя передачу данных без их об­ра­бот­ки и нивелируя влияние кэш-памяти за счет управления объемом передаваемых данных в сочетании с non-tem­po­ral оптимизацией. Графический процессор в этом примере обслуживает только GUI и зна­чи­мой на­груз­ки на сис­тем­ное ОЗУ не создает.

Ситуация принципиально изменяется, если сценарий содержит вычисления, связанные с визуализацией изо­бра­же­ний, как это происходит в тестовой ути­ли­те Geek3D Furmark. В этом случае на доступ к системному ОЗУ будут пре­тен­до­вать уже два устройства: Host CPU и GPU (здесь, если не сказано иное, — Vega Series Processor). Вместе с тем, в случае дискретного GPU, располагающего собственной локальной памятью, последняя возьмет на себя ос­нов­ную ра­бо­ту по об­слу­жи­ва­нию GPU-трафика и зависимость от ха­рак­те­рис­тик сис­тем­но­го ОЗУ уменьшится.

Термин Device Memory, используемый в блок-схеме процессора Vega, в случае дискретного GPU означает собственную локальную память видео адаптера (Physical Device Memory), а в случае интегрированного GPU — вы­де­лен­ный ре­ги­он системного ОЗУ (Region of system for GPU direct access).

3D-тестирование

Начнем с 3D-тестирования, наиболее полно раскрывающего потенциал графических акселераторов — не­отъ­ем­ле­мую часть GPU. В нагруженных полиморфных сценах, задействующих несколько 3D-объектов, картина, в за­ви­си­мос­ти от изменения параметра MSAA (Multisample anti-aliasing), следующая:


Рис 4. Результаты тестирования GPU утилитой Geek3D Furmark в полиморфных 3D-сценах
(по вертикали — значение в FPS)

По мере усложнения задания (за это отвечает параметр MSAA) преимущества дискретного графического адаптера в соревновании с интегрированным видео сходит на нет. Правда, встроенная графика AMD Vega 10 держится на минимально допустимом уровне — 19 FPS, которого, по большому счету, для игр явно не­до­ста­точ­но. В ре­сур­со­ем­ких сце­на­ри­ях те­с­ти­ро­ва­ния на­столь­ные си­сте­мы опе­ре­жа­ют по про­из­во­ди­тель­нос­ти мобильную плат­фор­му в два и более ра­за — и с про­цес­со­ром AMD, и с процессором Intel.

Этот же полиморфный паттерн, усиленный post-FX эффектом, совершенно не влияет на производительность гра­фи­че­ско­го адаптера: GPU без проблем справляется с дополнительной нагрузкой. Статистику для post-FX при­во­дить смысла не имеет.


Рис 5. Результаты тестирования GPU утилитой Geek3D Furmark в изоморфных 3D-сценах
(по вертикали — значение в FPS)

Изоморфная 3D-графика (иллюзия движения с помощью преобразования текстур) оказалась менее чув­ст­ви­тель­ной к производительности GPU. В большей степени на нее влияет архитектура платформы, обеспечивающая тот или иной уровень производительности центрального процессора и его взаимодействия с DRAM. Про­из­во­ди­тель­ность всех GPU в этом ре­жи­ме многократно превышает чувствительность человеческого глаза, поэтому по­лу­чен­ные результаты син­те­ти­че­ско­го теста носят все­го лишь индикативный характер.

Теория вместо выводов

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

Отдельный вид трафика, обозначенный на блок-схеме как MMIO ACCESS, означает программный доступ цент­раль­ного процессора к ресурсам видеоадаптера, расположенным в адресном пространстве памяти. Такой ме­тод вза­и­мо­дей­ст­вия программного обеспечения с графическим контроллером является консервативным антиподом DMA-режима и используется в основном на фазе инициализации видео подсистемы, для операций, тайминг вы­пол­не­ния которых не имеет решающего значения. Системное ОЗУ не участвует в таких транзакциях: их ини­ци­а­то­ром яв­ля­ет­ся центральный процессор, а исполнителем — memory mapped I/O ресурсы видео адаптера.

Выводы вместо теории или софт-фактор

Раскрытие потенциала современных графических ускорителей во многом зависит от уровня программной под­держ­ки, в частности своевременного обновления UEFI и драйверов.

Происходящие изменения далеко не всегда «косметические». В частности, выбор оптимального метода обмена ин­фор­ма­ци­ей между GPU и хост-платформой затрагивает как внутренние операции низкоуровневых драйверов, так и архитектуру приложений, а потому находится в фокусе внимания системных архитекторов. При этом про­грам­мный обмен, классифицированный выше как Legacy-метод, не спешит сдавать позиции, о чем сви­де­тель­ст­ву­ет наличие в новейших графических ускорителях функциональности Resizable BAR Capability позволяющей уп­рав­лять размером диапазона доступа к локальной памяти видео адаптера в адресном пространстве платформы. С дру­гой сто­ро­ны, эта функциональность также требуется для оптимизации peer-to-peer взаимодействия не­сколь­ких GPU.

Post Scriptum

Тестовые исследования выполнялись на следующем оборудовании с установками по умолчанию:

  1. Системная плата ASUS Prime B360-Plus с процессором Intel i5-8400
  2. Системная плата MSI X370 XPo­wer Gam­ing Ti­ta­nium с процессором AMD Ry­zen 5 1600
  3. Комплект модулей оперативной памяти HyperX HX430C15SBK4/16 — 16 ГБ
  4. Видеокарта ASUS ROG Strix RX Vega 64 Gaming с 8 ГБ оперативной памяти
  5. Ноутбук ASUS X570ZD, оснащенный процессором Ryzen 7 2700U, графические подсистемы которого имеют следющий вид:
  • встроенное графическое ядро на базе RX Radeon Vega 10 (кодовые название gfx902) с выделенным в системном ОЗУ регионом 3 ГБ;
  • дискретный видеоадаптер GPU NVIDIA GeForce GTX 1050 (кодовое название GP107) с 4 ГБ опе­ра­тив­ной памяти, подключенный по схеме PCIe x8

При подготовке статьи были использованы ранее опубликованные материалы:

  1. ASUS Vega56 с точки зрения PCI Express
  2. Обновление UEFI улучшает производительность
  3. Как оптимизировать приложения для AMD?
Теги: