LINUX.ORG.RU

Экстремальное энергосбережение i3-1215u до уровня n-серии

 , ,


0

1

Перейдя с n150 на i3-1215u стала критична работа аккумулятора - вместо общего потребления в 15 ватт в турбобусте, до которых доходило только под ллмкой, теперь комп может гнать до 30. При одном и том же 35 ватт аккуме в реальном использовании сократило жизнь с 5-6 до 2-3 часов. Учитывая структуру камня - те же 4 e-ядра + 2 p-ядер у которых ещё и по 2 потока - предполагал что их отключение и ограничение тдп сделают своё дело, но нейронка пока отговаривает греша на стабильность системы - предлагает сначала отключить турбобуст, снизить тдп и снизить общую производительность через /sys/devices/system/cpu/intel_pstate/max_perf_pct.

Проделывал указанное - 6 ватт на проц в пик и эмбиент, 20% от общей производительности - и под нагрузкой от ллмки получается 12-13 ватт, вместо 30, что даст те же 2-3 часа но под постоянной нагрузкой а не обычной, скорее всего получится выжать часа 4 чтения. Есть идеи куда копать дальше по экономии энергии?

Перемещено hobbit из general



Последнее исправление: workinglizard (всего исправлений: 1)
Ответ на: комментарий от andytux

Да, уже ограничиваю в /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw или 1_power_limit_uw. Но если ядро вообще не будет задействовано, то задачи перекинуться на энергоэфективные ядра, что мб будет есть ещё меньше. Кстати, не понятно как считается общее потребление и в какой момент включается тот или иной ограничитель. Т.е. если я задам обычное потребление 4вт, но пиковое 6 то он будет переходить градиентом постепенно 6-5-4 или по истечению таймаута автоматом ограничит до 4?

workinglizard
() автор топика
Ответ на: комментарий от Flotsky

qwen2.5-0.5 с промтом, который заставляет её фонтанировать бесконечным потоком, просто в качестве постоянной нагрузки. Именно эта т.к. грузила n150 при минимальном объёме рамы, но видимо 1215u её вывозит лучше т.к. не греет в отсечку.

Спасибо, потыкаю. Вроде даже гуй есть.

workinglizard
() автор топика

В sysfs где то в районе /sys/devices/system/cpu есть файлы online для каждого cpu. Пишешь туда 0 и ядро выпадает из шедулинга. А ещё можно cgroup-ы запинить на конкретные наборы cpu, как и прерывания. Можешь запинить все на е-ядоа и вот тебе что ты хотел.

no-dashi-v2 ★★★★
()
Ответ на: комментарий от no-dashi-v2

И ещё посмотри в sysfs топологию cpu, там видно в каких кластерах живут какие ядра и решить как пинить чтобы тачки собирались на одних и тех же кластерах, а значит другие кластера уйдут в спячку.

В общем пиши мне в телегу @outlingo и там обсудим. У меня есть проект под это дело, надо будет собрать топологию твоего проца и поиграем с профилями.

no-dashi-v2 ★★★★
()

поставил более мощный и жрущий проц и пытаешься его сделать менее жрущим…
мне кажется, это бааальшое извращение или нет ??
выкинь жрущий проц и поставь менее жрущий. вариант бэ жрущий в пределах твоих потребностей, тыжъ систему инженеришь или собираешь из чего под руку попало ??

pfg ★★★★★
()

Есть идеи куда копать дальше по экономии энергии

Это невозможно тупо физически. У тебя в n150 4 энергоэффективных ядра, а в i3-1215u 2 производительных + 4 энергоэффективных ядра. Выкинь свой i3-1215u в окно и вернись к n150

vbcnthfkmnth123 ★★★★★
()

Так Р-ядра не отключить или там реально начинаются проблемы со стабильностью? Если нет, то что ты потеряешь попробовав?

И ещё, буст размеется надо глшить и даже верхние частоты понижать. Потом: по утверждениям некоторых диванных экспертов гиперпоток в современных ядрах не повышает энергоэффективность, а просто накидывает больше скорости по не самому выгодному энерготарифу. Хз, если возможно тоже надо попробовать отключить. Кстати, по другому мнению глушить надо именно Е-ядра, вдрг духпоточное Р-ядро окажется эффективней если ему срезать буст и частоту?

kirill_rrr ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

Ядра же вроде можно отключать. А если не отключать, то как минимум запрещать кидать на них задачи, а современные цпу довольно неплохо засыпают сами. Уж точно лучше чем то что было 10 лет назад.

kirill_rrr ★★★★★
()

Линукс не хочет работать нормально с такими камнями. Тебе нужно обязательно включить EAS - energy aware scheduling, чтобы задачи летели на малые ядра ибо по умолчанию они летят на P-ядра и жрут твою батарею. Но тут беда в том что EAS в принципе не умеет в гипертрединг, а отключение гипертрединга на ядрах которые в нео умеют убивает просыпание из гибернации.

Из второй пакости - все настройки idle оптимизируются под максимум именно производительности, и основная масса патчей последних - не допустить сваливания ядер в глубокие С-states.

В итоге сделал себе нескоько патчей на ядро - насильно включаю CAS (capacity aware scheduling) + EAS (energy aware sceduling) , генерирую искусственную энергетическую модель (Energy model) которая сильно завышает для планировщика ядра использование P-ядер и соответственно обычные легкие задачи врде ненавязчивого броузинга или редактора кода летят на E-ядра.

От вот этого японского товарища

https://github.com/firelzrd

взял bore-scheduler, reflex, poc и nap ( для nap еще надо подтюнить echo 360 >/sys/devices/system/cpu/nap/overshoot_pctl).

Но это все работает только в простое или под легкой нагрузкой. Если же ты гоняешь ллмку, то тут снижение потребления в общем-то мало возможно. Зарезав производительность ты получишь + во времени работы но заодно и увеличишь время необходимое для результата. И если ты постоянно гоняешь ллм - то тут ничего не поможет. Но если ты гоняешь ее периодически понечмногу, а немало времени просто кодишь или читаешь - то все вышеописанное позволит именно в эти моменты батарею подсохранить.

Qui-Gon ★★★★★
()
Ответ на: комментарий от kirill_rrr

Так они и не показывают. У меня ноут с n100, только E ядра. На минимуме яркости насколько я помню без просмотра видео 4-5 часов. С гибридныеми процессорами где еще и P ядра все намного грустнее

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от Qui-Gon

ну это как-то неправильно

Нет, суть не в этом. Современные ноуты стремятся сделать как можно тоньше и легче. То есть процессоры и прочее стали жрать меньше, но для уменьшения веса используют аккамуляторы маленького объема. Например у меня вес ноута 1.45 кг, а объем аккумулятора 5000 мА*ч. С такими аккумуляторами физически не получить много часов.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от Qui-Gon

генерирую искусственную энергетическую модель (Energy model) которая сильно завышает для планировщика ядра использование P-ядер и соответственно обычные легкие задачи врде ненавязчивого броузинга или редактора кода летят на E-ядра.

Как это в принципе может работать? Откуда планировщику знать что фоновая задача а что передний план? Да даже в браузере, как отличить интерфейс вивальди от фоновой вкладки и от рекламного банера?

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

ну как-т справляется. xz в распаковке в однопотоке кидает на P ядро - а вот броузер со всеми своими банерами и не банерами ютятся на E. И тут на самом деле пофиг какая задача фоновая а какая не фоновая - вопрос в затратности процесса. Современые Е-ядра вполне себе приличные и вполне справляются с обычными офисными задачами. Если не играть, н рендерить всякое 3д, не монтировать видео и не компилировать толстые проекты - то P-ядра нафиг не сдались

Qui-Gon ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

и да и нет. У меня ноут 1кг - батарея 60вт-ч. Оно конечно было бы лучше если бы он весил 1.3кг и батарея была бы 99втч(больше 99 нельзя в самолет) - но вот производитель предпочел магическую цифру 1кг для веса ноута. Но с другой стороны 60 вт-ч это примерно тот же объем (даже больше) - который годами ставится в синкпады, не такие уж легкие и тонкие.

так что вес всетаки достигается за счет улучшения технологий, материалов и прочего но не емкости аккумулятора.

Но при этом автономность не ратстет - растет маркетологический 3.14здежь про 12-15-18 часов работы нового прочессора. Но по факут покупаешь этот комп с 18 часами - и он кончается на 6 часах работы, ибо в тестах просмотра локально скачанного видео разрешением 320х200 на нулевой яркости при отключенном вайфае-блютусе они свои маркетологические часы выжимают но вот в реальном юзе как ни настраивай - 6 с трудом. Но уходит оно не столько в вес сколько в увеличенные разрешения экранов, яркие амоледы, более производительные ядра, нейроускорители, гафику для киберпанка и прочее прочее прочее. И по идее это можно было бы скомпенсировать более емким аккумулятором - но вот тут в выборе решения всегда выбирают тонкость и вес.

Правда тут опять на помощь пришел огрызок - и сделал ноуты которые реально живут 12+ часов вместо 6-. Так что интел и амд временно приостановили соревнование у кого больше fps в киберпанке на встройке - а снова озадачились автономностью

Qui-Gon ★★★★★
()
Последнее исправление: Qui-Gon (всего исправлений: 1)
Ответ на: комментарий от Qui-Gon

Но xz надо кидать на Е! А часть вкладок браузера - на Р. Причём главный прикол в том, как угадать какие из них на Е а какие на Р.

Ну или тогда надо вообще всё кидать на Е, а Р-ядра зарезервировать для белого списка игрушек.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Но xz надо кидать на Е!

зачем? Ждать лишние 10 минут пока жирный арзив распакуется-запакуется? Меня более чем устраивает что P ядра занимаются тем для чего они нужны - тяжелых вычислительных задач. А если таких задач нет - то сидят в C10 и не кипятят ноут.

А часть вкладок браузера - на Р.

Зачем? Для броузерных вкладок Е-ядра даже на максимум частоты не выходят, не надо им это. Ну если конечно ты добрый самаритянин и хочешь каким-нибудь упырям в своем броузере крипту помайнить то наверно.

Причём главный прикол в том, как угадать какие из них на Е а какие на Р.

Никакого прикола. Отправили на Е - частота в максимум,утилизация 100% - смигрировали на P.

Qui-Gon ★★★★★
()
Ответ на: комментарий от kirill_rrr

Откуда планировщику знать что фоновая задача а что передний план?

Например сначала кинуть на энергоэффективное ядро. Если поток тарабанит дольше доли секунды - перекинуть на мощное ядро.

Если там, к примеру, код ожидал ответа от сервера, пропарсил его, поменял значение в DOM и выполнил relayout, то весь код выполнится за несколько микросекунд и ради него будить мощное ядро смысла нет. Сработает эта задача за 2 микросекунды или 4 - пользователь разницы не заметит. А если там приехал мегабайтный wasm, который потом ещё 3 секунды компилировать - ну первый квант на E ядре отработает, потом остальное на P ядро уедет. Скомпилирует не за 3 секунды, а за 3.01, условно, опять же пользователь не заметит разницы.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от Qui-Gon

Вообще в принципе любые разпаковки архивов - неопределённо длительные операции, которые один хрен ждать. +/- 100% не играют бльшой роли если архив маленький и особенно если большой - пользователь всё равно займётся чем то другим.

А чтобы «не ждать» можно принудительно включить perfomance-планировщик (или powersave). Но кажется даже такой опции нету.

Для броузерных вкладок Е-ядра даже на максимум частоты не выходят,

Как не выходят, если при одновременном открытии 10 вкладок минимум 22 потока будет загружено на 100%? На странице поисковика если что 10 пунктов, а на странице какого нибудь Озона - вообще дохрена, можно и тредриппер положить.

