Frame Capture Analysis Tool (FCAT) – новый метод оценки производительности

Оглавление

Вступление

Что такое производительность видеокарты компьютера? Под этим значением можно понимать совокупность расчета графических данных, выведенных на монитор. Но в таком случае обязательно нужно учитывать все составляющие цепочки. А она, несмотря на свою кажущуюся понятность, не настолько проста. Посмотрим на то, как образуется исходный кадр, и какие операции над ним производятся.

500x332  35 KB

Для начала возьмем типичный графический ускоритель, в недрах которого происходят все операции. После проделанной работы на порт видеовыхода поступает цифровой сигнал, который в дальнейшем отображается монитором. На этом этапе возникает основная проблема восприятия точки отсчета измерения производительности. Хотя бы потому, что видеокарта и дисплеи работают с разной скоростью вывода кадров (за исключением режимов работы с вертикальной синхронизацией).

Видеокарте в принципе без разницы, какой тип отображения к ней подключен, будь то проектор или высокоскоростная матрица. Она будет выдавать максимальное число кадров в зависимости от нагрузки. Но в данном случае подавляющее число мониторов будет не в состоянии отобразить кадры, которые выходят за пределы физических возможностей матрицы (все те, что выше 60 FPS). Устройство вывода всегда работает на фиксированной частоте, отрисовывая каждый кадр за 16 мс (60 кадров в секунду), отсюда и возникают проблемы с синхронизацией двух разных частот.

500x150  18 KB

Процесс вывода и расчета картинки зарождается в игровом движке.





500x144  18 KB

Сначала он тратит некоторое количество времени на внутренние расчеты. Затем игровой движок передает данные о кадре в графический API (например, DirectX). Чаще всего программы используют этот интервал для оценки производительности графической подсистемы. На следующем этапе происходит передача данных от графического API к драйверу, а тот обрабатывает вызовы и отправляет их в сторону видеоядра. На двух последних стадиях GPU визуализирует кадр и передает эти данные на последний этап. Это этап отрисовки кадра и передачи его на дисплей.

Пора познакомиться с вопросами измерения производительности графической составляющей ПК поближе.

Программные методы

Распространенная программа FRAPS на самом деле не настолько корректна по сравнению с аппаратными решениями. Проблема кроется не в самой утилите, а в принципе ее работы. Она оценивает производительность, исходя из выходящих из игрового движка в виде команд графического API данных (отрисованных в кадровом буфере видеокарты). С другой стороны, раз коэффициент погрешности у программы постоянен, то и результаты можно считать корректными относительно друг друга.

Но чтобы понять и точно определить производительность видеокарты, необходим другой способ оценки – более верный. А точным может стать только одно решение, которое будет корректно измерять количество отрисованных кадров на выходе из видеокарты.

Аппаратно-программный комплекс Frame Capture Analysis Tool (FCAT) изначально задумывался как очень точный и визуально наглядный инструмент для оценки производительности, поскольку он замеряет частоту кадров в секунду, именно выводящуюся на дисплей, а не отрисованную в кадровом буфере. В его случае для захвата реально показанных на экране кадров используется аппаратная плата видеозахвата.

Насущные проблемы

Проблема №1

Правильность измерения производительности. Как вы уже поняли, существует несколько точек, из которых можно изъять нужные данные, но далеко не все они будут верными. То, как делает это программа FRAPS – наиболее простой и популярный, но не совсем правильный метод. Она, кстати, может дать вполне конкретные данные о времени построения кадра.





С этими данными можно работать и проводить относительное сравнение. Но говорить об объективности в таком случае невозможно. Правда, стоит отметить возможность получения информации о построении кадра с использованием двух и более видеокарт.

Проблема №2

Неравномерность вывода кадров особенно заметна на таких конфигурациях. Ведь не секрет, что многие пользователи вопреки хорошим результатам жалуются на некомфортное восприятие игрового процесса. Мультиграфические связки зачастую выдают больше 60 кадров в секунду, но при их неравномерной отрисовке, если один кадр будет рисоваться 8 мс, а следующий — 45 мс, ощущение рывков сильно обостряется.

Утилита FRAPS стала первопроходцем в проблеме «дерганых» кадров, но и ее результаты лишь отдаленно описывали ситуацию. Сам процесс с большой разницей вывода кадров на монитор приобрел свое собственное название – «microstutter», и прочно закрепился за парными видеокартами. На борьбу были отправлены лучшие умы программистов, но ничего большего, чем простое выравнивание времени отрисовки путем снижения общей производительности до сих пор не изобретено.

