Программа Intel® Graphics Media Accelerator Profiler версии 2.1

Создать новую статью

04.02.2009 12:00


Введение
Программа Intel® Graphics Media Accelerator Profiler V2.1 (IGMAP) представляет собой инструмент профилирования производительности графического оборудования, обладающий возможностью автономного наблюдения в режиме реального времени за оборудованием Intel® 900 Series Integrated Graphics. В настоящее время он работает в 32-разрядной и 64-разрядной архитектурах. Этот инструмент также обеспечивает полную интеграцию с Microsoft PerfMon*, PIX* (с выборкой кадра и времени) и анализатором производительности Intel® VTune™. IGMAP обладает возможностью наблюдения за приложениями Direct3D и OpenGL, работающими на базе интегрированных графических решений серии Intel® 900. Эта программа доступна для всех зарегистрированных пользователей служб Intel® для разработчиков.

Основная функция IGMAP — помогать разработчикам находить «узкие места» производительности и устранять проблемные зоны в графических решениях серии Intel® 900. Эти функции инструмент выполняет с помощью выявления недостатков архитектуры и проблемных областей кода приложений, выполняемых из подменю конфигурации. Он дает рекомендации по исправлению кода в разделе справки в качестве возможных решений.

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


Использование Intel® Graphics Media Accelerator Profiler
IGMAP взаимодействует с архитектурой микросхем материнской платы Intel 900 Series Integrated Graphics, с помощью этого интерфейса можно собирать следующие статистические данные, которые обычно недоступны.

  • Количество полигонов, поступающих в аппаратный накопитель1 за секунду и кадр.
  • Количество полигонов, поступающих в рендерер за секунду и кадр.
  • Общее количество пикселов, обрабатываемых за секунду и кадр
  • Пиксельная нагрузка шейдера за секунду и кадр
Для того чтобы понять смысл значения «Количество полигонов, поступающих в аппаратный накопитель (PEHB)», нужно сначала понять, как полигоны накапливаются в графическом ядре. Полигоны, изображенные в виде большого треугольника в верхнем левом углу на диаграмме внизу, сначала отправляются в аппаратный накопитель, который отвечает за их накопление. Процедура биннинга заключается в выяснении того, какая из ранее определенных зон экрана охватывается каждым из полигонов, и в размещении образца каждого из них в соответствующий BPL, если полигон охватывает несколько областей экрана, он помещается в BPL каждого из этих регионов. Как показано на рис. 1, первый BPL соответствует верхней левой области экрана, а последний BPL соответствует нижней правой области экрана. Каждый полигон помещается в соответствующий BPL, а дополнительные полигоны просто направляются в конец списка соответствующих полигонов. PEHB — это просто подсчет количества полигонов, отправленных в рендерер.

Рис. 1. Общий конвейер 900 Series Integrated Graphics.
Точно так же, для того чтобы понять смысл значения «Количество полигонов, поступающих в рендерер (PER)», нужно сначала понять, как полигоны обрабатываются графическим ядром. После того как все полигоны были уложены, BPL отправляется в рендерер, который выполняет процедуру обработки и выводит результаты на экран. Процедура обработки состоит из определения того, какой полигон будет располагаться над другими полигонами в одной и той же области экрана. PER — это счет количества полигонов, отправленных для ввода в рендерер.

В диалоговом окне общего количества обработанных пикселов отображается количество пикселов, которое обработало интегрированное графическое оборудование серии 900 Series Integrated Graphics Hardware со времени последнего обновления. Следует помнить, что в действительности не все обработанные пикселы отображаются на экране.

Интегрированное графическое оборудование серии Intel 900 поддерживает Pixel Shader 2.0; Pixel Shader — это небольшая программа, которая загружается графической программой, используемой для обработки пискселов в Graphics Accelerator. Pixel Shaders позволяет использовать технологии анимации (Matrix Palette Skinning) и рельефного текстурирования (Bump Reflection Mapping). Значение счетчика Pixel Shader увеличивается каждый раз, когда загружается первая инструкция новой программы пиксельного шейдера.

Чтобы дополнить данные об оборудовании, наблюдение за которыми ведется в наборе микросхем Intel 900 Series Integrated Graphics, IGMAP также захватывает и ведет наблюдение за следующими счетчиками драйвера (программы).

  • Находится ли программа в аппаратной зоне рендеринга2.
  • Общее количество сбросов (Total Clears) и соотношение быстрых и общих сбросов.
  • Количество Z-Evicts.
  • Количество смещений средней сложности глубины сцены (MSF) и причины их возникновения
  • Общий объем памяти для видео/текстур.
  • Количество кадров в секунду (FPS).
  • Ориентация буфера кадров
Аппаратная зона рендеринга использует систему обработки на основе разбиения на куски, предназначенную для уменьшения загрузки полосы пропускания памяти и максимальное увеличение производительности обработки. Это является основным фактором оптимизации производительности графического ядра серии Intel 900. Когда индикатор светится зеленым или экранный текст Zone Rendering в накладываемом изображении зеленого цвета, это значит, что выполняется аппаратная зона рендеринга и графическое ядро работает в оптимальном состоянии рендеринга. Когда индикатор красный, это значить, что ядро перешло на классический рендеринг, и могут возникать проблемы кода, которые необходимо решить (см. справку по Profiler для выяснения потенциальных ограничений производительности аппаратной зоны рендеринга или руководство для разработчиков по программному обеспечению 915G/GM).

Инструмент IGMAP тщательно отслеживает количество Z-Evictions и сбросов (например, Stencil и Z), сделанных на графическом оборудовании намеренно или непреднамеренно. Он также отслеживает смещения конвейера, сделанные в середине сцены, которые могут неблагоприятно повлиять на производительность любого рендерера на базе тайлинга, и их причины:

  • 3D Dependent Operation — MSF вызывается операцией, выполняемой над ресурсом, который в настоящее время зависит от 3D-команд (например, BLT или Lock в активной трехмерной текстуре).
  • Out Of Memory — MSF запускается состоянием нехватки памяти (например, текстуры, буферы общей точки пучка кривых, буферы команд).
  • Set Render Target — MSF запускается заменой текущего объекта рендеринга.
  • Set Depth Buffer — MSF запускается заменой текущего буфера глубины.
  • Internal — MSF запускается каким-то внутренним или нетипичным событием.
В идеальных условиях все эти значения должны быть равны нулю; однако очень часто приходится использовать функцию или вызов, которые становятся причиной одного из перечисленных выше событий. Самый лучший путь оптимизации кода — сделать так, чтобы эти события не происходили в тех случаях, когда они не нужны, и ограничить по мере возможности количество запланированных событий такого рода.

Помимо индикатора Frames per Second (Кадров в секунду), Profiler также указывает степень использования памяти для видеоданных и текстур. И, наконец, статистика Orientation отражает текущую ориентацию буфера кадров, иногда поворот буфера кадров является намеренным, однако когда он не является намеренным, лучше всего вернуть его в исходное положение, потому что режимы в повороте работают медленнее.

Рис. 2. Графический интерфейс пользователя Intel® Graphics Media Accelerator Profiler
Приведенная выше статистика может отображаться в верхнем левом углу экрана (см. рис. 4), а также может быть открыта в формате электронной таблицы Microsoft Excel*3.

Графический интерфейс пользователя показывает примеры данных, полученных при установленном временном интервале в одну секунду, которые не ограничивают производительность системы. Для получения примеров с учетом кадров рекомендуется использовать вместе с Profiler инструмент Microsoft PIX.

Рис. 3. Интерфейс настройки конфигурации Intel® Graphics Media Accelerator Profiler
Если инструмент IGMAP установлен на компьютер пользователя, он также может с помощью Intel® VTune™отслеживать все перечисленный выше переменные вплоть до строки кода, в которой они произошли. Достаточно просто запустить анализатор VTune и найти счетчики IGMAP в разделе мастера наблюдения счетчиков. Как говорилось выше, Profiler также интегрируется с Microsoft PIX и Microsoft PerfMon. Этот инструмент позволяет выполнять наблюдение за производительностью на основе кадров, помимо сэмплинга на базе временных параметров.

Profiler поддерживает любые компьютеры серии Intel 900 (с Integrated Graphics), а также компьютеры, на которых установлены последние графические драйверы Intel®, которые можно загрузить для установки по адресу http://support.intel.com/support/graphics/intel915g.

1 HW Binner — ключевой компонент оборудования для устройства рендеринга Intel® на базе тайлинга.
2 Примечание. Выход за пределы аппаратной зоны рендеринга — один из основных факторов ограничения производительности оборудования Intel® 900 Series Integrated Graphics.
3 Примечание. Текущая версия позволяет записывать только примеры на базе временных данных (но не кадров).
4 Изображение получено из демо-версии Unreal Tournament 2004. Unreal Tournament является собственностью корпорации Epic Games.

Выводы
Программа Intel Graphics Media Accelerator Profiler — это мощное средство, помогающее разработчикам находить «узкие места» оборудования 900 Series Integrated Graphics. Его предназначение — обеспечить способ анализа, который был недоступен при настройке, выполняемой для графического оборудования серии Intel 900.

Этот инструмент предоставляется бесплатно для всех зарегистрированных пользователей служб Intel для разработчиков.


Об авторе
Г-н. Десильва – управляющий по разработке программного обеспечения группы программного обеспечения и решений корпорации Intel. Он и его команда отвечают за оптимизацию производительности современных потребительских программных приложений, работающих на настольных системах Intel. До этого Чак работал разработчиком драйверов в корпорации Intel. Он занимался разработкой и развертыванием первых драйверов устройств для USB, AGP (GART) и первых графических устройств Intel (i740/810(e)).


Дополнительные ресурсы