Причём из всех вкладок и потоков браузера на Р-ядра надо кинуть только поток активной вкладки и интерфейса браузера. Остальные по определению в данный момент не нужны.

Никакого прикола. Отправили на Е - частота в максимум,утилизация 100% - смигрировали на P.

И чем это отличается от дефолтного поведения, в котором задча посто кидается на свододное ядро с наибольшей доступной частотой? По сути политика perfomance на все случаи жизни. А потом «да невозможно эти процессоры заставить не разряжать энергию, проще процессор поменять».

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 2)
Ответ на: комментарий от kirill_rrr

с наибольшей доступной capacity. В EAS каждому ядру присваивается виртуальная «частота» и виртуальная «энергетическая стоимость». И планировщик выбирает ядро у которого выполнение задачи сожрет меньше энергии, ну то есть смотрим скольк виртуальных мгц (которые зависят ее только от фактическая частоты но и от типа ядра - ибо мегагерц на Р ядре пожирнее будеи мегагерца Е) нужно задаче и где этот диапазон доступен раз и дешевле энергетически два.

Пробдема увы в том что точных измерений нкито не проводил, и в базовой модели все настроено по принципу 40-60. То есть если задача требует больше 60% малого ядра - то есть смысл кинуть его на большое. В принципе достаточно сбаллансировано - но если нужно именно энергосбережение по масимуму - то надо повышать грнаницу.

Qui-Gon ★★★★★
()
Ответ на: комментарий от kirill_rrr

Возможно да, но тогда интерактивные задачи при просыпании будут пролагивать на миграции между кластерами.

Это рассуждения времен нищебродства когда производительности процессора было всегда мало. Ну примерно как с едой во времена наших крепостных предков. Тогда еды было всегда мало и старались как-то растянуть последний огурец чтобы не сдохнуть. Сейчас жратвы столько что каждый первый ходит с пузлом как у купца первой гильдии, и задача стоит не растянуть последний огурец а не разожраться так что пузо лопнет и придется сеточку в пупочную грыжу вшивать. С процессорами примерно тоже самое. Для «интерактивных» задач вроде броузера офиса почты мессенджера плеера - Е-ядер за глаза хватает и Р-ядра нафиг не сдались. Нужда в P-ядрах только в игрушках и вычислительных задачах вроде рендеринга или монтажа видео - из чего интерактивные только игрухи и там да, игроманы готовы переплачивать за процы с отключенными Е-ядрами чтобы игрушка вдруг на них не улетела. А в рендеринге - ну из двух часов рендеринга 10 миллисекунд потратится на миграцию с E на P. И что?

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Как раз «интерактивные» задачи разожрались и сейчас это может быть компиляцией мегабайта джаваскрипта с отправкой пачки вызовов на видеокату. Например Е-ядер для интерфейса вин11 категорически недостаточно, ощутимо подтормаживает. И например интелы 2 года не могли понять почему процессоры у них быстрее по всем результатам тестов, а в играх и интерактиве - медленней старых. А у них латентность межядерного взаимодействия просела из за внутренней шины - это оверклокеры показали.

Не, хорошо если можно ограничиться софтом, который и на старых арм не тормозит. Но кто то хочет запускать гном, а кому то электроновые приложения.

А в рендеринге - ну из двух часов рендеринга 10 миллисекунд потратится на миграцию с E на P. И что?

А если там будет 120 миграций в секунду? Сейчас же принято усыплять процессор между кадрами.

kirill_rrr ★★★★★
()

Перейдя с n150 на i3-1215u стала критична работа аккумулятора

Подъезжая к сией станцыи и глядя на природу в окно, у меня слетела шляпа.

Перенёс в Linux-Hardware.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Например Е-ядер для интерфейса вин11 категорически недостаточно

Какие-то у вас древние е-ядра. На 255H никакой интерфейс не подтормаживает при том что P практически всегда отключены. Хотя венду не особо использую - только биос обновить. В онтопике все бодро.

Qui-Gon ★★★★★
()