Не так давно мы опубликовали нашу новую методику измерения энергопотребления с использованием внешнего измерительного блока, однако она имеет одно существенное ограничение. Дело в том, что используемый нами измерительный блок жестко привязан к разъемам питания на материнской плате и должен подключаться к 24-контактному (ATX) и 8-контактному (EPS12V) разъемам питания на материнской плате и к аналогичным разъемам блока питания. Это позволяет использовать данный измерительный блок при тестировании процессоров и материнских плат, но если речь заходит о тестировании ноутбуков, моноблоков и неттопов, то использование данной методики не представляется возможным.
Поэтому специально для тех случаев, когда использование внешнего измерительного блока невозможно, мы сделали отдельный программный плагин, позволяющий контролировать мощность потребления процессора, его температуру и уровень загрузки.
Как и в случае с внешним измерительным блоком, речь идет о плагине к нашему бенчмарку iXBT Application Benchmark 2016. Напомним, что данный бенчмарк включает в себя 17 отдельных тестов на основе реальных приложений и позволяет оценивать производительность системы в различных сценариях использования путем замера времени выполнения тестовых задач и сопоставления этого времени со временем выполнения этих задач на референсной системе.

Принцип мониторинга мощности, температуры и загрузки процессора
Идея, положенная в основу работы нашего программного плагина заключается в следующем. На тестируемом компьютере в фоновом режиме запускается специализированная программа мониторинга, которая способна контролировать требуемые параметры системы. Такая программа мониторинга через определенные интервалы времени опрашивает датчики и контроллеры на материнской плате, что позволяет в режиме реального времени отслеживать огромное количество различных параметров. Конечно, нет необходимости отслеживать все параметры, в нашем случае мы ограничились только тремя: мощность, потребляемая процессором, его температура и уровень загрузки.
Далее, синхронно с началом выполнения тестовой задачи, программа мониторинга начинает собирать требуемые данные, а синхронно с моментом окончания выполнения тестового задания все собранные данные записываются в файл, который впоследствии обрабатывается программой бенчмарка.
Вопрос лишь в том, какую именно программу мониторинга использовать.
Первоначально мы остановили свой выбор на программе Open Hardware Monitor, интегрировав ее в наш бенчмарк. Эта программа умеет записывать log-файлы и подходит по всем параметрам, однако впоследствии нам пришлось от нее отказаться. Дело в том, что последнее обновление этой программы датировано 2014 годом, новых процессоров Skylake программа не понимает и не способна определять нужные нам параметры. Последний процессор, который знает эта программа — Broadwell.
В итоге мы остановились на программе HWiNFO64, которая регулярно обновляется и знает все процессоры. Кроме того, она позволяет отключать мониторинг тех датчиков, которые не нужны, поддерживает назначение горячей клавиши для старта и останова сбора данных, записывает данные в CSV-файл, а также позволяет задавать интервал времени опроса датчиков.
Для интеграции данной программы с нашим бенчмарком мы использовали портативную версию программы, не требующую инсталляции на компьютер. Однако данная программа нуждается в предварительной настройке для корректной работы с нашим бенчмарком.
Во-первых, нужно отключить мониторинг тех параметров, которые не используются, оставив, в итоге, только три параметра: мощность, потребляемую процессором (CPU Package Power), температуру процессора (CPU Package) и загрузку процессора (Total CPU Usage).

Во-вторых, необходимо задать интервал опроса датчиков (Scan Interval) и назначить горячую клавишу (Hot Key) для начала и окончания сбора данных.

В-третьих, необходимо задать параметры запуска программы, отключив приветственное окно, минимизировав основное окно и оставив на рабочем столе только окно сенсоров (Show Sensors on Startup). В противном случае, как показала практика, горячая клавиша может срабатывать, а может и не срабатывать.

Как уже отмечалось, данные, сохраняемые программой HWiNFO64 в CSV-файле, далее анализируются бенчмарком iXBT Application Benchmark 2016. Рассчитывается средняя за время выполнения тестовой задачи мощность, потребляемая процессором, а также средний уровень его загрузки. Расчет средней за время теста температуры мы сочли бессмысленным, поэтому определяется максимальная достигнутая температура. Именно эти три параметра и записываются вместе со временем выполнения тестовой задачи в качестве результата каждого теста.
Представление результатов тестирования
Аналогично тому, как это делается в бенчмарке iXBT Application Benchmark 2016, при дополнительном мониторинге мощности, температуры и загрузки процессора для каждого теста рассчитывается среднеарифметический результат по указанным дополнительным параметрам и погрешность измерения для доверительного интервала 0,95. Результаты измерения записываются в соответствии с общепринятыми правилами записи результатов с погрешностью.
Преимущества и недостатки методики
К несомненным преимуществам данной методики можно отнести то обстоятельство, что для ее реализации не требуется никакого дополнительного оборудования. Решение исключительно программное и может использоваться при тестировании любых систем (в отличие от специализированного измерительного блока).
Тем не менее, есть и обратная сторона медали. Во-первых, запуск дополнительной программы мониторинга в фоновом режиме может, теоретически, негативно отразиться на результатах тестирования. Для того чтобы минимизировать влияние фоновой программы мониторинга на результаты тестирования, мы отключаем мониторинг всех ненужных датчиков. Как показывает практика (об этом чуть далее), во всяком случае для производительных процессоров, запуск программы мониторинга не отражается на результатах тестирования.
Во-вторых, системы и процессоры бывают разные, и датчики, соответственно, тоже. Вполне вероятна ситуация, что для каких-то процессоров данная методика окажется неработоспособной по причине того, что программа HWiNFO64 просто не сможет отслеживать требуемые параметры. На сегодняшний момент мы проверили работоспособность программы на процессорах Intel семейств Sandy Bridge, Haswell и Skylake. Но не факт, что все будет работать как нужно с процессорами Intel Atom или процессорами AMD.
В-третьих, датчики, интегрированные на плате и в процессоре, все-таки не являются специализированными измерительными блоками. Их показания могут, мягко говоря, отклоняться от действительных. К примеру, известная программа AIDA64 (в ней используется опрос тех же самых датчиков, что и в программе HWiNFO64) иногда выдает полную лажу (когда температура процессора оказывается даже ниже комнатной температуры).
Пример результатов тестирования
В заключение продемонстрируем пример результата тестирования с мониторингом мощности, температуры и загрузки процессора. Кроме того, сравним результаты тестирования с программным мониторингом и результаты тестирования с измерением потребляемой мощности при помощи внешнего измерительного блока.
Стенд для тестирования имел следующую конфигурацию:
Процессор | Intel Core i7-6700K |
Материнская плата | Asus Sabertooth Z170 S |
Чипсет | Intel Z170 |
Оперативная память | 16 ГБ DDR4-2133 (2 канала) |
Накопитель | SSD Seagate ST480FN0021 (480 ГБ) |
Операционная система | Windows 10 (64-битная) |
Процессор работал в штатном режиме (без разгона) с активированной технологией Turbo Boost. Результаты тестирования с программным мониторингом мощности, температуры и загрузки процессора представлены в таблице.
Логическая группа тестов | Результат тестирования, секунды | Мощность процессора, Вт | Максимальная температура, °C | Уровень загрузки, % |
Работа с видеоконтентом, баллы | 334±6 | |||
MediaCoder x64 0.8.36.5757 | 113,0±0,5 | 88,6±0,2 | 92±3 | 95,1±0,3 |
SVPmark 3.0.3b, баллы | 3330±50 | 64±4 | 87±5 | 64±5 |
Adobe Premiere Pro CC 2015.0.1 | 291,1±0,7 | 77±4 | 94±5 | 95,4±0,6 |
Adobe After Effects CC 2015.0.1 | 464±3 | 37,3±0,3 | 77±3 | 30,4±0,5 |
Photodex ProShow Producer 7.0.3257 | 391±5 | 54,3±0,3 | 82±4 | 42,4±0,3 |
Обработка цифровых фотографий, баллы | 305±2 | |||
Adobe Photoshop CC 2015.0.1 | 630±10 | 51,4±0,8 | 80±2 | 56,0±0,4 |
Adobe Photoshop Lightroom 6.1.1 | 316±2 | 71,83±0,03 | 86±2 | 93,3±0,4 |
PhaseOne Capture One Pro 8.2 | 368±3 | 39±4 | 68±5 | 46±5 |
ACDSee Pro 8.2.287 | 205±8 | 39,2±0,7 | 72,0±0,5 | 40±1 |
Векторная графика, баллы | 182,7±0,3 | |||
Adobe Illustrator CC 2015.0.1 | 350,3±0,7 | 25,0±0,2 | 68±3 | 13,05±0,06 |
Аудиообработка, баллы | 290±3 | |||
Adobe Audition CC 2015.0 | 358±10 | 45±11 | 73±3 | 39±3 |
Распознавание текста, баллы | 385±2 | |||
Abbyy FineReader 12 Professional | 147±3 | 62±2 | 85±2 | 71±2 |
Архивирование и разархивирование данных, баллы | 244±7 | |||
WinRAR 5.21 архивирование | 103±2 | 53,4±0,9 | 70±2 | 78,4±0,7 |
WinRAR 5.21 разархивирование | 6,8±0,4 | |||
Файловые операции, баллы | 171±6 | |||
Скорость инсталляции приложений | 333±3 | 21,21±0,07 | 61±3 | 11,05±0,09 |
Копирование данных | 70±2 | 15±1 | 55±2 | 11,3±0,7 |
UltraISO Premium Edition 9.6.2.3059 | 28±1 | 7,3±0,5 | 49±7 | 7,5±0,9 |
Научные расчеты, баллы | 289±7 | |||
Dassault SolidWorks 2016 SP0 с пакетом Flow Simulation | 247±5 | 61,6±0,3 | 79±2 | 91,1±0,7 |
Интегральный результат производительности, баллы | 266±6 |
Далее рассмотрим результаты тестирования с аппаратным измерением потребляемой мощности:
Логическая группа тестов | Результат тестирования, секунды | Общая мощность, Вт | Мощность процессора, Вт |
Работа с видеоконтентом, баллы | 334±6 | ||
MediaCoder x64 0.8.36.5757 | 114±2 | 108±2 | 89±2 |
SVPmark 3.0.3b, баллы | 3300±300 | 83±5 | 64±5 |
Adobe Premiere Pro CC 2015.0.1 | 291±2 | 93±2 | 73,8±0,4 |
Adobe After Effects CC 2015.0.1 | 464±4 | 48,4±0,3 | 32,6±0,3 |
Photodex ProShow Producer 7.0.3257 | 394±2 | 68,7±0,3 | 52,0±0,3 |
Обработка цифровых фотографий, баллы | 305±2 | ||
Adobe Photoshop CC 2015.0.1 | 627±4 | 67,63±0,09 | 49,90±0,06 |
Adobe Photoshop Lightroom 6.1.1 | 319,4±0,4 | 91,3±0,5 | 70,0±0,4 |
PhaseOne Capture One Pro 8.2 | 373±5 | 59±2 | 43±2 |
ACDSee Pro 8.2.287 | 207±2 | 54,6±0,4 | 38,3±0,4 |
Векторная графика, баллы | 182,7±0,3 | ||
Adobe Illustrator CC 2015.0.1 | 356,7±0,7 | 39,19±0,08 | 24,40±0,09 |
Аудиообработка, баллы | 290±3 | ||
Adobe Audition CC 2015.0 | 360±3 | 61,73±0,07 | 46,10±0,08 |
Распознавание текста, баллы | 385±2 | ||
Abbyy FineReader 12 Professional | 150,1±0,4 | 77,5±0,3 | 60,0±0,3 |
Архивирование и разархивирование данных, баллы | 244±7 | ||
WinRAR 5.21 архивирование | 104,2±0,3 | 69,57±0,08 | 51,77±0,07 |
WinRAR 5.21 разархивирование | 6,8±0,4 | ||
Файловые операции, баллы | 171±6 | ||
Скорость инсталляции приложений | 333,2±0,7 | 35,3±0,4 | 20,6±0,3 |
Копирование данных | 70±2 | 29,9±0,4 | 14,7±0,4 |
UltraISO Premium Edition 9.6.2.3059 | 27±3 | 22±2 | 7±2 |
Научные расчеты, баллы | 289±7 | ||
Dassault SolidWorks 2016 SP0 с пакетом Flow Simulation | 247±6 | 78,3±0,4 | 60,6±0,3 |
Интегральный результат производительности, баллы | 266±6 |
Сравнивая приведенные результаты, можно сделать следующие важные выводы.
Во-первых, результаты самих тестов в режиме аппаратного измерения и в режиме программного мониторинга практически не отличаются (разница в пределах погрешности). Таким образом, работа фоновой программы мониторинга практически не отражается на результатах тестирования.

Во-вторых, мощность процессора, измеряемая с помощью внешнего блока и определяемая с использованием программы мониторинга, мало отличаются друг от друга. Интересно, что мощность процессора, определяемая программой мониторинга, оказывается во всех тестах немного выше. Это немного странно: должно быть с точностью до наоборот. Напомним, что при измерении мощности с использованием внешнего блока учитывается не только мощность, потребляемая процессором, но и мощность, рассеиваемая на регуляторе напряжения питания (это мощность, передаваемая по шине 12 В разъема EPS12V). Таким образом, измеряемая мощность процессора должна быть немного больше, чем реальная мощность, потребляемая чисто процессором.
Тем не менее, нужно констатировать, что результаты измерения и мониторинга мощности неплохо коррелируют друг с другом.

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

Анализируя результаты по температуре и уровню загрузки процессора, можно заметить, что в некоторых тестах примерно одинаковая температура достигается при различном уровне загрузки процессора. Это справедливо, например, для тестов Adobe After Effects CC 2015, Photodex ProShow Producer и Adobe Photoshop CC 2015. Между тем, в таких результатах нет ничего удивительного. Во-первых, речь идет о максимальной температуре, а не о средней, а во-вторых, даже при одном и том же уровне загрузки процессора его температура может различаться. К примеру, можно загрузить процессор вычислениями с плавающей запятой, и он будет сильно нагреваться, а можно загрузить его целочисленными операциями, которые в меньшей степени нагревают процессор при выполнении.
Заключение
Подводя итог, еще раз подчеркнем, что данная методика ориентирована на определение мощности потребления процессоров при тестировании ноутбуков, моноблоков, неттопов и других законченных решений, когда использование внешнего измерительного блока невозможно. Основная задача данной методики заключается в том, чтобы измерить именно потребляемую процессором мощность, а такие параметры, как средняя загрузка и максимальная температура процессора, вторичны (что называется, идут в комплекте). Тем не менее, возможно, эти данные будут востребованы при анализе производительности.