Войти
ПрограммированиеСтатьиГрафика

Intel Graphics Performance Analyzers (Intel GPA) 2.0.

Автор:

В этой статье мы расскажем о недавно анонсированном новом продукте для профилирования и отладки графических приложений – Intel® Graphics Performance Analyzers (Intel® GPA) 2.0.

Введение
Интегрированная графика Intel
Intel® Graphics Performance Analyzers
  Концепция удаленной отладки
  Intel® GPA System Analyzer
    Основная функциональность Intel® GPA System Analyzer
  Intel® GPA Frame Analyzer
Стратегия оптимизации
  Основные факторы, влияющие на производительность:
Заключение

Введение

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

В этой статье мы расскажем о недавно анонсированном новом продукте для профилирования и отладки графических приложений – Intel® Graphics Performance Analyzers (Intel® GPA) 2.0. Первая версия продукта прошла мимо широкой публики, но использовалась внутри Intel как внутреннее средство разработки.

Интегрированная графика Intel

Intel® GPA предназначен для работы в паре с интегрированными графическими ускорителями Intel® Graphics Media Accelerator X4500 (Intel® GMA X4500), являющимися графическим ядром чипсетов серий G4x и Q4x. Данная серия интегрированной графики Intel, присутствующая на рынке с лета 2008 года, характеризуется полнотой функциональной реализации DirectX 9* и DirectX 10*, а также производительностью, позволяющей конкурировать с бюджетными вариантами дискретных графических карт (quick reference guide to intel integrated graphics). Удачное сочетание производительности, надежности, цены и низкого энергопотребления позволяет Intel® GPA занимать значительную долю не только рынка настольных компьютеров начального и среднего уровня, но и постоянно растущего рынка ноутбуков.

В свою очередь, комбинация хороших показателей проникновения на рынок с неплохими техническими характеристиками делает интегрированные графические ускорители Intel® GMA X4500 привлекательными для разработчиков компьютерных игр и мультимедийных приложений.

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

Intel® Graphics Performance Analyzers

Intel® GPA состоит из набора программных средств, предназначенных для мониторинга производительности и отладки графических программ и компьютерных игр. Текущая 2.0 версия продукта разработана для операционных систем Microsoft Windows XP* и Microsoft Windows Vista* и рассчитана на поддержку программ, написанных с использованием DirectX 9. Данная версия состоит из Инструментального драйвера, программы мониторинга реального времени – Intel® System Analyzer, и программы анализа и отладки перехваченных графических фреймов – Intel® Frame Analyzer. Важно, что Intel® GPA не требует перекомпиляции или какого-либо предварительного инструментирования графического приложения, все необходимые вмешательства делаются на лету в момент запуска.

Концепция удаленной отладки

Все компоненты Intel® GPA построены на основе сетевой удаленной отладки. Это означает, что на целевой машине, где мы планируем запускать наше приложение, также должно присутствовать специальное приложение-агент (Intel® GPA Server). Клиентские приложения Intel® System Analyzer и Intel® Frame Analyzer запускаются на удаленной машине и связываются с сервером по сетевому протоколу TCP/IP (возможна локальная работа на одной машине в режиме TCP/IP loopback).

Преимущества удаленной отладки:

Intel® GPA System Analyzer

Intel® GPA System Analyzer предназначен для мониторинга в реальном времени параметров приложения, использующего DirectX (напомним, что в данный момент поддерживается версия 9).

GPA_System_Analizer_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.

Основная функциональность Intel® GPA System Analyzer

Метрики и графики

Intel® GPA System Analyzer предоставляет разработчику возможность следить за FPS приложения и визуально коррелировать падение FPS c показаниями графиков, отражающих различные параметры DirectX, CPU или GPU. Поддерживаются три уровня детализации (зумирования) графиков. Разработчик может оценить степень зависимости приложения от CPU или GPU, эффективность распараллеливания (баланс загрузки различных CPU ядер), посмотреть, что происходит в вызовах DirectX.

