Перейти к содержимому

Руководство по настройке ноутбука с двумя GPU

Что такое гибридная графика?

Гибридная графика — это аппаратная конфигурация, в которой у вас есть две видеокарты, которые могут работать вместе. Этот подход в основном встречается в ноутбуках, где у вас есть встроенная графика (iGPU) вашего процессора и дискретная графика (dGPU). Основное преимущество заключается в том, что встроенная графика должна (но не обязательно) использоваться только для нетребовательных задач, таких как просмотр веб-страниц, просмотр видео и т. д. С другой стороны, дискретная графика используется для ресурсоемких задач, таких как игры, редактирование видео, 3D-моделирование и т. д. Следовательно, если два графических процессора разделяют “большие” и “маленькие” задачи, то если у нас в данный момент выполняются только “маленькие” задачи, нам не нужно использовать нашу dGPU, поэтому ее можно просто отключить (как бы “заснуть”), тем самым значительно снизив энергопотребление. Таким образом, когда наша dGPU снова понадобится (мы запускаем приложение, использующее ее), она “проснется” и начнет работать.

Что такое PRIME Offload?

PRIME — это унифицирующая технология для работы с различными наборами гибридной графики в Linux, такими как NVIDIA Optimus/AMD Dynamic Switchable Graphics. PRIME Offload — это реализация идеи переноса выполнения рендеринга с одного GPU на другой в Linux. Поддержка PRIME в закрытом драйвере NVIDIA фактически началась только с драйвера 435.17. Поэтому, если вы используете устаревшие ветки драйверов 390xx или даже 340xx, PRIME Offload не будет работать для вас. Обратите внимание, что мы также настоятельно не рекомендуем использовать устаревшие способы работы с гибридной графикой, такие как nvidia-xrun или Bumblebee. Они устарели и не поддерживаются (Bumblebee не обновлялся более 8 лет), работают исключительно на “костылях” и имеют низкую производительность. В то же время драйвер Nouveau поддерживает PRIME Offload, что может быть альтернативой для старых dGPU.

В CachyOS вам не нужно ничего настраивать, чтобы PRIME Offload работал. С пакетом nvidia-utils и cachyos-settings у вас уже есть все необходимое для использования PRIME Offload.

Кроме того, пожалуйста, избегайте использования таких инструментов, как optimus-manager. Они могут показаться вам довольно удобными, но поверьте, они могут вызвать много проблем, и они вам действительно не нужны, если ваша dGPU поддерживает PRIME Offload и динамическое управление питанием.

Как использовать PRIME Offload

Чтобы указать PRIME, что вы хотите использовать дискретную графику вместо встроенной, вы должны указать ряд переменных среды перед запуском программы:

Окно терминала
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <программа>

Этот набор переменных выглядит очень громоздким и его легко забыть, поэтому вы можете установить пакет nvidia-prime (sudo pacman -S nvidia-prime), который содержит script-alias для всех этих переменных. Тогда запуск приложения с его использованием будет выглядеть так:

Окно терминала
prime-run <программа>

Где <программа> — это имя команды, которая запускает ваше приложение.

Для конфигураций, где обе видеокарты управляются открытыми драйверами Mesa (например, AMD+AMD, AMD+Intel или даже Intel+NVIDIA, где дискретная графика NVIDIA управляется драйвером Nouveau с открытым исходным кодом), ничего не нужно настраивать, и для использования дискретной графики вам нужно только указать переменную среды DRI_PRIME=1 перед запуском приложений или игр, аналогично всем тем переменным, описанным ранее для NVIDIA, или использовать готовые графические методы, описанные ниже.

Графический метод

Вам может показаться неудобным запускать все необходимые приложения через терминал с помощью prime-run. К счастью, некоторые приложения и среды рабочего стола предоставляют инструменты для управления тем, какой GPU используется для конкретных приложений.

Lutris

Чтобы настроить запуск игр с дискретной графикой в Lutris, вам нужно перейти в настройки (три полоски в правом нижнем углу окна и кнопка “Preferences”). Далее перейдите в “Global Options” -> “Display”. Здесь вы можете выбрать GPU, на котором будет работать игра.


Steam

В Steam нет специальной настройки для принудительного использования дискретной графики в игре. Однако вы можете получить доступ к свойствам игры, щелкнув значок шестеренки перед ее запуском. В поле “Launch options” вы можете добавить команду prime-run или переменные среды. Пример:

Окно терминала
prime-run %command%

Обязательно добавьте %command% после prime-run. Помните, что параметры игры идут после заполнителя, а переменные среды системы или команды должны предшествовать ему.


KDE Plasma

Plasma имеет очень удобный способ настройки запуска приложений с дискретной графикой. Однако этот метод работает только в том случае, если на вашей системе установлен пакет switcheroo-control и соответствующая служба.

В свежей установке CachyOS этот пакет и служба уже должны быть включены по умолчанию через chwd.

Окно терминала
sudo pacman -S switcheroo-control
sudo systemctl enable --now switcheroo-control

После выполнения обеих команд щелкните правой кнопкой мыши на записи рабочего стола, которую вы хотите на своем рабочем столе или в меню приложений, затем перейдите в “Properties” -> “Application” -> “Advanced Options”.

У вас должен быть установлен флажок “Run using dedicated graphics card”.


GNOME

В GNOME вам также следует установить switcheroo-control, как показано выше, и щелкнуть правой кнопкой мыши на значке приложения и выбрать “Run using discrete graphics”. Но обратите внимание, что GNOME не запоминает этот выбор на будущее, и в следующий раз, когда вы запустите приложение из значка, оно будет запущено с использованием встроенной графики вместо дискретной.

Cinnamon

Аналогично Plasma, Cinnamon также позволяет выбирать GPU для конкретных приложений. Щелкните правой кнопкой мыши на записи рабочего стола приложения, перейдите в “Properties” и включите соответствующую опцию.


Если она недоступна, убедитесь, что у вас установлен switcheroo-control и его служба включена, поскольку все среды рабочего стола полагаются на нее для этой функциональности.

Устранение неполадок

”Мой внешний монитор сильно тормозит на PRIME”

Это известная проблема драйвера NVIDIA. У вас должен быть установлен последний драйвер NVIDIA и использовать Wayland с композитором, поддерживающим явную синхронизацию. Для GNOME это было исправлено в версии 46.2. Для Plasma 6 это, вероятно, будет исправлено в версии 6.1, хотя некоторые пользователи сообщают о нормальной производительности уже в версии 6.0. В других средах/менеджерах окон эта проблема все еще существует, поэтому вам нужно переключиться на последнюю версию GNOME или Plasma, чтобы исправить ее.