Счетчик power/energy-cores/
perf
основан на регистре MSR с именем MSR_PP0_ENERGY_STATUS
, который является частью интерфейса Intel RAPL (похоже, Intel называет каждый отдельный RAPL MSR интерфейсом RAPL). Для оценки (статического и динамического) энергопотребления используется сложная модель, основанная на событиях активности системы. В имени регистра MSR есть PP0, который относится к плоскости питания 0, которая является одним из доменов RAPL, который содержит все ядра сокета, включая частные кэши ядер. Однако PP0 исключает кэш последнего уровня, интерконнект, контроллер памяти, графический процессор и все остальное, что находится в неядре. Невозможно измерить точность MSR_PP0_ENERGY_STATUS
, потому что нет другого способа оценить энергопотребление только плоскости мощности 0.
Однако можно измерить точность других доменов RAPL. К ним относятся домены Package, DRAM и PSys. Например, точность оценки энергопотребления домена пакета можно измерить, сравнив с энергопотреблением всей системы (которое можно измерить с помощью измерителя мощности) и запустить рабочую нагрузку, при которой энергопотребление всего, что находится за пределами пакета, известно. по возможности постоянный. Точность MSR_PKG_ENERGY_STATUS
и MSR_DRAM_ENERGY_STATUS
по-разному измерялась разными людьми на разных процессорах. Вы можете обратиться к недавней статье под названием RAPL в действии: опыт использования RAPL для измерения мощности для получения дополнительной информации, которая также включает резюме предыдущих работ. В документе рассматриваются Sandy Bridge, Ivy Bridge, Haswell и Skylake. Вывод состоит в том, что MSR_PKG_ENERGY_STATUS
и MSR_DRAM_ENERGY_STATUS
кажутся точными на Haswell и Skylake (реализация на Haswell изменилась, см.: Обзор функций энергоэффективности процессора Intel Haswell). Но это не обязательно верно для всех видов рабочих нагрузок, состояний P и процессоров. Так что точность зависит не только от микроархитектуры.
Интерфейс RAPL обсуждается в разделе 14.9 руководства Intel, том 3. Я заметил, что в этом разделе есть ошибки. Например, в нем говорится, что клиентские процессоры не поддерживают домен DRAM, что не соответствует действительности. Клиентский процессор Haswell, который я использую для написания этого ответа, поддерживает домен DRAM. Раздел, вероятно, устарел и относится только к процессорам Sandy Bridge и Ivy Bridge. Я думаю, что лучше прочитать даташит процессора, на котором вы хотите использовать RAPL.
Счетчик power/energy-pkg/
perf
можно использовать для измерения энергопотребления домена пакета. Известно, что это единственный домен, поддерживаемый всеми процессорами Intel, начиная с Sandy Bridge.
person
Hadi Brais
schedule
02.05.2019