Nvidia on demand что это
Перейти к содержимому

Nvidia on demand что это

  • автор:

Режим on-demand в 435 драйвере nVidia

Видали, до чего этот мир докатился? Неужели нормальный оптимус в линуксах прям от производителя? Кто-нибудь у себя уже пробовал?

Попытался огуглить тему и нифига пока нет. И непонятно — никто не заметил этих изменений или оно просто дерьмово работает?

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

mega_venik ★★★
09.09.19 13:01:57 MSK

О, кажется, вот как оно работает:

Configure Graphics Applications to Render Using the GPU Screen To configure a graphics application to be offloaded to the NVIDIA GPU screen, set the environment variable __NV_PRIME_RENDER_OFFLOAD to 1. If the graphics application uses Vulkan, that should be all that is needed. If the graphics application uses GLX, then also set the environment variable __GLX_VENDOR_LIBRARY_NAME to nvidia, so that GLVND loads the NVIDIA GLX driver. NVIDIA’s EGL implementation does not yet support PRIME render offload.

Examples:

__NV_PRIME_RENDER_OFFLOAD=1 vkcube __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor 

mega_venik ★★★
( 09.09.19 13:06:29 MSK ) автор топика
Ответ на: комментарий от mega_venik 09.09.19 13:06:29 MSK

NVIDIA’s EGL implementation does not yet support PRIME render offload.

На Wayland не заработает. Впрочем немногие композиторы wayland вообще будут работать на блобе. Но радоваться всё равно рано.

eternal_sorrow ★★★★★
( 09.09.19 13:15:35 MSK )
Ответ на: комментарий от eternal_sorrow 09.09.19 13:15:35 MSK

Ну кеды пока вообще на вяленом не работают например. Так что почему бы и не порадоваться уже этому:) В контексте того, что в бамблби никто не коммитил уже пять лет, это вообще отличная новость, имо

mega_venik ★★★
( 09.09.19 13:23:15 MSK ) автор топика

Тем временем завезли нормальный гуй для optimus на ubuntu

fallout4all ★★★★★
( 09.09.19 21:12:12 MSK )
Последнее исправление: fallout4all 09.09.19 21:12:26 MSK (всего исправлений: 1)

Ответ на: комментарий от fallout4all 09.09.19 21:12:12 MSK

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

mega_venik ★★★
( 10.09.19 08:36:25 MSK ) автор топика
10 мая 2021 г.

Стоит 465 драйвер, при включенном ондеманде приложения чет запускаются все равно на встроенной карте. Или я не понял как она работает?

Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)

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

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

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

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

sudo apt install software-properties-qt

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

sudo apt install software-properties-gtk

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

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

sudo software-properties-qt

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

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

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

[Desktop Entry] Categories=System;Settings; Comment[ru_RU]=drivers Comment=drivers Exec=konsole -e "~/.local/share/applications/software-properties-qt.sh" GenericName[ru_RU]=Установка драйверов\s GenericName=Установка драйверов\s Icon=systemsettings MimeType= Name[ru_RU]=software properties qt\n Name=software properties qt\n Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName= X-DBUS-StartupType= X-KDE-SubstituteUID=false X-KDE-Username= 

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

#! /bin/bash echo software-properties-qt sudo /usr/bin/software-properties-qt 

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

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

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

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

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

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

sudo apt install nvidia-settings

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

  1. NVIDIA (Performance Mode) — работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически
  2. NVIDIA On-Demand — некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше
  3. NVIDIA (Power Saving Mode) — отключение дискретной графики

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

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

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

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

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

для Vulkan только:

__NV_PRIME_RENDER_OFFLOAD=1

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

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia program

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

Пример: ярлык игры 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

Заключение

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

P.S. в комментариях (#comment_23011444) немного подсказали, что для работы с Proton (DirectX) есть такой док

  • Настройка Linux
  • *nix
  • Видеокарты
  • Игры и игровые консоли

Nvidia prime

Nvidia Prime — набор патчей c поддержкой технологии Prime, позволяющей организовать совместное обращение разных драйверов к общему буферу, что необходимо для реализации возможности горячего переключения вывода между разными видеокартами. В данном случае это Nvidia и Intel, технология NVIDIA Optimus.

Установка

Проекты Bumblebee и Nvidia Prime не совместимы между собой. Поэтому, если у вас установлен Bumblebee, то его надо удалить перед установкой Nvidia Prime!

Для правильного удаления bumblebee выполните следующие шаги:
Включить видеокарту в терминале (если этого не сделать, то prime не найдет видеокарту Nvidia)

sudo tee /proc/acpi/bbswitch 
проверить, что Nvidia включена можно командой
sudo cat /proc/acpi/bbswitch

Удалить bumblebee

sudo apt-get purge bumblebee* bbswitch-dkms sudo apt-get autoremove

Отключить репозиторий bumblebee, если включен

sudo apt-add-repository -r ppa:bumblebee/stable sudo apt-get update

Далее смело можно устанавливать Nvidia Prime.

Nvidia Prime в основном расчитан на работу с менеджером входа в систему LightDM, который используется в Ubuntu по умолчанию. С другими менеджерами входа в систему возможны проблемы.

Чтобы установить Nvidia Prime и проприетарный драйвер nVidia вам нужно открыть терминал Ctrl + Alt + T и выполнить команды соответсвующие вашей версии Ubuntu:

Ubuntu 12.04

~ Установить новые версии ядра и графического стека, выполнив команду:sudo apt-get install linux-generic-lts-saucy xserver-xorg-lts-saucy linux-headers-generic-lts-saucy ~ Установить проприетарный драйвер nVidia версии 331 и Nvidia Prime:sudo apt-get install nvidia-331 nvidia-settings nvidia-prime

Ubuntu 14.04 и 14.10

~ Установить Nvidia Prime и проприетарный драйвер nVidia:sudo apt-get install nvidia-352 nvidia-settings nvidia-prime

Ubuntu 15.04

~ Установить Nvidia Prime и проприетарный драйвер nVidia:sudo apt-get install nvidia-352 nvidia-settings nvidia-prime

Ubuntu 15.10

~ Установить Nvidia Prime и проприетарный драйвер nVidia:sudo apt-get install nvidia-352 nvidia-settings nvidia-prime

Ubuntu 16.04

~ Установить Nvidia Prime и проприетарный драйвер nVidia:sudo apt-get install nvidia-361 nvidia-settings nvidia-prime

Для завершения установки незабываем перезагрузить ноутбук.

Переключение видеокарт

С помощью NVIDIA X server Settings

Войдите в менеджер настроек «NVIDIA X server Settings», запустив nvidia-settings через Unity Dash или через терминал.

Далее перейдите в раздел PRIME Profiles и выберите какую видеокарту хотите использовать и нажмите на кнопку «Выход». При смене видеокарты вас попросят ввести пароль администратора.

Для вступления в силу настроек необходимо перезапустить сеанс. Для этого выполните «Завершение сеанса…» и затем заново войдите в систему.

В терминале

С помощью консольной программы prime-select можно управлять nvidia-prime в терминале.
Чтобы узнать какая видеокарта задействована в качестве основной, введите

prime-select query

Для выбора видеокарты Nvidia используется команда

sudo prime-select nvidia

А для переключения обратно на Intel

sudo prime-select intel

Не забываем после смены активной видеокарты перезагрузить текущий сеанс.

Проблемы

~ **Зависает система при использовании тачпада!** Для возобновления работы можно перейти в другой терминал, нажатием комбинации клавиш Ctrl-Alt-F1, и затем перейти обратно нажав Ctrl-Alt-F7. У кого наблюдается данный баг - просьба подтвердить: [[lpbug>1220426|nvidia-prime - Freeze while using touchpad]] \\ На launchpad пишут, что баг исправлен в Ubuntu 15.04 ~ На последних версиях пакетов ubuntu-drivers-common и nvidia-common, при выборе видеокарты nvidia, система загружается с **черным экраном**.\\ [[lpbug>1365695|No longer able to use GUI after update]]\\ Для решения перейдите в терминал, нажатием комбинации клавиш Ctrl-Alt-F1. И верните старые версии пакетов ubuntu-drivers-common и nvidia-common командой sudo apt-get install ubuntu-drivers-common=1:0.2.91.4 nvidia-common=1:0.2.91.4Затем запретите их обновление в системе: sudo apt-mark hold ubuntu-drivers-common nvidia-commonДалее перезагрузите компьютер ~ Возможны рывки при просмотре фильмов или перемещении окон. ~ Может не работать автоподключение мониторов (тогда правьте файл xorg.conf). В официальном Wiki сообщается, что данная проблема исправлена в Ubuntu 14.04+ ~ В Ubuntu 12.04 при выходе из **nvidia-settings** система сообщает об ошибке. \\ [[lpbug>1268027|nvidia-settings crashes on exit]] или [[lpbug>1214508|nvidia-settings >=319 segfaults on close]] * Решить проблему можно установкой пакета gtk2-engines-pixbuf sudo apt-get install gtk2-engines-pixbuf

sudo apt-get install gtk2-engines-pixbuf:i386

Сообщить о баге или узнать про них можно на странице https://launchpad.net/ubuntu/+source/nvidia-prime

Также о различных ошибках или технических трудностях при использовании nvidia-prime вы можете написать на форуме
http://forum.ubuntu.ru/index.php?topic=190100.0

Ссылки

~ Англоязычная wiki о гибридной графике * Оригинал - https://wiki.ubuntu.com/X/Config/HybridGraphics * Любительский перевод от 2013-11-05 - http://technic.url.ph/?p=188 ~ Гибридная видеосистема в Ubuntu 13.10 - http://vasilisc.com/hybrid-video-system-ubuntu-13-10 ~ Более полная поддержка Nvidia Optimus в Ubuntu 14.04 Trusty Tahr * Оригинал - http://www.webupd8.org/2013/12/more-work-to-support-nvidia-optimus.html * Любительский перевод - http://technic.url.ph/?p=186 ~ Индикатор для prime предоставляющий возможность быстрого переключения между картами Nvidia и Intel * Оригинал: http://www.webupd8.org/2014/01/prime-indicator-lets-you-quickly-switch.html * Любительский перевод: http://technic.url.ph/?p=237 * Еще один вариант новости: http://startubuntu.ru/?p=104314 ~ Новость на форуме: Nvidia prime в ubuntu 12.04 (14.04) - http://forum.ubuntu.ru/index.php?topic=238645.0 ~ Установка Nvidia Prime в Ubuntu - http://www.linuxrussia.com/2015/02/nvidia-prime-ubuntu.html \\ Рассказывается про установку новых версий драйвера nvidia из репозитория ppa:xorg-edgers/ppa и об использовании nvidia prime. Приводится небольшое тестирование производительности разных версий драйвера nvidia

См.также

  • Bumblebee
  • Bumblebee в Ubuntu 16.04 Xenial Xerus
  • Nvidia-96 для Ubuntu 12.04 и старше
  • Воспроизведение HD-video
  • Помощь в развитии свободного драйвера видеокарт Nvidia
  • Проприетарный драйвер для видеокарт Nvidia
  • Свободный драйвер Nouveau для видеокарт Nvidia

Потоки по запросу (on-demand) и HLS¶

Для чего нужны потоки по запросу (on-demand)?¶

Если поток настроен на режим по запросу, он будет включаться только при получении запроса от пользователя. В случае, если у пользователя пропала необходимость в просмотре, или же источник, из которого транслируется поток, по каким-то причинам остановил свою работу — поток автоматически отключится через определенное время (таймаут). Потоки по запросу нужны, в основном, для экономии ресурсов (в первую очередь трафика). Они хорошо подходят в тех случаях, когда у вас есть большое количество потоков, но вам не нужна их одновременная и постоянная работа.

Подробнее о настройке потоков по запросу здесь.

Проблемы, связанные с on-demand¶

Особенность работы сегментированных протоколов в режиме по запросу (On-demand) состоит в том, что при их использовании требуется накопление буфера плеера перед началом отдачи видео (первичная загрузка хотя бы 3 сегментов видео), что занимает некоторое время. Несмотря на то, что такие параметры, как используемый протокол передачи медиа, размер GOP (группы кадров), длина сегмента, могут повлиять на время накопления буфера, этот процесс и связанная с ним задержка неизбежны.

Проблемы, связанные с протоколом HLS¶

  1. HLS является сегментированным протоколом, соответственно, требуется некоторое время на накопление буфера.
  2. В Flussonic Media Server реализована проверка, определяющая, жив ли источник. Она заключается в том, что Flussonic (рестример), подключившись к HLS источнику, запоминает последний увиденный сегмент и ждет появление следующего. До тех пор, пока он не появится, Flussonic не начнет воспроизведение. Это приводит к дополнительной задержке воспроизведения.

В случае, если мы принимаем неизвестный (не-Flussonic) HLS источник и ретранслируем его, без этой проверки нет никакого другого способа узнать, онлайн источник или нет. Отсутствие данной проверки может привести к зацикленному воспроизведению последних считанных сегментов в случае, если источник в какой-то момент уйдет в оффлайн. Flussonic не может доверять стороннему источнику (даже если он предоставляет нужные данные), потому что невозможно определить, чем является этот источник.

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

Как это исправить?¶

У нас есть решение для обеих этих проблем — наш собственный протокол M4F . Его использование убирает необходимость проверки источника (этот протокол гарантирует, что рестример не загрузит уже имеющиеся сегменты второй раз, а источник сбросит плейлист, если на нем пропали кадры), также он поддерживает prepush (быстрое наполнение буфера плеера) и предоставляет информацию об архиве источника (или нескольких источников одновременно), дает возможность проксировать архив. Как итог — нивелируются обе причины этой задержки. M4F является внутренним протоколом Flussonic, следовательно, его использование возможно только при условии, если Flussonic Media Server — и источник, и рестример. Подробнее о протоколе M4F .

Если ваша цель — именно потоки по запросу (On-demand) и их вывод по протоколу HLS — мы настоятельно рекомендуем вам обратиться к поставщику с просьбой поставить себе Flussonic Media Server, и использовать протокол M4F для передачи данных между ними. В результате вы получите хорошо синхронизированную конфигурацию и решите проблемы, связанные с долгим запуском потоков.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *