Счетчик производительности оборудования на Intel Core Duo

Я читал, что есть процессоры AMD, которые позволяют измерять количество попаданий и пропаданий в кеше. Мне интересно, доступна ли такая функция на машинах Intel Core Duo или они еще не поддерживают эту функцию.

4 ответа

Да, со времен древнего Pentium Pro существует множество аппаратных счетчиков производительности.

Опрофиль и perf в Linux Vtune в Linux/Windows может использовать Shark в MacOSX.

Все счетчики перечислены в документации по архитектуре Intel (том 3B, глава 30; список в приложении A): http://www.intel.com/products/processor/manuals/

Даже у Atom есть несколько регистров производительности.

Один из хороших списков для разных процессоров находится здесь http://oprofile.sourceforge.net/docs/

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

Этот документ, безусловно, предполагает, что процессоры Intel Core Duo могут предоставить необходимую информацию. Я думаю, что поиск по сайту Intel тоже был бы полезен.

Я лично использую счетчик меток времени через обертку сборки, которая выполняет инструкцию rdtsc. Затем я получаю 64-разрядное целое число без знака, содержащее число внутренних тактовых циклов, прошедших с момента включения процессора. Разница между двумя считываниями заключается в количестве циклов кода, необходимых для выполнения части кода между ними. Доступ к инструкциям для считывания попаданий в кэш может быть реализован таким же образом.

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

Согласно Microsoft, инструкция rdtsc может быть неточной, если на процессоре включена функция понижающего регулирования (для снижения энергопотребления), о которой следует помнить (или отключать!).

Другие вопросы по тегам