В таком случае можно говорить о том, что пара видеокарт уже не обеспечивает линейный рост скорости, а эффективность находится на отметке 30-40%, что не особенно радует потенциальных покупателей.

Проблема №3

Даже правильное использование FRAPS невозможно без определения границ измерения частоты кадров в секунду. Несмотря на мгновенную реакцию, вы не сможете не ошибиться на моменте, когда нужно включить сбор данных.

FCAT – как это работает

500x351  30 KB

FCAT – это аппаратно-программный комплекс, суть которого сводится к измерению производительности, видимой нашими глазами на мониторе.





Компания NVIDIA на протяжении уже нескольких лет использует FCAT в своих лабораториях для анализа, улучшения производительности и выявления проблемных мест, особенно в случае SLI-систем из двух и более графических процессоров. Утилита FCAT позиционируется как исключительно точный инструмент, способный полностью заменить программные методы измерения 3D-производительности.

За это стоит поблагодарить разработчиков, потому что реальные данные в промежутке между видеовыходом и монитором – это совсем не те «призрачные данные», что дают нам сторонние утилиты, способные измерить количество лишь тех кадров, которые сгенерированы игровыми движками, но не тех, которые реально были выведены на экран.

FCAT – аппаратная часть

500x273  29 KB

Аппаратная часть FCAT достаточно проста – это производительная карта захвата изображения. С ее помощью можно получить почти всю графическую информацию, что поступает с видеовыхода. Сама плата и есть ключевое звено всей системы FCAT.

500x342  38 KB

Она подключается ко второму компьютеру, с которого осуществляется захват кадров. В качестве игровой платформы может использоваться обычный тестовый стенд с любой видеокартой (естественно, оснащенной разъемом DVI). Карта захвата DataPath VisionDVI-DL считывает кадры, поступающие с порта DVI на частоте в 60 кадров в секунду. В теории ее пропускной способности (PCI-e 16x) хватит, чтобы обеспечить работу в разрешениях от 1920?1080 пикселей до 2560?1440.

Но высокие разрешения вроде 2560?1600 и 5760?1600 требуют очень большую пропускную способность, массу свободного места на накопителях и высокую скорость линейной записи, что делает затею тестирования практически нереализуемой. К сожалению, даже отдельный SSD, установленный в соседний PCI-e слот, корректно не заработал.

К системе захвата есть несколько особенных требований:

  • Свободный PCI-Express x16 слот;
  • Массив дисков, способных на лету записывать большое количество информации.

Видеопоток, генерируемый игрой в Full HD разрешении, доходит до 250-300 Мбайт/с. Если вы пытаетесь записать информацию в разрешении 2560?1440, то придется задуматься о трех и более SSD емкостью не менее 256 Гбайт в Raid 0. Причем речь пока идет лишь о 60 Гц, когда каждую секунду передается не более 60 к/с. Если мы возьмем для примера современные мониторы 120 Гц, то цифры надо умножить на два. В таком случае для захватывающей системы потребуется отдельный контроллер и связка SSD.





Кроме высокой скорости записи SSD, понадобятся приличные объемы на накопителях для обработки видео. Как пример – одна минута видеоданных в распространенном Full HD формате занимает не менее 14 Гбайт. Так что воспользоваться стандартной практикой тестирования попросту нельзя. Придется обрабатывать данные после теста каждой игры на каждой видеокарте.

Последнее устройство FCAT – это DVI-разветвитель. Ничего специфичного в нем нет, обычный активный DVI разветвитель, к которому с одной стороны подключается видеокарта, а на выходе получаем пару одинаковых картинок. В качестве разветвителя NVIDIA предлагает Gefen DVI DL Splitter, содержащий три DVI разъема: один входной и два выходных. Он позволяет вывести данные, полученные по одному Dual Link DVI, на два разъема одновременно.

FCAT – программная часть

500x254  31 KB

Суть работы всего метода тестирования – это захват текущего видеопотока и наложение отдельных цветных полосок. Изображение передается в несжатом виде, а полоски накладываются в левой части кадра в режиме «оверлея».

133x500  18 KB

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

