В предыдущем посте я рассмотрел ситуацию на рынке портативных консолей на Windows и немного сравнил их со Steam Deck (но это не было основной целью).
Сейчас, имея уже некоторый опыт общения со своим GPD Win Max 2, я хотел по поведать о, наверное, самом главном и сложном, что есть в мире этих консолей - о снижении энергопотребления.
Часто в обзорах Steam Deck и других подобных консолей фигурирует понятие TDP - энергопотребление. Оно измеряет в ваттах и означает, какую мощность потребляет устройство.
Это значение коррелирует с емкостью аккумулятор, если измерять ее в Вт-часах. Например, если аккумулятор имеет мощность 60 вт-часов, то при энергопотреблении 15 вт заряда, грубо говоря, хватит на 4 часа.
На самом деле не все так просто, но обо всем по порядку. Я буду объяснять вещи в простых терминах и понятиях, чтобы они были понятны более широкому кругу людей. Мои объяснения каких-то базовых понятий могут быть не совсем верны с точки зрения физики или звучать дилетантски, но для понимая сути это не критично.
Из чего формируется общая потребляемая устройством мощность
Для рассматриваемых устройств в значительной степени она формуется из нагрузки на чип (процессор и видеоадаптер). Однако какую-то часть потребляет экран и прочая периферия. Поэтому время работы не получится вычислить, просто поделив емкость аккумулятора на потребляемую чипом мощность. Реально значение всегда будет меньше, и зависит от яркости экрана и его размера, активности работы WiFi и кучи других вещей.
Ни для кого не секрет, что переведя устройство в режим полета и снизив яркость экрана, можно выиграть немного времени работы, но здесь мы будем говорить о другом - о том, как снизить потребляемую мощность чипа и не потерять в FPS в играх.
Что такое нагрузка на чип
В подобных устройствах процессор имеет интегрированный видеоадаптер. Вдвоем они представляют собой единый чип. При этом операционная система через драйвер управляет этими устройствами отдельно: у процессора (CPU) и видеоадаптера (GPU), собственные ядра со своими частотами.
Частота работы этих ядер и является тем, что формирует нагрузку на чип и определяет потребляемую мощность. Чем выше частоты, тем больше энергии требуется, чтобы их поддерживать.
Повышение частот CPU и GPU ведет к следующим вещам:
Аккумулятор разряжается быстрее из-за роста потребляемой мощности
Устройство сильнее нагревается, заставляя вентиляторы вращаться быстрее, чтобы поддерживать приемлемую температуру. Повышается шум.
В игре повышается FPS - заветное количество кадров в секунду, которое обеспечивает плавность картинки в играх
Как регулируется нагрузка на чип
Какие частоты выставить в тот или иной момент времени решает не само устройство, а драйвер. Когда вы находитесь на рабочем столе, нагрузка на видеоадаптер (GPU) незначительная, поэтому он находится в простое и работает на минимальных частотах. Видеоадаптер вообще задействуется в довольно небольшом спектре задач, поэтому если вы не играете в игру или не майните крипту, скорее всего ваш видеоадаптер сейчас отдыхает (хотя есть и другие задачи, которые могут выполнять силами видеоадаптера, но сейчас опустим это).
Процессор (CPU) же намного более универсальное средство для решения задач. Он начинает напрягаться при запуске программы, распаковке архива, просмотре видео на youtube, установке нового приложения - вообще при любой возможности. В играх, конечно, он тоже играет значительную роль.
В играх процессор отвечает за подготовку кадров для видеокарты. Грубо говоря, CPU готовит макеты кадров, а затем передает их GPU, который уже отрисовывает их и выводит на экран.
Так они эффективно распределяют работу.
И вот мы постепенно подходим к сути. Некоторые игры могут в значительной степени нагружать процессор. Например, когда ему приходится выполнять сложные расчеты физики частиц, разлетающихся после взрыва. Другие наоборот требует совсем незначительных усилий на подготовку кадров. В то же время реалистичная графика с отражениями и сглаживанием требует серьезных усилий от видеокарты, тогда как сама сцена может быть совсем не сложной и не требовать серьезной мощности от процессора.
В большинстве случаев вы столкнетесь со следующим поведением: драйвер на всякий случай выставит высокие частоты для CPU и GPU, чтобы достичь не просто достичь желаемого показателя FPS, но и переплюнуть его процентов на 30-50 сверху. Чтобы уж наверняка. Особенно это любит делать процессор - в любой непонятной ситуации он на всякий случай будет работать на максимальной частоте, если это возможно (приоритет в играх нередко отдается GPU).
Таким образом, вы будете получать избыточную мощность. К чему это приводит:
Аккумулятор устройства разряжается быстрее. А это особенно неприятно, если вы находитесь в пути и хотите поиграть подольше.
Системе охлаждения приходится иметь дело с более высокими температурами, из-за чего устройство сильнее греется и шумит вентиляторами.
Как бороться с избыточной нагрузкой на чип
Здесь я буду говорить конкретно об устройствах на AMD Ryzen 7 6800U, в частности о девайсе GPD Win Max 2. Описанный софт вроде бы работает и для платформ Intel, но я сам этого не проверял.
Существует две утилиты, способные автоматически управлять потребляемой мощностью устройства, так или иначе регулируя частоты CPU и GPU.
AutoTDP
Видеообзор на эту утилиту на английском, так как сам я снимать ничего не умею)
Это консольная утилита, которая является наиболее функциональной. Главный ее недостаток - консольный текстовый интерфейс, совершенно недружелюбный к человеку. С ее помощью можно:
Ограничить максимальную потребляемую мощность устройства
Создать правильную схему питания Windows
Автоматически управлять частотами CPU и GPU в заданном диапазоне(!).
Утилита умеет еще куча всего, но в рамках этого поста рассмотрим только указанные функции.
Зачем ограничивать максимальную мощность?
Это удобно, если мы не хотим случайно слишком быстро разрядить устройство. Например, мы знаем, что нам ехать 2 часа. Ставим ограничитель мощности на условные 20 ватт и теперь мы уверены, что заряда точно хватит.
Зачем нужна схема питания Windows?
Она позволяет вам играться частотами процессора вне своей основной схемы питания. То есть если вы захотите переключиться на стандартные настройки, вам достаточно просто сменить схему питания на стандартную. Это можно сделать в панели управления Windows.
Как происходит управление частотами CPU и GPU?
Утилита позволяет задать верхнюю и нижнюю границы частот CPU и GPU.
Во время работы AutoTDP анализирует показатели от RTSS (RivaTuner Statistics Server) и Hwinfo - это сторонние программы для получения и отображения статистики, которые тоже надо установить для работы AutoTDP.
AutoTDP анализирует текущий FPS, сравнивает его с целевым, и на основе этого снижает или повышает частоты CPU и GPU. Как только значения оказываются оптимальными, утилита уже лишь немного меняет значения, чтобы подстраиваться под сцену в игре.
Такой подход позволяет ЗНАЧИТЕЛЬНО снизить энергопотребление. Иногда речь идет о 50% разницы при том же самом FPS.
Motion Assistant
Обзор этой утилиты на том же канале
Вторая утилита распространяется на сайте GPD. Однако вполне вероятно, что она будет работать и с другими девайсами на 6800U.
Как ни странное, основное назначение утилиты - активировать гироскоп. Но помимо этого она умеет еще много чего.
В целом она делает примерно то же самое, что и AutoTDP, но с некоторыми отличиями. Есть как плюсы, так и минусы.
Motion Assistant имеет какой-никакой, но графический интерфейс.
Она позволяет задать много полезных горячих клавиш для управления многими вещами: яркостью, технологией Turbo Boost, гироскопом, мощностью.
Невозможность гибко управлять частотой процессора. Утилита позволяет только отключить Turbo Boost. Это технология, которая разгоняет процессор в периоды высокой нагрузки. Так без Turbo Boost максимальная частота процессора составляет 2600 Мгц. А с включенной опцией 4700 Мгц - почти в 2 раза больше. При этом разница в энергопотреблении между этими частотами огромна.
В остальном же она делает примерно то же самое. Из-за невозможности управлять частотой CPU в среднем она показывает меньшую эффективность "из коробки", чем AutoTDP. Но есть способ это исправить.
Каким решением в итоге я пользуюсь
Несмотря на гибкость AutoTDP мне было ужасно неудобно возиться с этим консольным приложением. Но мне очень хотелось получить возможность чуть более гибкого изменения частоты процессора. В тяжелых играх типа Elden Ring или Spider Man частоты CPU 2600 совсем немного не хватает для стабильного FPS. А 4700 уже слишком много. И нашел выход.
Я решил использовать Motion Assistant, но с небольшой доработкой напильником.
Как я писал выше, AutoTDP создает собственную схему питания, в которой частоты процессора ограничены. В принципе, ее можно создать и руками в панели управления Windows.
Я отредактировал созданную схему, установив ограничение частоты процессора в 3200 мгц.
И теперь в ход вступает магия костылей:
Motion Assistant регулирует частоту GPU - всегда.
Motion Assistant может отключить Turbo Boost, снижая максимальную частоту процессора до 2600 мгц.
Если включить Turbo Boost, переключившись при этом на созданную нами схему питания, то частота процессора не превысит 3200 мгц.
Если переключиться на стандартную схему питания и включить Turbo Boost, мы получим максимальную частоту в 4700 мгц.
Грубо говоря, мы получаем три режима работы - экономный, сбалансированный и максимальная производительность.
Вся это возня нужна для того, чтобы ваш девайс смог проработать от батареи дольше. И это очень эффективная возня, которой не стоит пренебрегать. Тем не менее, надо понимать, что такие устройства выпускаются скорее для энтузиастов, которым будет не то что тяжело, а даже весело со всем этим возиться.