ЦПУ: 7700HQ
ГП: видеокарта GTX 1050
Я использовал Prime95 для нагрузки на процессор (используя AVX2). Он стабилизировался на частоте 3,0 ГГц при 45 Вт через несколько минут. Это был ожидаемый результат, так что здесь ничего нового.
После этого я установил драйвер nVidia (470.x). В панели управления nVidia я выбрал использование режим производительности (только видеокарта nVidia). Я думал, что это освободит процессор еще больше, а тактовая частота должна быть как минимум равной или даже выше, чем изначально замерено. Я снова запускаю стресс-тест, и, к моему большому удивлению, процессор стабилизировался на частоте 2,7 ГГц при 45 Вт через несколько минут.
Я подтвердил результаты, проведя несколько тестов. Вот почему я решил вернуться к встроенный графический процессор. После перезагрузки все было как прежде. Затем я попытался сбалансированный режим (графический процессор nVidia только по запросу). В этом случае результаты были идентичны режим производительности.
Я провел еще несколько тестов, переключая GPU/X11<->Wayland, но результаты всегда были одинаковыми.
Со встроенным графическим процессором процессор работал на частоте 3,0 ГГц / ~ 87 градусов при 45 Вт. С nVidia — 2,7 ГГц/~82 градуса при 45 Вт.
У кого-нибудь есть предложение а или я пропустил какую-то настройку ядра?
Спасибо :)
Обновлять:
Дело оказывается еще более интересным. Все сказанное выше верно, за исключением одного - ОС. После множества тестов я пришел к выводу, что ситуация одинакова как в Windows, так и в Linux.
Давайте сосредоточимся на энергопотреблении в режиме простоя (IPPC) процессора.
- Использование режима энергосбережения в Prime приводит к использованию только iGPU и полностью отключает nVidia. В этом случае IPPC составляет <2,5 Вт.
- Использование режима «nVidia по запросу» в Prime приводит к использованию iGPU, если явно не выбрано nVidia. В этом случае оба графических процессора всегда активны. Независимо от того, сколько процессов на самом деле использует nVidia - он всегда активен! В данном случае IPPC составляет ~5-12Вт.
- Использование режима «производительность» в Prime приводит к использованию ТОЛЬКО графического процессора nVidia. Он всегда активен. В данном случае IPPC составляет ~5-12Вт.
Позже я попытался выяснить, почему IPPC находится в таком широком диапазоне — от 5 до 12 Вт и как он связан с GPU. К счастью, я нашел его. Ответ был в состояниях питания графического процессора (P-состояния). Когда GPU использует P0 (максимальная производительность), тогда IPPC составляет 5 Вт. В любом другом случае IPPC больше (до 12Вт). Звучит довольно нелогично, но... оказывается правдой. Чем быстрее работает графический процессор, тем меньше он влияет на ЦП, поэтому энергопотребление пакета ЦП снижается, и наоборот - чем медленнее работает графический процессор, тем больше энергии потребляет ЦП.
Теперь перейдем к Windows. У него есть только один режим GPU — «по требованию». Разница с Linux заключается в том, что в Windows, когда ни одно приложение не использует графический процессор nVidia, он отключается, что приводит к IPPC <2,5 Вт. Если какое-либо приложение начинает использовать графический процессор nVidia, IPPC увеличивается до 12 Вт. Таким образом, в Windows логика такая же, как и в Linux — чем быстрее работает GPU, тем ниже мощность пакета CPU.
Примечание. Я проверил энергопотребление в Windows в режиме ожидания. Мощность Core/IA/GX была почти нулевой, а пакет 5-12 Вт при включенной nVidia.
По всем выводам проблема не связана с ОС/графическим процессором. Каким-то образом включение dGPU (независимо от использования) приводит к высокому энергопотреблению пакета ЦП (таким образом, при загрузке ЦП снижается частота).Что может быть причиной? Что-то не так с драйверами nVidia для Windows/Linux? Есть ли какой-то конкретный компонент ЦП, который активируется при работе dGPU?