PAPI: что означают опорные циклы часов?

я использую PAPI liberary для настройки и профилирования моего приложения.

Я хочу знать, что на самом деле означает (PAPI_REF_CYC: эталонные тактовые циклы)?

Заранее спасибо,


person abdul    schedule 11.04.2017    source источник


Ответы (1)


Некоторые современные процессоры, в том числе процессоры Intel и AMD, регулируются.
Это означает, что их часы не фиксированы, а варьируются в зависимости от активного управления питанием - даже если фирменная частота ЦП составляет X ГГц, чаще всего он не работает на этой частоте.

Несколько реальных примеров технологии см. в технологии Intel Turbo Boost/ядро AMD Turbo и Технология Intel Enhanced Speedstep/Технология AMD Quiet'n'Cool .

Поскольку тактовая частота ядра может замедляться или ускоряться, сравнение двух разных показателей не имеет смысла.
Наличие фрагмента A для работы на 100 тактовых частотах ядра и фрагмента B в 200 ядерных тактах означает, что B в целом медленнее (требует удвоения работы), но не обязательно, что B занял больше времени, чем A, поскольку единицы измерения разные. Вот тут-то и вступают в игру эталонные часы — они унифицированы.
Если фрагмент A выполняется за 100 тактовых импульсов, а фрагмент B — за 200 тактовых импульсов, тогда B действительно занял больше времени, чем А.

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

person Margaret Bloom    schedule 12.04.2017
comment
Определение правильное, но, возможно, пример сравнения может быть противоположным: то есть, что вы должны сравнивать реальные циклы, а не референсные циклы (которые на самом деле просто непрерывные настенные часы). Если фрагмент кода выполняется за 100 реальных циклов и 100 циклов обращения, а другой вырезанный код выполняется за 200 реальных циклов и 100 циклов обращения (поскольку средняя частота процессора удвоилась по сравнению с первым случаем), то они выполняют то же самое или второй занимает вдвое больше времени (удобно отменяется, работая на частоте в 2 раза больше)? Правильная интерпретация зависит от того, ограничен ли процессор или L3/память. - person BeeOnRope; 14.04.2017
comment
В частности, для многих бенчмарков, где вы не можете или не хотите полностью контролировать частоту, очень удобно сообщать о реальных циклах, которые часто гораздо лучше и стабильнее коррелируют с реальной производительностью при наличии частотного масштабирования. - person BeeOnRope; 14.04.2017
comment
@BeeOnRope Хороший вопрос! Я полностью повернул часы наоборот! - person Margaret Bloom; 15.04.2017
comment
Но, в свою очередь, если часть программы работает медленно из-за того, что она ограничена чем-то другим, кроме производительности процессора, то было бы полезнее подсчитать ref-циклы, чтобы заметить, что код работает медленно внутри этой конкретной программы. функция. Я думаю, что это просто выборка времени настенных часов для выявления медленных частей кода. Верно? - person Peter; 29.10.2019
comment
@Peter Да, ref-cycles лучше, например, для профилирования приложения, ограниченного сетью. Использование настенных часов даст вам единое время. - person Margaret Bloom; 29.10.2019