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

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

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

Экспериментировать бу­дем на про­цес­сор­ных ре­ше­ни­ях от AMD. Это по­зво­ля­ет за­дей­ст­во­вать в тес­тах как ин­те­гри­ро­ван­ные GPU, так и дис­к­рет­ные гра­фи­че­ские чи­пы. До­пол­ни­тель­ный бо­нус — опор­ная точ­ка в ви­де дис­крет­ной гра­фи­ки NVIDIA Ge­For­ce 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?