Nvidia on demand linux что это

Обновлено: 04.07.2024

Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным

У меня система KDE Neon 5.21 - по факту Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150

1. Устанавливаем драйвер

a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:

Если у вас система на GTK то с помощью это команды:

Хотя разницы принципиальной нет

b) Затем запускаем ее с правами root

Можно так же добавить ярлык для запуска в меню приложений

Инструкция для KDE

/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием

И файл software properties qt.sh в той же папке:

После перезагрузки ярлык появится в меню

Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики

c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server


d) После установки перезагружаем устройство

2. Настраиваем видеокарту

a) Загружаем следующую программу:

b) Переходим в PRIME Profiles Здесь мы видим три пункта:

NVIDIA (Performance Mode) - работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически

NVIDIA On-Demand - некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше

NVIDIA (Power Saving Mode) - отключение дискретной графики

Выбираем второй вариант - NVIDIA On-Demand , и перезагружаем систему


3. Запуск приложения с использованием дискретной графикой

Это то, что сложнее всего гуглилось.

Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:

для Vulkan только:

Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:

Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или "изменить приложение. "), перейти во вкладку "приложение" и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein - Blade of Agony

Пример: ярлык игры Wolfenstein - Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

Заключение

Данный метод, как я понял, точно работают для програм, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история.

Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным

У меня система KDE Neon 5.21 - по большому счету - Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150

1. Устанавливаем драйвер

a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:

Если у вас система на GTK то с помощью это команды:

Хотя разницы принципиальной нет

b) Затем запускаем ее с правами root

Можно так же добавить ярлык для запуска в меню приложений

Инструкция для KDE

/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием

И файл software properties qt.sh в той же папке:

После перезагрузки ярлык появится в меню

Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики

c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server


d) После установки перезагружаем устройство

2. Настраиваем видеокарту

a) Загружаем следующую программу:

b) Переходим в PRIME Profiles Здесь мы видим три пункта:

NVIDIA (Performance Mode) - работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически

NVIDIA On-Demand - некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше

NVIDIA (Power Saving Mode) - отключение дискретной графики

Выбираем второй вариант - NVIDIA On-Demand , и перезагружаем систему


3. Запуск приложения с использованием дискретной графики

Это то, что сложнее всего гуглилось.

Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:

для Vulkan только:

Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:

Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или "изменить приложение. "), перейти во вкладку "приложение" и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein - Blade of Agony

Пример: ярлык игры Wolfenstein - Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

Заключение

Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)

First and last options are quite obvious, But I don't know how the second option works. How it detects which application needs NVIDIA driver and which doesn't?

745 1 1 gold badge 5 5 silver badges 13 13 bronze badges On Ubuntu 20.04 with nvidia-driver-440 , choosing "NVIDIA On-Demand" gives me a right-click option in the GNOME launcher to "Launch using Dedicated Graphics Card". Checking the nvidia-settings tool after launching applications through this option confirms that they will use the dedicated graphics.

4 Answers 4

Ok I finally figured it out. As this moment, it appears that NVIDIA can do offload rendering for OpenGL and Vulkan apps.
In order to enable this offload rendering, you have to put the Prime profile on "On-Demand", then for Vulkan offloading you have to put this variable inside your /etc/environment file:
__NV_PRIME_RENDER_OFFLOAD=1

For OpenGL apps, you have to put these variables:
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

After a restart, it will start render offloading.

In order to check which graphic card is being used, you can enter the following command in terminal:
glxinfo | grep vendor


745 1 1 gold badge 5 5 silver badges 13 13 bronze badges Worth noting: As with any environment variables, you can temporarily set them when running a particular application. E.g. if you want to offload glxgears to your NVIDIA hardware, do __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears -info ( -info should let you check that it is in fact rendering on your NVIDIA hardware) I can confirm that this works for Kubuntu 20.04 (under X11) with Intel Haswell and Nvidia GTX 860M. Thanks!

PRIME render offload is the ability to have an X screen rendered by one GPU, but choose certain applications within that X screen to be rendered on a different GPU. This is particularly useful in combination with dynamic power management to leave an NVIDIA GPU powered off, except when it is needed to render select performance-sensitive applications.

The GPU rendering the majority of the X screen is known as the "sink", and the GPU to which certain application rendering is "offloaded" is known as the "source". The render offload source produces content that is presented on the render offload sink. The NVIDIA driver can function as a PRIME render offload source, to offload rendering of GLX+OpenGL or Vulkan, presenting to an X screen driven by the xf86-video-modesetting X driver.

Когда дело доходит до выбора быстрой и мощной видеокарты , то существует два основных варианта: AMD и Nvidia.

Есть несколько факторов, которые выделяют их. В Windows важна скорость - графические процессоры Nvidia, как правило, работают быстрее, чем AMD. Но в Linux есть и другие факторы, о которых нужно помнить.

Но что же выбрать для Linux - AMD или Nvidia?

Драйверы GPU: проприетарные vs открытые

Существует два типа драйверов, которые вы можете установить, а именно проприетарные драйверы или с открытым исходным кодом. Хотя у обоих есть и хорошие, и плохие стороны, они отличаются, если вы используете видеокарту Nvidia или AMD.

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

Стоит ли использовать видеокарты Nvidia для Linux?

Хотя для Linux существуют открытые и проприетарные драйверы Nvidia, лучшая производительность достигается благодаря проприетарным драйверам. Nouveau, драйвер с открытым исходным кодом для карт Nvidia, обеспечивает в целом худшие результаты, чем его собственный аналог.

Большая часть работы, проделанной Nouveau, осуществляется путем реинжиниринга проприетарного драйвера Nvidia. Это похоже на то, как проект Wine воссоздает среду Windows для запуска таких программ, как Microsoft Office на Linux.

Это имеет свои недостатки, в основном по скорости и совместимости. Проприетарные драйверы Nvidia намного быстрее, чем nouveau, особенно с новыми видеокартами.

Другим недостатком является то, что nouveau не хватает того, что есть у проприетарного драйвера: блокировка . Это позволяет графическому процессору работать больше и, следовательно, работать быстрее (за счет большей мощности).

Разница в скорости значительна, особенно для новых видеокарт. Некоторые тесты показывают, что проприетарные драйверы могут работать до девяти раз быстрее, чем их аналоги с открытым исходным кодом.

AMD - лучший вариант видеокарты для Linux?

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

По сравнению с драйвером Nvidia с открытым исходным кодом, улучшена поддержка новых видеокарт. Частично это связано с поддержкой AMD сообщества открытого исходного кода, предоставлением документации и рабочей силы для разработки драйверов.

Но в то время как драйверы AMD с открытым исходным кодом хороши во всех аспектах, ваша производительность все равно будет заметно ниже, чем при использовании видеокарты Nvidia с проприетарными драйверами.

AMD против Nvidia: что лучше для графической коммутации ( GPU switching )?

Почти все ноутбуки и настольные ПК поставляются с интегрированной графикой Intel. Дискретные графические процессоры от Nvidia и AMD являются дополнениями для ноутбуков, но могут быть добавлены вручную на настольных компьютерах.

GPU switching - это возможность компьютера выбирать, какой графический процессор использовать. Для основных задач, таких как просмотр веб-страниц и обработка текста, выбран графический процессор Intel. Для игр, редактирования видео и тому подобного используется дискретный графический процессор.

Все проприетарные драйверы Nvidia и AMD для Linux с открытым исходным кодом поддерживают GPU switching.

AMD или Nvidia поддерживают Wayland?

Дисплейный сервер Wayland является неотъемлемой частью разработки Linux и доступен на большинстве основных настольных систем Linux.

Графика AMD и Intel работает с Wayland с использованием открытых и закрытых драйверов. Nvidia - это другая история.

Хотя развитие этого ожидается к 2021 году, собственный драйвер Nvidia работает только с реализацией GNOME Wayland.

Композиторам для Wayland требуется специальный API (интерфейс прикладного программирования) , реализованный графическим драйвером. API, который используется в настоящее время чаще всего, называется GBM (Generic Buffer Management). Пока вы используете драйвер с открытым исходным кодом (AMDGPU / Radeon / nouveau), Wayland будет работать.

Какая видеокарта лучше всего подходит для Linux: Intel, AMD или Nvidia?

Для настольных компьютеров Linux это сделать намного проще.

Карты Nvidia стоят дороже AMD и имеют преимущество в производительности. Но использование AMD гарантирует превосходную совместимость и выбор надежных драйверов, будь то с открытым исходным кодом или проприетарные.

То же самое верно для Intel, хотя это решение медленнее.

Если вам нужна поддержка Wayland, AMD и Intel - самые надежные варианты. В противном случае, подходит Nvidia.

Если статья была для вас полезной, просим поставить лайк и подписаться на наш канал . Также посетите наш сайт , чтобы увидеть больше подобного контента.

Читайте также: