Опубликован: 11.10.2012 | Доступ: свободный | Студентов: 307 / 58 | Длительность: 07:36:00
Лекция 5:

Intel® VTune Amplifier XE

Общая характеристика Intel® VTuneTM Amplifier

Intel® VTune Amplifier XE – эксIntel® VTune Performance Analyzer – инструмент динамического анализа приложений.

Многоплатформенный: MS Windows, Linux.

Совместимость с : C/C++, Fortran, .NET, ассемблер.

Интеграция с Microsoft Visual Studio.

Возможность работы в режиме командной строки (CLI).

Поддержка автономного интерфейса.

Входит в состав следующих пакетов:

  • Intel® Parallel Studio XE
  • Intel® Cluster Studio XE

Позволяет выполнять анализ следующего вида:

  • анализ "горячих пятен" ("хотспотов");
  • анализ эффективности реализации многопоточности;
  • анализ блокировок и простоев;
  • анализ статистики по событиям.

Графический интерфейс:

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

Набор заранее сгенерированных профилей анализа.


Сбор статистики:

  • по времени (TBS);
  • по заданному количеству событий (например, по заданному количеству ошибочно предсказанных ветвлений, EBS);
  • привязка к исходному коду или дизассемблирование.

Некоторые проблемы производительности

Использование процессора

Idle – все ядра находятся в состоянии ожидания. Ни один поток не выполняется.

Poor – доля одновременно работающих ядер < 50%.

Ok – доля одновременно работающих ядер от 51% до 85%.

Ideal – доля одновременно работающих ядер > 86%.

Эффективность многопоточного параллелизма

Idle – все потоки находятся в состоянии ожидания. Ни один поток не выполняется.

Poor – низкая эффективность. Доля используемых потоков < 50% от степени параллелизма архитектуры.

Ok – хорошая эффективность. Доля используемых потоков от 51% до 85% от степени параллелизма архитектуры.

Ideal – очень хорошая эффективность. Доля используемых потоков от 86% до 115% от степени параллелизма архитектуры.

Over – избыточная эффективность. Доля используемых потоков > 115% от степени параллелизма архитектуры.

"Горячие пятна"

Hotspot – это фрагмент, в котором программа проводит значительную часть времени.

Hotspots определяются в терминах событий CPU_CLK_UNHALTED.THREAD ("тиков").

2 вида анализа Intel® VTune Amplifier XE:

  1. Hotspots
  2. Lightweight hotspots

Виды анализа Intel® VTuneTM Amplifier XE

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

Промахи кэш-памяти

Промахи увеличивают CPI (Clocks Per Instruction).

Анализ выполняется в режиме General Exploration.

Метрики LLC_Hit, LLC_Miss.

Как уменьшить количество промахов:

  • согласовать размер данных с размером кэша;
  • использовать локальные по отношению к потокам переменные;
  • использовать алгоритм, минимизирующий число обращений к памяти;
  • другие (см. Intel® 64 and IA-32 Architectures Optimization Reference Manual).

Конкуренция по доступу к памяти (write sharing)

Одному ядру нужны данные, модифицированные другим ядром. Инициируется транзакция между кэш-памятью ядра, модифицировавшего данные и ядра, которому эти данные нужны.

"Пинг-понг" увеличивает время выполнения.

False sharing – модифицируются разные фрагменты одного набора данных, находящиеся в одной строке кэш-памяти.

True sharing – модификация одних и тех же данных.

Выравнивание данных

Отсутствие выравнивания увеличивает количество транзакций.

Профиль General Exploration.

Метрика 4K Aliasing.

Что делать:

  • использовать выравнивание данных;
  • использовать "правильные" операции доступа к памяти.

Ошибки предсказания ветвлений

Ошибки предсказания ветвлений ухудшают эффективность, так как инициируются дополнительные выборки инструкций.

Профиль General Exploration.

Метрика Branch Mispredict.

Ошибки предсказания ветвлений есть всегда!

Что делать, чтобы минимизировать число ошибок предсказания ветвлений: использовать при компиляции оптимизацию на основе профилирования.

Процессоры Intel® Core 2-го поколения поддерживают технологии:

  • hyper-threading;
  • turbo boost.

Эти технологии влияют на анализ. Статистика по некоторым событиям собирается по потокам, а по некоторым – по ядрам.

При анализе приложения часто отключают поддержку (BIOS), затем анализ повторяется при включенной поддержке.