Чтобы проанализировать влияние производительности оперативной памяти на результаты различных видов бенчмарок, можно использовать модель, в которой центральный и графический процессоры (один или несколько) выступают в качестве инициаторов операций чтения и записи данных, а системное ОЗУ — исполнителем этих операций.
Экспериментировать будем на процессорных решениях от 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-temporal оптимизацией. Графический процессор в этом примере обслуживает только 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.
Этот же полиморфный паттерн, усиленный FXAA эффектом, совершенно не влияет на производительность графического адаптера: GPU без проблем справляется с дополнительной нагрузкой. Статистику для FXAA приводить смысла не имеет.
Рис 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
Тестовые исследования выполнялись на следующем оборудовании с установками по умолчанию:
- Системная плата ASUS Prime B360-Plus с процессором Intel i5-8400
- Системная плата MSI X370 XPower Gaming Titanium с процессором AMD Ryzen 5 1600
- Комплект модулей оперативной памяти HyperX HX430C15SBK4/16 — 16 ГБ
- Видеокарта ASUS ROG Strix RX Vega 64 Gaming с 8 ГБ оперативной памяти
- Ноутбук ASUS X570ZD, оснащенный процессором Ryzen 7 2700U, графические подсистемы которого имеют следющий вид:
встроенное графическое ядро на базе RX Radeon Vega 10 (кодовые название gfx902) с выделенным в системном ОЗУ регионом 3 ГБ;
- дискретный видеоадаптер GPU NVIDIA GeForce GTX 1050 (кодовое название GP107) с 4 ГБ оперативной памяти, подключенный по схеме PCIe x8
При подготовке статьи были использованы ранее опубликованные материалы: