я использую PAPI liberary для настройки и профилирования моего приложения.
Я хочу знать, что на самом деле означает (PAPI_REF_CYC: эталонные тактовые циклы)?
Заранее спасибо,
я использую PAPI liberary для настройки и профилирования моего приложения.
Я хочу знать, что на самом деле означает (PAPI_REF_CYC: эталонные тактовые циклы)?
Заранее спасибо,
Некоторые современные процессоры, в том числе процессоры 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 действительно занял больше времени, чем А.
Преобразование тактов опорных часов во время (например, секунды) не так просто, каждый процессор использует разную опорную частоту, даже среди процессоров одной марки.