Основные метрики DirectX включают:

DirectX эксперименты реального времени (State Overrides)
Intel® GPA System Analyzer позволяет проводить эксперименты на живом, работающем приложении. В качестве наиболее популярных и показательных экспериментов следует отметить:

Режим паузы
Intel® GPA System Analyzer позволяет останавливать приложение на лету. Используя остановку разработчик может “поймать” нужную сцену или эффект для последующего перехвата интересующего графического фрейма.

Перехват фрейма (Capture)
Intel® GPA System Analyzer позволяет перехватить и записать текущий фрейм для последующего детального анализа в программе Intel® GPA Frame Analyzer. Перехват предусматривает сохранение всех вызовов DirectX и всех используемых приложением графических ресурсов.

В качестве иллюстрации работы Intel® GPA System Analyzer хотелось бы привести несколько скриншотов из игры Demigod* от Stardock Entertainment / Gas Powered Games*

Demigod_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.
Оригинальная Игра

Demigod_Wireframe_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.
Режим Wireframe

mode2x2textures_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.
Режим 2x2 Textures

Intel® GPA Frame Analyzer

Intel® GPA Frame Analyzer является важнейшим инструментом для детального изучения структуры перехваченного фрейма (работа производится с одним кадром).

FA_wireframe_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.

В основе представления информации о фрейме лежит концепция DirectX команд, выполняющих работу на GPU. В Intel® GPA такие команды названы термином Эрг (Erg). Большинство Эргов представляют собой функции рисования (Draw Calls) библиотеки DirectX.

Intel® GPA Frame Analyzer позволяет воспроизвести (проиграть) все Эрги с целью определения их стоимости (длительности) и их вклада в суммарное время фрейма (Frame Time). Эрги отображаются в виде гистограммы, наглядно представляющей продолжительность Эргов, и в виде дерева, в котором элементы фрейма сгруппированы по поверхностям вывода (Render Targets).
Intel® GPA Frame Analyzer делает несколько попыток проиграть фрейм и показывает усредненную длительность Эргов и степень разброса (девиацию) измерений относительно среднего значения.

Разработчик может выделять индивидуальные элементы фрейма. Intel® GPA Frame Analyzer при этом выполняет подсветку выбранных элементов в режимах закраски цветом или подсвеченной геометрии (highlighted wireframe). Таким образом, довольно легко определить какие Эрги отвечают за тот или иной компонент финальной картины.

GPA_Frame_final | Intel Graphics Performance Analyzers (Intel GPA) 2.0.

Для любого выбранного Эрга Intel® GPA Frame Analyzer позволяет инспектировать текстуры и поверхности вывода с указанием частоты использования текстуры.

GPA_Frame_Analizer_640 | Intel Graphics Performance Analyzers (Intel GPA) 2.0.

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

Shader_Access | Intel Graphics Performance Analyzers (Intel GPA) 2.0.

Выбрав указанные Эрги, разработчик может провести над ними эксперименты. Например, можно переключить пиксельный шейдер на простой (Simple Pixel Shader), применить отсечение (1x1 Scissor Rect), выполнить замену текстур (2x2 Textures). Применяя эксперименты вместе или по отдельности, разработчик наблюдает, как изменяется высота Эргов на гистограмме и видит в списке Эргов численную разницу (Duration Delta) в длительности выполнения.

Набор отладочных средств Intel® GPA Frame Analyzer включает просмотр состояний DirectX (Render States), просмотр шейдеров и шейдерных констант, просмотр текстур, лог вызовов DirectX (API Log).

Стратегия оптимизации

Предполагается, что оптимизация приложения должна начаться с рассмотрения общей производительности приложения при помощи Intel® GPA System Analyzer. Первичный анализ сцены с низким FPS должен выявить, чем ограничена производительность приложения – CPU или GPU.
Основными средствами в этом должны стать графики загрузки CPU (CPU Utilization). Очень полезной является метрика высокого уровня “DX Lock Percent Of Frame Time”, которая показывает, какой процент времени фрейма система проводит в блокировках индексных и вершинных буферов (Index Buffer Lock, Vertex Buffer Locks). Большое количество блокировок такого типа часто приводит к недозагрузке GPU.

Далее важнейшим инструментом разработчика являются эксперименты с DirectX конвейером (pipeline). Предполагается следующая тактика применения экспериментов:

Дальнейшая детальная оптимизация графического фрейма включает в себя перехват фрейма (Frame Capture) и анализ с использованием Intel® GPA Frame Analyzer.

Основные факторы, влияющие на производительность:

Скорость заполнения и пиксельные шейдеры (Fill Rate & Pixel Shaders)
Для увеличения скорости заполнения следует сосредоточиться на уменьшении числа обрабатываемых пикселей. Для оптимизации работы следует попытаться:

Вершинные шейдеры (Vertex Shaders)
Для оптимизации работы с геометрией следует попытаться:

Текстуры (Textures)
Для оптимизации работы с текстурами следует попытаться:

Количество вызовов функций отрисовки и смены состояний
(DP Сalls & State Changes)
Большое количество вызовов отрисовки, смены состояний конвейера могут существенно замедлить работу приложения, поэтому следует:

Контроль задержек между графическими функциями (Inter Erg Stalls)
Важным аспектом оптимизации может стать уменьшение времени, которое программа проводит непосредственно между графическими вызовами. Следует контролировать количество изменений состояний DirectX (DirectX State Changes) и время изменения ресурсов (Index/Vertex Buffer Locks). В некоторых случаях GPU может оказаться недозагруженным.
Рассмотрите возможность использования CPU-ориентированных средств оптимизации (Intel® VTune™ Performance Analyzer, Intel® Parallel Studio) для уменьшения времени проводимого игрой на CPU.

Особенности GMA® X4500

Заключение

Выпуск Intel® GPA является знаковым событием для Intel, показывающим серьезность и долгосрочность планов по развитию и совершенствованию своей линейки графических продуктов. В течении достаточно короткого времени компания выпустила продукт, способный конкурировать с аналогичными наборами утилит конкурентов, многие из которых разрабатывались в течении многих лет. И, безусловно, выпуск Intel® GPA – это очень хороший шаг навстречу разработчикам, который даст возможность оптимизировать их графические программы для большого и перспективного сегмента рынка, а также поможет по-новому взглянуть на графические продукты Intel.

Продукт анонсирован на только что закончившейся конференции разработчиков игр GDC 2009 и любой желающий попробовать его в действии может сделать это, бесплатно зарегистрировавшись в программе Intel® Visual Adrenaline на сайте продукта http://www.intel.com/software/gpa/.

Компания Intel надеется, что Intel® GPA поможет вам в создании и оптимизации ваших продуктов и ждет ваших комментариев и отзывов.

Также вы можете получить дополнительную информацию по графическим технологиям Intel или задать свои вопросы напрямую инженерам на страницах Сообщества разработчиков графических приложений Intel® Software Network http://www.intel.ru/software/graphics/ или в блогах http://www.intel.ru/software/blogs/.

Анатолий Кузнецов, Виктория Жислина,
Филипп Герасимов, Intel Corporation.

Copyright © 2009, Intel Corporation. All rights reserved.

Intel® GPA, Intel® Graphics Media Accelerator, Intel® GMA, Intel® GMA X4500 являются зарегистрированными торговыми знаками Intel Corporation в Соединенных Штатах и других странах мира.

* Другие наименования и торговые знаки принадлежат их законным правообладателям.

#GPA, #Intel, #оптимизация, #профайлер

11 апреля 2009 (Обновление: 28 мая 2009)

Комментарии [31]