Развенчиваем мифы о производительности видеокарт | Пересмотр сложившихся мифов
Современные видеокарты – это сложные устройства. Не удивительно, что вокруг них возникает множество мифов и заблуждений. Сегодня мы представляем вашему вниманию вторую часть статьи, в который мы развенчиваем мифы о производительности видеокарт. С первой частью можно ознакомиться здесь.
Если коротко, в первой части мы:
- Определили понятие производительности и проиллюстрировали его значение.
- Объяснили особенности работы (и сложности) технологии вертикальной синхронизации V-sync, и выяснили, в каких случаях её лучше включать, а в каких отключать.
- Узнали ряд удивительных фактов, о том, сколько видеопамяти потребляет Windows 8.1 (и Windows 7 с Aero).
- Поговорили о времени отклика, задержке ввода, различных факторах, влияющих на задержку ввода и их значении.
- Подробно рассмотрели потребление видеопамяти и требования к ней, а затем разобрались, сколько памяти вам действительно нужно.
- Объяснили, каким образом современные видеокарты справляются с тепловыделением и обсудили акустическую эффективность на примере нескольких референсных видеокарт.
- Показали, что разгон не всегда помогает, когда карта уже работает в диапазоне температурного троттлинга.
Данная тема подразумевает изучение огромного количества технического материала, поэтому нам пришлось разделить статью на две части. Во второй и третьей частях мы рассмотрим следующие темы:
- Мы рассмотрим интерфейс PCI Express и узнаем, сколько линий PCIe необходимо, чтобы получить максимальный уровень производительности при использовании современных видеокарт.
- Мы объясним, почему архитектура Nvidia Maxwell показывает хорошие результаты при невысокой пропускной способности памяти, экспериментируя с малоизвестным API, который оценивает пропускную способность видеопамяти и использование шины PCIe.
- Мы ответим на вопросы, связанные с выводом изображения, и коснёмся проблемы выбора диагонали дисплея, использования HDTV и различных технологий сглаживания.
- Мы рассмотрим различные технологии подключения дисплея: DVI, HDMI и DisplayPort, а также особенности каждого стандарта.
- Мы коснёмся вопросов управления эффективностью и соотношения стоимости и производительности железа.
- Мы подведём итог того, что уже знаем, что мы слышали и попытаемся представить, что нас ждёт в будущем.
В комментариях к первой части вы подкинули нам несколько хороших идей
Многие энтузиасты прокомментировали наши тесты при уровне шума 40 дБ (А) на англоязычном форуме, в Reddit и на других тематических сайтах. Некоторым они понравились, некоторые посчитали, что уровень 40 дБ (A) больше подходит для тихого ПК, нежели производительного, и хотели бы, чтобы мы установили более высокий предел. Почти все прокомментировавшие предложили добавить в тесты видеокарты помимо референсных Radeon (с кулерами сторонних производителей).
Мы вас услышали. Сейчас ведутся переговоры с AMD, и мы планируем предложить OEM-производителям предоставить свои версии карт на базе референсного дизайна Radeon для общего сравнения на заданном уровне шума, и скорее всего, тесты будут проводиться как на уровне 40 дБ (А), так и на уровне 50 дБ (А) (напомним, что звук на уровне 50 дБ (А) вдвое громче, чем на 40 дБ (А)).
Эталонный кулер на дорогих картах Nvidia довольно хорош. Поэтому выгода от использования партнёрских версий GeForce не так велика, как в случае AMD, которая оснащает топовые карты менее удачными эталонными кулерами. Так что в этом отношении мы в основном концентрируем внимание на продуктах AMD, хотя мы могли бы добавить несколько карт Nvidia.
Также мы заметили, что многие читатели оценили наши ссылки на самостоятельные тесты аудио/видео (хотя не все из них используют научный подход). Мы использовали эту концепцию в статье “Компьютер как Hi-Fi аудиоплатформа: что для этого нужно”, в которой также представлен любопытный набор тестов.
Также поднимались вопросы о значении задержки ввода в “тормозящих” играх и приложениях виртуальной реальности. И она действительно важна, поскольку постоянные притормаживания на удивление быстро могут заставить отказаться от игры.
Мы получили множество вопросов о значении объёма видеопамяти (2 и 4 Гбайт), особенно в отношении видеокарт GeForce GTX 760 и GeForce GTX 770 от Nvidia. Из опроса об используемом аппаратном обеспечении в Steam, который мы опубликовали в первой части статьи, большинство игроков используют видеокарты с объёмом памяти 1 Гбайт и меньше, а распространение видеокарт с 2 Гбайт на борту всё ещё находится на ранней стадии. Хотя 4 Гбайт памяти могут быть полезны в ряде нестандартных сценариев (например, две или три GeForce GTX 770 в SLI для игр на 4K- дисплее или использование модификаций текстур высокого качества в разрешении 1440p), маловероятно, что 4 Гбайт в ближайшее время станут стандартным объёмом видеопамяти для графических карт широкого профиля. Кроме того, имейте в виду, что 8 Гбайт памяти в Xbox One и PS4 являются общими. Лишь часть используется как классическая видеопамять, остальное уходит под нужды ОС, данных и исполнение кода приложений/игры. Возможно, с 2-гигабайтовыми видеокартами, на высоких разрешениях иногда придётся жертвовать сглаживанием MSAA в пользу FXAA / MLAA. Насколько это серьёзный компромисс – решать вам.
Не обошлось и без критики, особенно касательно разгона видеокарты при сохранении скорости вращения вентилятора (для сохранения низкого уровня шума). Возможно, наша цель была не конца понятна. Мы хотели донести, что производительность при заданном уровне шума, как правило, относительно устойчива к появлениям теплового троттлинга при разгоне (более высокая мощность, или более активное тепловыделение, приводит к частому срабатыванию троттлинга). И, при сохранении постоянного уровня потребления мощности вы можете добиться более высоких показателей разгона, смирившись с более высоким уровнем шума – выбор за вами. Хотим извиниться, если наши объяснения привели вас в замешательство. Чтобы было понятно, мы точно не рекомендуем разгонять карты, сохраняя при этом постоянную скорость вращения вентилятора.
Развенчиваем мифы о производительности видеокарт | Краткое ознакомление с технологией PCIe
Миф: 16-линейный слот PCIe всегда несёт в себе 16 линий
Как глупо это ни звучит, но слот x16 PCIe отличается от конфигурации на 16 линий PCIe
Со стандартом PCI Express нередко возникает путаница. Сначала рассмотрим физические слоты. Их обычно называют x1, x4, x8 или x16. Цифра ссылается на физический размер слота и максимальное число полос PCIe, к которым может получить доступ установленная в него карта.
Маленькие карты помещаются в большие слоты (например, карта x8 или x1 в слоте x16), но более крупные карты не помещаются в короткие слоты (карта x16 в слот x1, например). Видеокарты, за редкими исключениями, разрабатываются под 16 полос и требуют наличия соответствующего слота. В теории, спецификация PCIe позволяет реализовать до 32 полос на слот, хотя слотов больше x16 мы никогда не видели.
Карты/слоты PCIe 32x
Мало кто знает, что, в теории, спецификация PCIe позволяет использовать до 32 полос в любом слоте. Однако мы никогда не видели слоты шире x16. Физический размер слота на 32 полосы будет действительно большим, и его вряд ли удастся реализовать на материнских платах форм-фактора ATX (проводка будет просто ужасной).
Итак, предположим, у вас имеется видеокарта с интерфейсом x16, которая прекрасно входит в слот x16. Означает ли это, что передача данных будет происходить по 16-полосному каналу? Может быть да, а может, и нет. Количество активных полос, относящихся к каждому слоту, зависит от архитектуры центрального процессора (например, Haswell или Haswell-E), наличия мостов (например, PLX PEX 8747) и количества карт, установленных в другие слоты (переключение на аппаратном уровне на большинстве материнских плат динамически изменяет конфигурацию полос в зависимости от их использования). Таким образом, слот x16 может работать в режиме шестнадцати, восьми, четырёх или даже одной активной линии. Узнать это наверняка можно после проверки специальным инструментом, например GPU-Z, хотя и его данные также могут оказаться неверными.
Если не вдаваться в подробности, основное различие между “премиум”-интерфейсом Intel LGA 2011 (поддерживающим процессоры Ivy Bridge-E, например Core i7-4820K, i7-4930K и i7-4960X) и “мейнстримовым” интерфейсом Intel LGA 1150 (поддержка процессоров Haswell, например i7-4770K) заключается в том, что более дорогая платформа предлагает до 40 линий PCIe третьего поколения. Этого достаточно для двух карт в конфигурации x16/x16, трёх карт в x16/x16 /x8 или четырёх карт в режиме x16/x8/x8/x8). LGA 1150 ограничен 16 линиями, и позволяет подключать одну карту в режиме x16, две карты в x8/x8 или три карты в конфигурации x8/x4/x4 CrossFire (Nvidia не позволяет использовать SLI при участии четырёх линий). Конечно, есть исключения. Core i7-5820K от Intel устанавливается в разъём LGA 2011, но ограничивается контроллером PCIe на 28 полос.
Чтобы обойти ограничение по линиям PCIe на платформах LGA 1150, производители системных плат используют “чипы-мосты” PCIe, которые работают как коммутаторы, обеспечивая доступ к большему числу линий PCIe. Самым известным чипом является PEX 8747 от PLX. Он работает с PCIe Gen 3 и отличается довольно высокой ценой. Mouser предлагает их по цене примерно по $100 за штуку при малых объёмах заказов. OEM-производители могут немного сбить цену за счёт покупки больших партий, но, тем не менее, компонент всё равно дорогой. Использование одного этого чип обуславливает перемещение системных плат с разъёмом LGA 115 из более дешёвого ценового сегмента ~$200 в премиальный ~$300+.
Как это отражается на пропускной способности?
Как видите, каждое новое поколение PCIe удваивает пропускную способность предыдущей версии. Четыре полосы PCIe 3.0 примерно эквивалентны восьми линиям PCIe 2.0, которые в свою очередь, эквивалентны шестнадцати линиям PCIe первого поколения.
Четвёртое поколение шины PCIe, запланированное на 2015 год, будет обратно совместимым с сегодняшними технологиями. То есть, видеокарты с интерфейсом PCIe 3.0 (и 2.0) ещё долго будут актуальны, по крайней мере, с точки зрения подключения. Подробные спецификации PCIe 4.0 можно найти на этой странице.
Однако мы до сих по не ответили на вопрос, сколько пропускной способности нам требуется на самом деле.
Развенчиваем мифы о производительности видеокарт | Тестируем три поколения PCIe в режиме x16/x8, от 15.75 к 2 Гбайт/с
Миф: Для реализации полного потенциала видеокарты требуется PCIe x16 (Gen 3).
UEFI системной платы ASRock Z87 Extreme6 включает в себя функцию, позволяющую устанавливать скорость передачи данных через PCIe для каждого слота. Она используется очень редко, но для наших тестов она оказалась замечательной находкой.
У модели Extreme6, в отличие от более дорогой Extreme9, нет чипа PLX PEX 8747; следовательно, плата ограничивается 16 линиями процессора. Кроме того, при аппаратном переключением устанавливается ширина соединения в зависимости от количества используемых видеокарт (одна, две или три), автоматически конфигурируя 16 линий контроллера в режим x16-x0-х0, x8-x8-x0 или x8-x4-x4.
Таким образом, нам удалось протестировать все три поколения в режимах x16 и x8 на видеокартах AMD и Nvidia для энтузиастов. Имейте в виду, что в тестах карты в режиме x8 мы не используем CrossFire или SLI, мы рассматриваем только одну видеокарту
Аналогичный тест проводился в 2011 году, когда основная масса карт работала с PCIe 2.0. Будут ли полученные тогда результаты актуальны и сегодня?
Тесты проводились с помощью бенчмарка Unigine Valley 1.0. В каждом прогоне тестирование начиналось после того, как по достижении теплового тролллинга карты показывали результаты в пределах очень ограниченного диапазона температур/частот. Данные карты способны достичь и более высокой частоты кадров, но нам нужно оценить их поведения в реальных условиях, а из-за активации температурного троттлинга они не могут удерживать более высокие показатели в течение долгого времени.
Как видите, прирост скорости GeForce GTX 690 при переходе с восьми линий PCIe первого поколения (2 Гбайт/с) на шестнадцать линий PCIe третьего поколения (15,7 Гбайт/с) составляет 2,9%, а у Radeon R9 290X (образец для прессы ) – чуть больше 6,4%. В обоих случаях в тесте Unigine Valley 1.0 карты не особенно ограничены интерфейсом PCIe (2,0 Гбайт/с). Поэтому прирост скорости при увеличении пропускной способности интерфейса до 15,75 Гбайт/с в лучшем случае едва заметен.
Хотим предупредить, что мы не тестировали экстремальные конфигурации с тремя или четырьмя картами в SLI/CrossFire. Конечно, было бы интересно узнать, соответствуют ли полученные результаты показателям многопроцессорных графических конфигураций. Учитывая объём занятой полосы пропускания, мы готовы поспорить, что после восьми линий PCIe 2.0 разница будет близка к нулю. Если у вас есть проверенные данные, не стесняйтесь оставлять комментарии к статье!
Выводы и мнения о PCIe
Даже видеокарты для энтузиастов не особо требовательны к полосе пропускания шины PCIe. Если использовать для одной карты PCIe 2.0, PCIe 3.0, восемь или шестнадцать линий, производительность вряд ли изменится. Если у вас есть слот третьего поколения – используйте его. Только не стоит ожидать ощутимого ускорения. Если вы планируете использовать одну видеокарту, не стоит гнаться за обновлениями системной платы и процессора для совместимости с PCI Express третьего поколения.
Ситуация осложняется, если взять в расчёт несколько графических адаптеров. Здесь большинство энтузиастов хотели бы увидеть, к чему приведёт данный эксперимент. Хотя GeForce GTX 690, по сути, представляет собой пару процессоров GK104 с пониженной частотой в SLI на одной печатной плате, желание оценить более экзотические конфигурации вполне понятно. Ссылка на тесты 2011 года, приведённая выше, содержит подобные данные по SLI/CrossFire, стоящие вашего внимания.
Развенчиваем мифы о производительности видеокарт | NVAPI: измерения степени использования полосы пропускания видеопамяти
Экспериментируем с Nvidia NVAPI
Nvidia реализует интерфейс программирования (“NVAPI”) через драйвер GeForce. Этот интерфейс, среди прочего, позволяет производить измерения производительности. Для технически подкованных читателей мы выложили соответствующий раздел в файле заголовка nvapi.h:
ИМЯ ФУНКЦИИ: NvAPI_GPU_GetDynamicPstatesInfoEx
ОПИСАНИЕ: Данный API вызывает функцию NV_GPU_DYNAMIC_PSTATES_INFO_EX для определённого физического GPU. Информация о каждом показателе индексируется в массиве. Например:
– pDynamicPstatesInfo->utilization[NVAPI_GPU_UTILIZATION_DOMAIN_GPU] содержит информацию о GPU. Имеется четыре параметра, отображающие информацию об использовании GPU и динамических граничных значениях P-состояний: графический процессор (GPU), буфер кадров (FB), видеодвижок (VID) и интерфейс шины (BUS).
Кроме приведённой сноски из заголовка, других документов по функциональности этого API нет. Информация ниже лучше всего описывает её работу, хотя многое основано на гипотезах.
- Ожидается, что значение метрики “GPU” является ограничением графической производительности в большинстве игр. Если это значение меньше 100%, то производительность ограничивается другим компонентом, например центральным процессором или подсистемой памяти.
- Интересна метрика буфера кадров (“FB”), если, конечно, она работает, как предполагается. Из названия может показаться, что она измеряет интенсивность использования видеопамяти (процент задействованной памяти). Но это не так. Похоже, она рассчитывает интенсивность использования контроллера памяти в процентах. Если это соответствует действительности, то она измеряет фактическую пропускную способность, используемую контроллером, и измерить данный показатель другими способами невозможно.
- Мы не особенно заинтересованы в измерениях видео движка (“VID”). Он, как правило, не используется в играх, и показатели чаще всего остаются на 0%. Небольшой сдвиг будет заметен при кодировании видео через ShadowPlay или потоковой передаче на Shield.
- Метрика интерфейса шины (“BUS”) связана с использованием контроллера PCIe в процентах. Соответствующие измерения, которые можно отследить в EVGA PrecisionX и MSI Afterburner, называются “”GPU BUS Usage”.
Мы попросили Nvidia пролить свет на внутреннюю работу NVAPI. В ответ Nvidia подтвердила, что FB измеряет коэффициент нагрузки полосы пропускания видеопамяти, но посоветовала не обращать внимания на метрику BUS, поскольку считает её ненадёжной и поэтому не использует.
Мы спросили AMD о наличии аналогичного API или функции, которая бы позволяла проводить подобные измерения. После внутренней проверки представители компании сказали, что такой функции у них нет. Поэтому как бы нам ни хотелось, мы не сможем провести подобные тесты на видеокартах AMD.
Переходим к самим тестам…
Миф: коэффициент нагрузки полосы пропускания видеопамяти и шины PCIe невозможно измерить напрямую
Объём данных, которыми обмениваются между собой видеопамять и графический процессор, просто огромен. Вот почему видеокартам требуются сложные контроллеры памяти, обеспечивающие огромную пропускную способность. В случае AMD Radeon R9 290X пропускная способность достигает 320 Гбайт/с. Nvidia GeForce GTX 780 Ti повышает это значение до 336 Гбайт/с. Максимальная пропускная способность PCIe впечатляет меньше (15,75 Гбайт /с через слот x16 третьего поколения), однако нагрузка на PCIe не так высока. Но какой процент полосы пропускания шины используется в заданный момент времени? Является ли она органичивающим производительность фактором? До сих пор было трудно ответить на эти вопросы. Но мы надеемся, что архитектура Kepler и NVAPI позволят получить более точные данные.
Мы начали наше исследование с метрики BUS на GeForce GTX 690. Хотя, по словам Nvidia этот тест ненадёжен, нам по-прежнему интересно, какие выводы можно сделать из полученных результатов. Однако собирая данные, мы столкнулись с преградой: два графических процессора GK104 нашей карты не связаны с основной шиной PCIe напрямую, а коммутируются через мост PLX PEX 8747. Таким образом, независимо от настроек материнской платы, чипы всегда работают в режиме PCI Express 3.0, кроме случаев, когда они находятся в состоянии энергосбережения. Вот почему GPU-Z показывает, что карта работает в режиме PCIe 3.0, даже когда платформа ограничена PCIe 2.0. Получается, что с линиями предыдущего поколения на стороне хост-процессора работает коммутатор PEX 8747.
Если контроллер шины каждого GPU работает с интерфейсом PCIe 3.0 на 16 линий, то при нагрузке 100% пропускная способность должна составлять 15,75 Гбайт/с. Однако эта информация сама по себе мало что значит. Невозможно сказать, сколько трафика идёт на хост и сколько – на другой GPU. Кроме того, коммутатор PLX не даёт возможность получить более детальные данные. В настоящее время мы имеем дело с худшим сценарием: каждый GPU получает все данные с хоста, и они не группируются.
Учитывая вышесказанное, посмотрите на график выше. Он соответствует 200-секундной пробежки в BioShock: Infinite на пользовательских настройках графики с разрешением 3840×2160 точек, со средним показателем частоты кадров 80 FPS. Использование шины PCIe для каждого GK104 составило примерно 15%. Даже в таком теоретически худшем сценарии мы используем около 30% полосы пропускания интерфейса PCIe 3.0 x16 или около 60% слота CPIe 2.0 x16. Это достаточно жёсткий сценарий, в котором на двух GPU в SLI на одной плате визуализируются 663600000 пикселей в секунду (3840×2160 х 80 кадров в секунду). Для сравнения, в режиме 1920×1080 х 60 FPS выводятся 124 400 000 пикселей в секунду.
Учитывая недостатки в тестировании GeForce GTX 690, в дальнейших тестах мы будем использовать GeForce GTX 750 Ti и GeForce GTX 650 Ti. Семь диаграмм ниже могут показаться слишком перегруженными, но их нужно рассматривать вместе. Графики основаны прогоне двух вышеупомянутых карт через бенчмарк Metro: Last Light.
Начиная с первого графика, по порядку идут следующие тесты: использование ядра GPU (%), использование видеопамяти (Мбайт), температура ядра GPU (по Цельсию), количество кадров в секунду, время кадра (в миллисекундах), использование “FB” (%) и “BUS”(%). Мы опустили значения тактовых частот ядра и памяти, поскольку они были зафиксированы на соответствующих значениях в GPU Boost.
Процент использования GPU показывает, что графический процессор обеих карт является основным “узким местом” в системе. Большую часть времени нагрузка составляет 100%. Такой результат ожидаем и легко объясним. Ядро GPU в играх нагружается сильнее всего.
Процент использования памяти до 1 Гбайт остаётся стабильным. Здесь говорить особо не о чем.
Естественно, GPU постепенно нагреваются. Однако, по сравнению с видеокартами для энтузиастов, эти чипы показали невысокую температуру.
Чаще всего геймеры обращают внимание на частоту кадров, и мы видим, что GeForce GTX 750 Ti быстрее GTX 650 Ti. Средняя частота кадров в данном эксперименте нужна в качестве измерения пропускной способности, чтобы использовать их для корректировки, которую мы проведём позже.
Скачки времени подачи кадра обуславливают значительные колебания данного параметра. Эти скачки совпадают с повышенной (не пониженной) частотой кадров и с пониженной (не повышенной) нагрузкой на GPU. Это может быть бесспорным доказательством наличия “узкого места” в платформе (хотя в данном случае оно не играет большого значения, так как процент нагрузки на GPU остаётся в диапазоне 95%; если влияние “узкого места” в платформе было бы сильнее, то коэффициент нагрузки был бы значительно ниже). В любом случаи, хоть это и интересные наблюдения, это немного не то, что мы хотели получить.
Процент использования “FB” или “буфера кадров” – одна из новых метрик в рамках NVAPI. Показатель выражается в процентах, и, на самом деле, его название немного некорректно. Фактически тест измеряет в процентах времени “занятости” контроллера памяти каждого GPU и, по совместительству, коэффициент использования полосы пропускания.
Кстати, мы не выбирали эти две карты наугад. Мы выбрали их, потому что они оснащаются одинаковым 128-битным интерфейсом памяти с частотой 1350 МГц, обеспечивая пропускную способность до 86,4 Гбайт/с. При равны показателях (FPS) их коэффициенты использования полосы пропускания должны быть сопоставимы. Однако показатели частоты кадров у них не равны. GeForce GTX 750 Ti обеспечивает более высокую производительность, которая отражается на графике частоты кадров. Поэтому мы нормализовали метрику для карты на чипе GM107 с помощью показателя производительности GeForce GTX 650. На графике выше она отображена синей линией.
Результаты впечатляют. Похоже, GPU Maxwell обеспечивает на 25% более высокий показатель FPS, чем GPU Kepler в том же ценовом диапазоне, при этом процент использования полосы пропускания памяти ниже на 33%. Иными словами, в тесте Metro: Last Light на каждый кадр видеокарте GeForce GTX 750 Ti требуется вполовину меньше пропускной способности памяти.
Этот факт может иметь далеко идущие последствия для GeForce GTX 980 и 970. Место, занимаемое интерфейсом памяти, можно отдать под SMM, увеличив там, где необходимо, подачу питания, или уменьшить размер кристалла, снизив стоимость производства.
Наш последний график впервые непосредственно показывает, насколько малы требования современных видеокарт к полосе пропускания PCIe (при условии, что показания справедливы, а не “ненадёжны”, как считает Nvidia). PCI Express 2.0 обеспечивает 8 Гбайт/с двунаправленной пропускной способности через слот на 16 линий. Обе карты не потребляют даже 10% этого потенциала. Для работы достаточно 0,8 Гбайт/с. То есть всего 5% от того, сколько доступно одной карте на платформе Haswell.
Выводы о пропускной способности видеопамяти
Наши тесты подтвердили две вещи:
- Пропускная способность видеопамяти не является “узким местом” (по крайней мере, в тесте Metro на картах GeForce GTX 750 Ti/650 Ti).
- Продуманное использование потенциала видеопамяти в архитектуре Maxwell впечатляет – требования к пропускной способности видеопамяти, по сути, снизились вдвое. Это также подтверждают представители Nvidia.
Мы считаем, что огромное снижение требований к пропускной способности памяти имеет значительные последствия, касающиеся архитектуры. Можно согласиться с тем, что пора использовать меньшие по размеру контроллеры видеопамяти, а высвобожденную за счёт этого площадь на кристалле можно будет использовать под дополнительные SMM, что повысит эффективность и производительность Maxwell по сравнению с Kepler.
В будущем мы бы с радостью провели подобные сравнения на картах AMD, если компания внедрит аналогичную функцию в своих драйверах.