Главное отличие FCAP от FRAPS – это место захвата и подсчета кадров. FCAP получает выводимые на монитор данные, в то время как FRAPS делает анализ числа кадров в промежутке между командами расчета данных GPU и вызовом функций Direct3D из игрового движка. Таким образом, перед нами снова хоть и систематические, но не совсем нужные результаты (частоты кадров, отданных на отрисовку видеодрайверу). В реальности FRAPS может давать совершенно некорректные цифры производительности.

500x262  38 KB

В идеальном виде для плавной смены изображений в игре они должны показываться с одной частотой (к примеру, эту проблему частично решает включение VSync), но в действительности при отключенной технологии VSync такое практически невозможно, и кадры появляются на экране монитора за разное время. Как следствие, возникают так называемые отброшенные кадры и неполноценные кадры (кадры со слишком малой длительностью).

Для выявления проблемных мест алгоритм FCAT добавляет слева в кадр цветную полоску, где каждый посланный видеокартой кадр получил свой цвет, и определенную, заранее спланированную последовательность цветов.

500x250  34 KB

Появление отброшенных кадров на экране чаще всего проявляется в системах с несколькими GPU, когда кадр попросту не был выведен на экран. Такие моменты хорошо знакомы пользователям, но не всегда видны невооруженным глазом. Да и при правильной настройке игровых опций, когда среднее число отрисованных кадров не опускается ниже 30-40 к/с, они практически незаметны. Но как только дело доходит до тяжелых режимов, то отброшенные кадры разрывают последовательный ряд изображений и сильно раздражают.

К тому же иногда после пропавшего кадра сцена меняется и производительность видеосистемы сильно снижается, при этом возникают ощутимые задержки в игровом процессе.

500x259  35 KB

Разорванные кадры, как и пропущенные, часто являются визитной карточкой систем с парой видеокарт. Они появляются, когда один из графических процессоров отрисовывает кадр, занимающий лишь несколько миллисекунд.

500x282  17 KB

Это означает, что кадр отображался на экране слишком малое время и на практике не заметен на глаз.

Причин на то достаточно много, но с наиболее весомой я вас познакомлю. В процессе создания кадра движком игры происходит резкая смена сцены, а данные уже обрабатываются игрой, в таком случае кадр просто отсеивается внутренним алгоритмом. Та часть данных, что уже обработана, поступает на порт DVI и выводится на сверхмалое количество времени. В реальности, неполноценные кадры видны как значительные разрывы изображения, легко видимые невооруженным взглядом при паузе, но почти незаметные при движении, так как длительность такого кадра слишком коротка, чтобы человеческий глаз и мозг успели его воспринять.

Подобные явления невозможно отследить программным методом, поэтому FRAPS никогда не узнает и не покажет их вам. В его вселенной все те кадры, что обработаны движком игры и API, являются отрисованными и подлежат подсчету. В целом FRAPS дает нам данные с завышенной производительностью и не умеет анализировать важную составляющую игрового процесса – качество картинки.

Пакет FCAT, наоборот, очень строг и внимателен. С его помощью можно оценить количество неполноценных и разорванных кадров.

Оценка результатов

После выполнения всех этапов тестирования в распоряжение исследователя попадает массив обработанных данных. Наиболее интересными будут графики с наглядной демонстрацией того, что происходило на мониторе, пока вы играли.

Всего FCAT предоставляет три графика.

  • Первый показывает время построения кадров в захваченном и проанализированном видеоряде.
  • Второй показывает равномерность частоты кадров в секунду — минимальную частоту кадров в соответствующую долю (выраженную в процентах) времени в течение всего тестового видеоролика. Чем ближе основная линия к параллели с горизонтальной осью, тем плавнее смена кадров.
  • Третий наиболее востребованный график демонстрирует результаты качественного и количественного анализа.

500x245  25 KB

Черной полосой показывается число кадров, по мнению сторонних утилит, берущих данные из неправильного промежутка рендеринга картинки. Синяя полоса показывает настоящую производительность с учетом отброшенных кадров. Рыжие области закраски говорят нам об объеме недорисованных кадров, а красные области – пропущенные кадры.

Продолжение – FCAT – опробуем новый метод оценки производительности на практике.

Выражаем благодарность:

  • Компании NVIDIA за помощь в подготовке материала.
Страницы материала
  • Вступление, программные методы, насущные проблемы, FCAT: как это работает, аппаратная часть, программная часть, оценка результатов
Страница 1 из 1
Оценитe материал

Комментарии 177 Правила

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают