Frame Capture Analysis Tool (FCAT) – новый метод оценки производительности
реклама
Оглавление
- Вступление
- Программные методы
- Насущные проблемы
- FCAT – как это работает
- FCAT – аппаратная часть
- FCAT – программная часть
- Оценка результатов
Вступление
Что такое производительность видеокарты компьютера? Под этим значением можно понимать совокупность расчета графических данных, выведенных на монитор. Но в таком случае обязательно нужно учитывать все составляющие цепочки. А она, несмотря на свою кажущуюся понятность, не настолько проста. Посмотрим на то, как образуется исходный кадр, и какие операции над ним производятся.
Для начала возьмем типичный графический ускоритель, в недрах которого происходят все операции. После проделанной работы на порт видеовыхода поступает цифровой сигнал, который в дальнейшем отображается монитором. На этом этапе возникает основная проблема восприятия точки отсчета измерения производительности. Хотя бы потому, что видеокарта и дисплеи работают с разной скоростью вывода кадров (за исключением режимов работы с вертикальной синхронизацией).
реклама
Видеокарте в принципе без разницы, какой тип отображения к ней подключен, будь то проектор или высокоскоростная матрица. Она будет выдавать максимальное число кадров в зависимости от нагрузки. Но в данном случае подавляющее число мониторов будет не в состоянии отобразить кадры, которые выходят за пределы физических возможностей матрицы (все те, что выше 60 FPS). Устройство вывода всегда работает на фиксированной частоте, отрисовывая каждый кадр за 16 мс (60 кадров в секунду), отсюда и возникают проблемы с синхронизацией двух разных частот.
Процесс вывода и расчета картинки зарождается в игровом движке.
Сначала он тратит некоторое количество времени на внутренние расчеты. Затем игровой движок передает данные о кадре в графический API (например, DirectX). Чаще всего программы используют этот интервал для оценки производительности графической подсистемы. На следующем этапе происходит передача данных от графического API к драйверу, а тот обрабатывает вызовы и отправляет их в сторону видеоядра. На двух последних стадиях GPU визуализирует кадр и передает эти данные на последний этап. Это этап отрисовки кадра и передачи его на дисплей.
Пора познакомиться с вопросами измерения производительности графической составляющей ПК поближе.
Программные методы
Распространенная программа FRAPS на самом деле не настолько корректна по сравнению с аппаратными решениями. Проблема кроется не в самой утилите, а в принципе ее работы. Она оценивает производительность, исходя из выходящих из игрового движка в виде команд графического API данных (отрисованных в кадровом буфере видеокарты). С другой стороны, раз коэффициент погрешности у программы постоянен, то и результаты можно считать корректными относительно друг друга.
реклама
Но чтобы понять и точно определить производительность видеокарты, необходим другой способ оценки – более верный. А точным может стать только одно решение, которое будет корректно измерять количество отрисованных кадров на выходе из видеокарты.
Аппаратно-программный комплекс Frame Capture Analysis Tool (FCAT) изначально задумывался как очень точный и визуально наглядный инструмент для оценки производительности, поскольку он замеряет частоту кадров в секунду, именно выводящуюся на дисплей, а не отрисованную в кадровом буфере. В его случае для захвата реально показанных на экране кадров используется аппаратная плата видеозахвата.
Насущные проблемы
Проблема №1
Правильность измерения производительности. Как вы уже поняли, существует несколько точек, из которых можно изъять нужные данные, но далеко не все они будут верными. То, как делает это программа FRAPS – наиболее простой и популярный, но не совсем правильный метод. Она, кстати, может дать вполне конкретные данные о времени построения кадра.
С этими данными можно работать и проводить относительное сравнение. Но говорить об объективности в таком случае невозможно. Правда, стоит отметить возможность получения информации о построении кадра с использованием двух и более видеокарт.
Проблема №2
Неравномерность вывода кадров особенно заметна на таких конфигурациях. Ведь не секрет, что многие пользователи вопреки хорошим результатам жалуются на некомфортное восприятие игрового процесса. Мультиграфические связки зачастую выдают больше 60 кадров в секунду, но при их неравномерной отрисовке, если один кадр будет рисоваться 8 мс, а следующий — 45 мс, ощущение рывков сильно обостряется.
Утилита FRAPS стала первопроходцем в проблеме «дерганых» кадров, но и ее результаты лишь отдаленно описывали ситуацию. Сам процесс с большой разницей вывода кадров на монитор приобрел свое собственное название – «microstutter», и прочно закрепился за парными видеокартами. На борьбу были отправлены лучшие умы программистов, но ничего большего, чем простое выравнивание времени отрисовки путем снижения общей производительности до сих пор не изобретено.
В таком случае можно говорить о том, что пара видеокарт уже не обеспечивает линейный рост скорости, а эффективность находится на отметке 30-40%, что не особенно радует потенциальных покупателей.
Проблема №3
Даже правильное использование FRAPS невозможно без определения границ измерения частоты кадров в секунду. Несмотря на мгновенную реакцию, вы не сможете не ошибиться на моменте, когда нужно включить сбор данных.
FCAT – как это работает
FCAT – это аппаратно-программный комплекс, суть которого сводится к измерению производительности, видимой нашими глазами на мониторе.
реклама
Компания NVIDIA на протяжении уже нескольких лет использует FCAT в своих лабораториях для анализа, улучшения производительности и выявления проблемных мест, особенно в случае SLI-систем из двух и более графических процессоров. Утилита FCAT позиционируется как исключительно точный инструмент, способный полностью заменить программные методы измерения 3D-производительности.
За это стоит поблагодарить разработчиков, потому что реальные данные в промежутке между видеовыходом и монитором – это совсем не те «призрачные данные», что дают нам сторонние утилиты, способные измерить количество лишь тех кадров, которые сгенерированы игровыми движками, но не тех, которые реально были выведены на экран.
FCAT – аппаратная часть
Аппаратная часть FCAT достаточно проста – это производительная карта захвата изображения. С ее помощью можно получить почти всю графическую информацию, что поступает с видеовыхода. Сама плата и есть ключевое звено всей системы FCAT.
Она подключается ко второму компьютеру, с которого осуществляется захват кадров. В качестве игровой платформы может использоваться обычный тестовый стенд с любой видеокартой (естественно, оснащенной разъемом 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 – программная часть
Суть работы всего метода тестирования – это захват текущего видеопотока и наложение отдельных цветных полосок. Изображение передается в несжатом виде, а полоски накладываются в левой части кадра в режиме «оверлея».
Они-то и отмечают границы полностью, либо частично отрисованных кадров. Другая программа анализирует эти кадры и определяет время, а соответственно и частоту кадров, а также не полностью выведенные (либо вообще не отрисованные) кадры. В последующем вся информация переводится либо в графический вид, либо в таблицы.
Главное отличие FCAP от FRAPS – это место захвата и подсчета кадров. FCAP получает выводимые на монитор данные, в то время как FRAPS делает анализ числа кадров в промежутке между командами расчета данных GPU и вызовом функций Direct3D из игрового движка. Таким образом, перед нами снова хоть и систематические, но не совсем нужные результаты (частоты кадров, отданных на отрисовку видеодрайверу). В реальности FRAPS может давать совершенно некорректные цифры производительности.
В идеальном виде для плавной смены изображений в игре они должны показываться с одной частотой (к примеру, эту проблему частично решает включение VSync), но в действительности при отключенной технологии VSync такое практически невозможно, и кадры появляются на экране монитора за разное время. Как следствие, возникают так называемые отброшенные кадры и неполноценные кадры (кадры со слишком малой длительностью).
Для выявления проблемных мест алгоритм FCAT добавляет слева в кадр цветную полоску, где каждый посланный видеокартой кадр получил свой цвет, и определенную, заранее спланированную последовательность цветов.
Появление отброшенных кадров на экране чаще всего проявляется в системах с несколькими GPU, когда кадр попросту не был выведен на экран. Такие моменты хорошо знакомы пользователям, но не всегда видны невооруженным глазом. Да и при правильной настройке игровых опций, когда среднее число отрисованных кадров не опускается ниже 30-40 к/с, они практически незаметны. Но как только дело доходит до тяжелых режимов, то отброшенные кадры разрывают последовательный ряд изображений и сильно раздражают.
К тому же иногда после пропавшего кадра сцена меняется и производительность видеосистемы сильно снижается, при этом возникают ощутимые задержки в игровом процессе.
Разорванные кадры, как и пропущенные, часто являются визитной карточкой систем с парой видеокарт. Они появляются, когда один из графических процессоров отрисовывает кадр, занимающий лишь несколько миллисекунд.
Это означает, что кадр отображался на экране слишком малое время и на практике не заметен на глаз.
Причин на то достаточно много, но с наиболее весомой я вас познакомлю. В процессе создания кадра движком игры происходит резкая смена сцены, а данные уже обрабатываются игрой, в таком случае кадр просто отсеивается внутренним алгоритмом. Та часть данных, что уже обработана, поступает на порт DVI и выводится на сверхмалое количество времени. В реальности, неполноценные кадры видны как значительные разрывы изображения, легко видимые невооруженным взглядом при паузе, но почти незаметные при движении, так как длительность такого кадра слишком коротка, чтобы человеческий глаз и мозг успели его воспринять.
Подобные явления невозможно отследить программным методом, поэтому FRAPS никогда не узнает и не покажет их вам. В его вселенной все те кадры, что обработаны движком игры и API, являются отрисованными и подлежат подсчету. В целом FRAPS дает нам данные с завышенной производительностью и не умеет анализировать важную составляющую игрового процесса – качество картинки.
Пакет FCAT, наоборот, очень строг и внимателен. С его помощью можно оценить количество неполноценных и разорванных кадров.
Оценка результатов
После выполнения всех этапов тестирования в распоряжение исследователя попадает массив обработанных данных. Наиболее интересными будут графики с наглядной демонстрацией того, что происходило на мониторе, пока вы играли.
Всего FCAT предоставляет три графика.
- Первый показывает время построения кадров в захваченном и проанализированном видеоряде.
- Второй показывает равномерность частоты кадров в секунду — минимальную частоту кадров в соответствующую долю (выраженную в процентах) времени в течение всего тестового видеоролика. Чем ближе основная линия к параллели с горизонтальной осью, тем плавнее смена кадров.
- Третий наиболее востребованный график демонстрирует результаты качественного и количественного анализа.
Черной полосой показывается число кадров, по мнению сторонних утилит, берущих данные из неправильного промежутка рендеринга картинки. Синяя полоса показывает настоящую производительность с учетом отброшенных кадров. Рыжие области закраски говорят нам об объеме недорисованных кадров, а красные области – пропущенные кадры.
Продолжение – FCAT – опробуем новый метод оценки производительности на практике.
Выражаем благодарность:
- Компании NVIDIA за помощь в подготовке материала.
реклама
Страницы материала
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила