Некоторые аспекты энергосбережения Intel Core i* and Windows (страница 3)
реклама
Производительность операций с дисковой системой
При работе в Windows часто используются файловые операции. Переместить, что-то найти и прочее – обычные действия. Для измерения производительности можно использовать какие-либо программы, но большинство из них работают в потоковом режиме с множеством оптимизаций по скорости (различные виды многопотокового доступа и упреждения), что может представить «синтетические» результаты. Это не слишком удачно, лучше взять нечто обычное, скажем файловый менеджер. Почему именно FAR? Это не важно, можно выбрать и что-то другое, либо выполнять операции «проводником», как вам будет удобнее. Сам FAR интересен тем, что он развивается длительное время и претерпел сильное развитие, в том числе и по работе с дисками. Для выполнения тестирования я уже возьму очень старую версию 1.71, в которой явно отсутствуют какие-либо оптимизации по работе с диском (впрочем, может я и ошибаюсь), да и размер блока доступа явно 'неудобен' для современных операционных систем, всего лишь 64 Кб. Как альтернатива берется FAR одной из последних сборок (версия 3.0). В данном тесте интересно то, что программа делает одно и то же, но с разной степенью оптимизации по работе с дисковой системой. Можно сказать, что этот тест симулирует «неоптимизированный» (FAR 1.71) и «оптимизированный?»(FAR 3.0) режим доступа к дискам.
Для проверки быстродействия будет использоваться две ситуации:
- Копирование каталога «Windows 7» (46200 файлов, 6.4 Гб) в nul. В действительности, будет просто выполняться считывание файлов без их записи;
- Поиск в каталоге «Windows 7» файлов по маске «*.*» с 'длинной непонятной' строкой. Совпадений не было.
Во время выполнения операций осуществлялась полная (100%) загрузка одного ядра процессора. Что интересно, в режиме поиска средний блок доступа оказался 31 Кбайт.
RAID0 SSD
(или специального режима) |
в FAR 1.71, сек |
в FAR 3.0, сек |
в FAR 3.0, сек |
Экономия энергии |
|
|
|
Сбалансированный |
|
|
|
Высокая производительность |
|
|
|
Экспериментальный |
|
|
|
(Отключение режима простоя) |
|
|
|
реклама
HDD WD1500HLFS-01G6U (150 Гбайт, 10000 об/мин), AHCI, раздел в начале диска.
(или специального режима) |
в FAR 1.71, сек |
в FAR 3.0, сек |
в FAR 3.0, сек |
Экономия энергии |
|
|
|
Сбалансированный |
|
|
|
Высокая производительность |
|
|
|
Экспериментальный |
|
|
|
(Отключение режима простоя) |
|
|
|
HDD WD15EADS-00P8B0 (1.5 Тбайт, 5400 об/мин), AHCI.
(или специального режима) |
в FAR 1.71, сек |
в FAR 3.0, сек |
в FAR 3.0, сек |
Экономия энергии |
|
|
|
Сбалансированный |
|
|
|
Высокая производительность |
|
|
|
Экспериментальный |
|
|
|
(Отключение режима простоя) |
|
|
|
Тест на RAMDISK не проводится - операции выполняются довольно длительное время, а устройство «RAMDISK» не имеет времени ожидания, что означает обязательный перевод процессора в состояние максимальной производительности и равенство результатов для всех планов электропитания. Говоря «всех» я не имел в виду план «Экономия энергии», он всегда 'отличается' от остальных.
Наблюдения:
- Во всех случаях план «Экспериментальный» (как и «Отключение режима простоя») имеет наибольшую производительность;
- «Сбалансированный» и «Высокая производительность» оказывают близкие характеристики, но не максимальные - обратите внимание на время поиска для HDD WD1500HLFS;
- «Экономия энергии» ведет себя 'традиционно' (снижение производительности в 1.5-2.5 раза), особенно это хорошо видно по времени поиска.
Хочу обратить ваше внимание, что данный тест выполнялся длительное время, а потому полученные результаты соответствуют установившимся значениям и нечто похожее следует ожидать от работы любых других программ.
Производительность и мощность потребления ядер процессора
реклама
В простое потребление процессора по ядрам одинаково для всех планов (2.3 Вт), кроме специального режима с отключенным простоем (43 Вт; 4.2 ГГц, 1.2 В).
Если померить потребление ядер для случая крайне низкой, низкой и существенной нагрузки, то получатся следующие цифры:
(или специального режима) |
|
|
|
|
|
Экономия энергии |
|
|
|
|
|
Сбалансированный |
|
|
|
|
|
Высокая производительность |
|
|
|
|
|
Экспериментальный |
|
|
|
|
|
(Отключение режима простоя) |
|
|
|
|
|
Под «MPC» понимался просмотр фильма в формате Xvid (624x352 23.98fps) плеером «Media Player Classic - Homecinema» версии 1.2.908.0
Довольно любопытно выглядит план «Экспериментальный» - он умудряется экономить мощность потребления даже при серьезной нагрузке, причем без потери производительности. Причина понятна, если учесть его отличие от других планов - блокировку переопределения ядра исполнения. Эта настройка позволяет отключать неиспользуемые ядра. Типичная картинка загрузки по ядрам (Linpack AVX x86, матрица 10.000) выглядит следующим образом:
Поток выполняется на ядре №1, изредка переключаясь на ядро №0. Остальные ядра остановлены. Если включить переопределение ядра исполнения, то загрузка равномерно распределяется по ядрам и ни одно из них не останавливается. Смотрится это совершенно некрасиво:
Теперь перейдем к высокой нагрузке с различным количеством потоков. Для этого хорошо взять Linpack AVX x86 с большим размером матрицы. Почему «х86», если операционная система «х64» и можно запустить более эффективную редакцию Linpack «х64»? Да, Linpack «х64» показывает выше скорость работы по преобразованию матриц, только нам интересен нагрев процессора, а тут лидерство у редакции Linpack «х86».
Размер матрицы выбран 10.000, что не является максимальным значением под «х86», но увеличение с 10.000 на 15.000 крайне незначительно увеличивает мощность потребления процессора, при этом весьма затягивая процесс тестирования.
Производительность Linpack AVX x86 для объема матрицы 10.000 и различного количества потоков:
(или специального режима) |
мощность, Вт |
скорость, ГФлопс |
мощность, Вт |
|
Экономия энергии |
|
|
|
|
Сбалансированный |
|
|
|
|
Высокая производительность |
|
|
|
|
Экспериментальный |
|
|
|
|
(Отключение режима простоя) |
|
|
|
|
Из всех планов выделяется «Экспериментальный», он показывает удивительно низкое потребление при однопоточной нагрузке. Разгадку можно наблюдать в соседнем столбце этого же теста - здесь падает как мощность потребления, так и производительность. Т.е. при однопоточной нагрузке этот план электропитания всегда выполняется на самой низкой частоте процессора. Вот и разгадка его "экономичности".
Если посмотреть загрузку ядер при выполнении теста производительности дисковых операций на RAID0 SSD при долговременной нагрузке:
реклама
Для плана «Экономия энергии» один поток выполняется всегда на минимальном множителе, о чем явно говорит снижение синей линии - частоты процессора. Кроме того, из данного графика отчетливо видна причина снижения производительности для первого плана - загрузка всего процессора составила 25%, что означает полную занятость одного исполнительного потока. Коль скоро тест является однопоточным приложением, то это означает, что были израсходованы все резервы процессора и сама программа просто не смогла работать с максимальной эффективностью. Всё же «RAID0 SSD» означает скорость работы порядка 900 Мб/с, и это очень много. Не так уж недавно такую пропускную способность имела системная память компьютера! К слову, это сравнение показывает отсутствие смысла в дальнейшем повышении производительности дисковой системы - процессор с трудом справляется и с двумя не самыми быстрыми SSD. Обратите внимание на время выполнения операций в FAR, приведенные ранее - HDD проиграл SSD не так уж и сильно.
Тестовый план, в качестве которого выполнялся «Экспериментальный» имеет схожие характеристики с «Высокая производительность», но по численным данным потребление в нём было все же чуть меньше, из-за парковки ядер. График мелковат, поэтому приходится отмечать в тексте.
Простой: снижение производительности, почему?
По всем рассмотренным ранее тестам план «Отключение режима простоя» показывал максимальную производительность, но почему остальные (нормальные) планы так от него отстают? По идее, выход из «С1» (простоя) в «С0» (активное состояние) должен происходить практически мгновенно. На включение тактирования требуется буквально «несколько тиков». К слову, перевод ядра в режим простоя не сказывается на производительности - раз ядро останавливают, то это означает, что оно не нужно системе, а потому затраты времени на перевод в простой не важно. Впрочем, переключение C0->C1 выполняется очень быстро.
Возьмем небольшую «импульсную» нагрузку и посмотрим, на какой частоте выполняется это приложение. Тест диска все же «синтетика», лучше взять что-то более реальное, например просмотр фильма. Скажем, тот же MPC с фильмом, что использовался ранее. При просмотре загрузка одного ядра находится в интервале 9-15 процентов.
Для измерения средней частоты я использовал программу «C&QCPU», но примерно такие же (но не 'эти') значения показывают другие программы, снимающие частоту процессора по данным счетчика производительности.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При проведении теста устанавливался множитель процессора, от минимального (16) до максимального (42). При этом измерялся «усредненный» множитель выполняемой программы. В колонке «Измерено» указаны данные при двух значениях «Slew Rate»: «Fast» и «Slow».
До множителя «28» измеренные значения среднего значения множителя почти совпадает с устанавливаемым значением, а вот в дальнейшем рост множителя замедляется. При «Slew Rate» = «Fast» 'эффективное' значение множителя поднимается только до 32.5 (при установленном 42), а для «Slew Rate» = «Slow» вообще останавливается на «28». Причина?
Дело в том, что в BIOS по умолчанию разрешено состояние «C1E», поэтому ядра в простое снижают напряжение (и частоту). Это уменьшает потребление процессора, но цену этого вы видите перед собой. При «просыпании» процессор должен повысить напряжение до номинального, только тогда можно будет восстановить номинальную производительность, на что требуется время. Почему же цифры «замораживаются» на множителе «28»? Если напряжение/частоту надо повышать, то вполне очевидно увидеть равномерный ряд цифр от 16 до 42, а здесь четкое «28». Взглянем на соответствие множителя и напряжения процессора:
От множителя 16 до 29 происходит медленное и незначительное повышение напряжения, которое, скорее всего, вызвано работой схемы компенсации выходного сопротивления источника питания (Load Line Calibration). От 29 до 38 напряжение линейно повышается, почти пропорционально частоте. Выше множителя 38 напряжение практически не возрастает и ее увеличение, скорее всего, вызвано теми же причинами, что и на интервале 16-29 (LLC).
Итак, что же происходит при выходе процессора из «C1E»? Контроллер начинает повышать напряжение, но интервал от 16 до 29 он проходит очень быстро, может быть и 'мгновенно', а потому множитель «29» устанавливается практически сразу. Увы, далее начинается медленный процесс повышения напряжения, причем в режиме «Slew Rate» = «Slow» он идет в четыре раза медленнее, чем в «Fast». Время, необходимое на установку номинального множителя можно посчитать исходя из разности напряжений и скорости «Slew Rate» (для «Fast» это 10 мВ/мкс, «Slow» = 2.5 мВ/мкс). При вычислении надо учитывать выходное сопротивление источника питания и емкость сглаживающих конденсаторов, потому точные цифры представить весьма затруднительно. Загрузка процессора при просмотре фильма в MPC составляет 10 % (приведенная к ядру), т.е. задача выполнялась лишь 10% от кванта времени выполнения, что оказывается недостаточным для выставления сколь-нибудь значимой величины напряжения.
Если отключить в BIOS состояние «C1E», то измеренный множитель будет практически совпадать с устанавливаемым («41.6» к «42»), что подтверждает предложенную гипотезу о причине сниженного множителя.
Не совсем по теме, но просто интересно - при снятии зависимости множитель-напряжение я посмотрел и мощность потребления для различной нагрузки:
реклама
Страницы материала
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила