Нвидиа Оптимус
Nvidia Optimus компьютерного — это технология переключения графического процессора, созданная Nvidia , которая, в зависимости от нагрузки ресурсов, создаваемой клиентскими программными приложениями, позволяет плавно переключаться между двумя графическими адаптерами в компьютерной системе, чтобы обеспечить либо максимальную производительность, либо минимальное энергопотребление системной графики. аппаратное обеспечение рендеринга.
Типичная платформа включает в себя как менее производительный интегрированный графический процессор Intel , так и / AMD высокопроизводительный процессор Nvidia. Optimus экономит заряд батареи, автоматически отключая питание дискретного графического процессора (GPU), когда он не нужен, и снова включая его, когда он необходим. Эта технология в основном предназначена для мобильных ПК, таких как ноутбуки . [ 1 ] [ а ] Когда запускается приложение, которое, как определено, извлекает выгоду из производительности дискретного графического процессора, дискретный графический процессор включается, и приложение обслуживается контекстом рендеринга через этот графический процессор. В противном случае приложение обслуживается контекстом рендеринга, использующим встроенный графический процессор. Переключение между графическими процессорами спроектировано так, чтобы быть полностью плавным и происходить «за кулисами».
Официальными поддерживаемыми операционными системами Nvidia являются Microsoft Windows и Linux . Проект под названием «Бамблби». [ 4 ] это альтернативная с открытым исходным кодом . реализация поддержки Optimus для Linux [ 5 ]
Операция
[ редактировать ]Когда пользователь запускает приложение, графический драйвер пытается определить, будет ли приложение использовать дискретный графический процессор. Если да, то графический процессор включается из состояния ожидания и ему передаются все вызовы рендеринга. Однако даже в этом случае для вывода конечного изображения используется встроенный графический процессор (IGP). При использовании менее требовательных приложений единоличное управление берет на себя IGP, что позволяет продлить срок службы батареи и снизить уровень шума вентилятора. В Windows драйвер Nvidia также предоставляет возможность вручную выбрать графический процессор в контекстном меню при запуске исполняемого файла.
На уровне аппаратного интерфейса драйвера графического процессора Nvidia уровень маршрутизации Optimus обеспечивает интеллектуальное управление графикой. Уровень маршрутизации Optimus также включает библиотеку уровня ядра для распознавания и управления определенными классами и объектами, связанными с различными графическими устройствами. Это нововведение Nvidia осуществляет управление состоянием и контекстом, распределяя архитектурные ресурсы по мере необходимости для каждого клиента драйвера (т. е. приложения). В этой схеме управления контекстом каждое приложение не знает о других приложениях, одновременно использующих графический процессор.
Распознавая назначенные классы, уровень маршрутизации Optimus может помочь определить, когда графический процессор можно использовать для улучшения производительности рендеринга. В частности, он отправляет сигнал на включение графического процессора, когда обнаруживает любой из следующих трех типов вызовов:
- DX-вызовы: любой 3D-игровой движок или приложение DirectX запускают эти вызовы.
- Вызовы DXVA : воспроизведение видео запускает эти вызовы (DXVA = ускорение видео DirectX).
- Вызовы CUDA : приложения CUDA инициируют эти вызовы.
Предопределенные профили также помогают определить, нужна ли дополнительная графическая мощность. Управлять ими можно с помощью панели управления Nvidia.
Optimus избегает использования аппаратного мультиплексора и предотвращает сбои, связанные с изменением драйвера дисплея с IGP на GPU, передавая поверхность дисплея из буфера кадров графического процессора по шине PCI Express в буфер кадров на основе основной памяти, используемый IGP. Механизм копирования Optimus — это новая альтернатива традиционным передачам DMA между памятью кадрового буфера графического процессора и основной памятью, используемой IGP.
Использование IGP для вывода данных из дискретного графического процессора может стать узким местом при высокой частоте кадров. На ноутбуках, заменяющих настольные компьютеры, или игровых ноутбуках (где производительность важнее энергоэффективности) технология Optimus подвергалась резкой критике. Некоторые поставщики предоставили аппаратные мультиплексоры, позволяющие полностью отключить архитектуру Optimus. Операция может выполняться в BIOS и часто требует перезагрузки.
Поддержка Linux
[ редактировать ]![]() | Этот раздел необходимо обновить . ( декабрь 2015 г. ) |

Хотя это исторически проблематично, двоичный драйвер Nvidia, начиная с бета-версии 435.17, официально поддерживает разгрузку рендеринга Optimus для приложений OpenGL и Vulkan под названием «PRIME». [ 6 ]
3 мая 2013 года в двоичный драйвер Nvidia была добавлена частичная поддержка Optimus в версии 319.17. [ 7 ] По состоянию на май 2013 года управление питанием дискретной карты не поддерживается, что означает, что невозможно сэкономить заряд батареи путем полного отключения графической карты Nvidia. [ 8 ]
Проект с открытым исходным кодом Bumblebee пытается обеспечить поддержку переключения графических чипов. Как и в реализации Windows, по умолчанию все приложения выполняются через встроенный графический процессор. По состоянию на 2013 год [update] запустить программу с улучшенной графической производительностью на дискретном графическом процессоре можно только явным вызовом ее как таковой: например, с помощью командной строки или с помощью специально настроенного значка ярлыка. Автоматическое обнаружение и переключение между графическими процессорами пока недоступны.
Продолжающаяся работа над интерфейсом графическим bumblebee-ui направлена на обеспечение более удобного запуска программ для улучшения графической производительности при необходимости.
Steam для Linux можно настроить для запуска игр с использованием дискретного графического процессора ( Сообщество Steam: Optimus и Steam для Linux ).
Проект Bumblebee продолжает развиваться по мере того, как в графическую архитектуру Linux вносятся все более необходимые программные изменения. Чтобы максимально эффективно использовать его, лучше всего использовать последний дистрибутив Linux. По состоянию на 2013 год [update]Репозитории программного обеспечения Bumblebee доступны для Arch Linux , Debian , Fedora , Gentoo , Mandriva , OpenSuSE и Ubuntu . Исходный пакет можно использовать для других дистрибутивов.
Попытка Nvidia поддержать Optimus через DMA-BUF , механизм ядра Linux для совместного использования буферов между оборудованием (потенциально графическими процессорами), была отвергнута разработчиками ядра в январе 2012 года из-за лицензий несовместимости GPL между кодом ядра под лицензией и проприетарным кодом. -лицензионный блоб Nvidia . [ 9 ]
Когда не существует программного механизма переключения между графическими адаптерами, система вообще не может использовать графический процессор Nvidia, даже если установленный графический драйвер поддерживает его. [ 10 ]
Современная поддержка Оптимуса
[ редактировать ]Многие дистрибутивы Linux теперь поддерживают разгрузку Nvidia, при которой весь рендеринг выполняет карта Nvidia. Поскольку внутренний дисплей ноутбука физически подключен к драйверу Intel, карта Nvidia выполняет рендеринг в памяти дисплея Intel. Чтобы избежать разрыва, сервер Xorg имеет механизм под названием Prime Synchronization, позволяющий синхронизировать эти обновления буфера во избежание разрыва, аналогично vsync; Чтобы это работало, драйвер Nvidia должен быть загружен как модуль ядра. Обычно это не активировано по умолчанию.
В отличие от Bumblebee, это решение для разгрузки позволяет использовать графику с несколькими мониторами. Недостатком является то, что для переключения карты Nvidia требуется выход из системы.
Ведущей реализацией этого подхода является пакет Prime-select для Ubuntu, в котором есть командная строка и графический инструмент для отключения карты Nvidia. В отличие от Windows, это не делается динамически, и пользователю необходимо перезапустить сеанс входа в систему, чтобы изменения вступили в силу.
Сценарий Prime-Select Ubuntu доступен в производных Ubuntu, которые в некоторых случаях добавляют свои собственные графические инструменты. Подход Prime-Offload был портирован или повторно реализован в Arch и Fedora.
В 2016 году Nvidia анонсировала GL Vendor Neutral Dispatch, что означает, что драйверы Intel и Nvidia могут быть установлены одновременно. Это значительно упростило процесс переключения режимов, хотя это продолжалось до 2018 года, когда дистрибутивы начали этим пользоваться.
Некоторые старые и высокопроизводительные ноутбуки содержат настройку BIOS , позволяющую вручную выбирать состояние аппаратного мультиплексора для переключения вывода между двумя видеоустройствами. В этом случае пользователь Linux может разместить ноутбук в аппаратной конфигурации, в которой имеется только одно графическое устройство. Это позволяет избежать сложностей с запуском двух графических драйверов, но не обеспечивает экономии энергии.
Начиная с версии драйвера 435, проприетарный драйвер поддерживает разгрузку рендеринга одного окна. Он создает виртуальный дисплей, на котором выполняет рендеринг dGPU, который будет отображаться в окне на главном экране выгруженного приложения. [ 11 ] По состоянию на октябрь 2019 года для этого требуется использование ветки разработки xorg, поскольку необходимые модификации еще не выпущены.
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ «Оптимус Технолоджи» . Нвидиа . 22 октября 2012 года . Проверено 10 апреля 2016 г. .
- ^ Ли, Теренс (23 апреля 2011 г.). «NVIDIA представит настольную версию Optimus/Synergy на выставке COMPUTEX» . Проверено 10 апреля 2016 г. .
- ^ Поп, Себастьян (26 апреля 2011 г.). «NVIDIA Optimus выходит на настольные компьютеры» . Проверено 10 апреля 2016 г. .
- ^ «Демон Шмеля» . Гитхаб . 22 апреля 2013 года . Проверено 10 апреля 2016 г. .
- ^ «Выпуск Bumblebee версии 3.0 «Tumbleweed»» . 20 января 2012 года . Проверено 10 апреля 2016 г. .
- ^ Ларабель, Майкл (13 августа 2019 г.). «Бета-драйвер NVIDIA 435.17 Linux добавляет разгрузку рендеринга Vulkan + OpenGL PRIME» . Фороникс . Проверено 3 марта 2024 г.
- ^ Платтнер, Аарон (2 мая 2013 г.). «Драйвер Linux, Solaris и FreeBSD 319.17 (долгоживущая ветка)» . Нвидиа . Проверено 10 апреля 2016 г. .
- ^ "Релиз проприетарного драйвера NVIDIA 319.17 с поддержкой Optimus и RandR 1.4" (in Russian). 2 May 2013 . Retrieved 10 April 2016 .
- ^ «NVIDIA рассказывает о возможностях Optimus для Linux» . Фороникс. 25 января 2012 г.
- ^ «На ноутбуках, у которых нет этого аппаратного мультиплексора, вы в настоящее время не можете использовать графический процессор NVIDIA для отображения». , 23 июля 2010 г., по состоянию на 27 ноября 2010 г. Архивировано 18 июля 2011 г. на Wayback Machine.
- ^ «Глава 35. Разгрузка PRIME Render» . скачать.nvidia.com . Проверено 9 октября 2019 г.