Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Типичная платформа включает в себя интегрированный графический процессор с более низкой производительностью от Intel и высокопроизводительный от Nvidia. Optimus экономит заряд батареи за счет автоматического отключения питания дискретного графического процессора (GPU), когда он не нужен, и его повторного включения при необходимости. Технология в основном предназначена для мобильных ПК, таких как ноутбуки . [1] [а]Когда запускается приложение, которое определено, чтобы получить выгоду от производительности дискретного графического процессора, дискретный графический процессор включается, и приложение обслуживается контекстом рендеринга через этот графический процессор. В противном случае приложение обслуживается контекстом рендеринга, который использует встроенный графический процессор. Переключение между графическими процессорами должно быть полностью незаметным и происходить «за кадром».

Официально поддерживаемые Nvidia операционные системы - это Microsoft Windows и Linux . Проект под названием Bumblebee [4] представляет собой альтернативную реализацию с открытым исходным кодом поддержки Optimus для Linux. [5]

Операция [ править ]

Когда пользователь запускает приложение, графический драйвер пытается определить, выиграет ли приложение от использования дискретного графического процессора. Если это так, GPU включается из состояния ожидания и ему передаются все вызовы рендеринга. Однако даже в этом случае для вывода окончательного изображения используется встроенный графический процессор (IGP). Когда используются менее требовательные приложения, IGP берет на себя единоличное управление, что увеличивает срок службы батареи и снижает шум вентилятора. В Windows драйвер Nvidia также предоставляет возможность вручную выбрать графический процессор в контекстном меню при запуске исполняемого файла.

На уровне аппаратного интерфейса драйвера графического процессора Nvidia уровень маршрутизации Optimus обеспечивает интеллектуальное управление графикой. Уровень маршрутизации Optimus также включает библиотеку уровня ядра для распознавания и управления конкретными классами и объектами, связанными с различными графическими устройствами. Это нововведение Nvidia выполняет управление состоянием и контекстом, распределяя архитектурные ресурсы по мере необходимости для каждого драйвера-клиента (т. Е. Приложения). В этой схеме управления контекстом каждое приложение не знает о других приложениях, одновременно использующих графический процессор.

Распознавая назначенные классы, Optimus Routing Layer может помочь определить, когда можно использовать графический процессор для повышения производительности рендеринга. В частности, он отправляет сигнал на включение графического процессора, когда обнаруживает любой из следующих трех типов вызовов:

  • Вызовы DX: эти вызовы запускаются любым движком 3D-игр или приложением DirectX.
  • Вызовы DXVA : эти вызовы будут запускаться при воспроизведении видео (DXVA = DirectX Video Acceleration)
  • Вызовы CUDA : приложения CUDA будут запускать эти вызовы

Предопределенные профили также помогают определить, требуется ли дополнительная графическая мощность. Этим можно управлять с помощью панели управления Nvidia.

Optimus избегает использования аппаратного мультиплексора и предотвращает сбои, связанные с изменением драйвера дисплея с IGP на GPU, путем передачи поверхности дисплея из буфера кадра графического процессора по шине PCI Express в основной буфер кадра памяти, используемый IGP. Optimus Copy Engine - это новая альтернатива традиционным передачам DMA между памятью кадрового буфера графического процессора и основной памятью, используемой IGP.

Поддержка Linux [ править ]

Посередине - бесплатный стек драйверов с открытым исходным кодом, состоящий из Mesa 3D и libDRM в пользовательском пространстве и драйвера DRM / KMS в ядре Linux. Запатентованный BLOB-объект ядра Nvidia не может использовать DMA BUF из-за лицензионных ограничений.

В бинарный драйвер Nvidia добавлена ​​частичная поддержка Optimus 3 мая 2013 г. в версии 319.17. [6] По состоянию на май 2013 года управление питанием для дискретной карты не поддерживается, что означает, что он не может сэкономить заряд батареи, полностью отключив графическую карту Nvidia. [7]

Проект с открытым исходным кодом Bumblebee пытается обеспечить поддержку переключения графических чипов. Как и в реализации Windows, по умолчанию все приложения работают через встроенный графический процессор. С 2013 года можно запускать программу с улучшенной графической производительностью на дискретном графическом процессоре, явно вызывая ее как таковую: например, используя командную строку или специально настроенный ярлык. Автоматическое определение и переключение между графическими процессорами пока недоступно.

Текущая работа над графическим интерфейсом - bumblebee-ui - призвана обеспечить более удобный запуск программ для улучшения графической производительности при необходимости.

Steam для Linux можно настроить для запуска игр с использованием дискретного графического процессора ( Сообщество Steam: Optimus и Steam для Linux ).

Проект Bumblebee продолжает развиваться, поскольку в графическую архитектуру Linux вносятся все более необходимые изменения программного обеспечения. Чтобы максимально использовать его, лучше всего использовать последний дистрибутив Linux. По состоянию на 2013 год репозитории программного обеспечения Bumblebee доступны для Arch Linux , Debian , Fedora , Gentoo , Mandriva , OpenSuSE и Ubuntu . Пакет с исходным кодом можно использовать для других дистрибутивов.

Попытка Nvidia поддержать Optimus через DMA BUF , механизм ядра Linux для совместного использования буферов между оборудованием (потенциально графическими процессорами), была отклонена разработчиками ядра в январе 2012 года из-за несовместимости лицензий между кодом ядра, лицензированным под GPL, и проприетарным кодом. лицензионный Nvidia blob . [8]

Когда не существует программного механизма для переключения между графическими адаптерами, система вообще не может использовать графический процессор Nvidia, даже если установленный графический драйвер будет его поддерживать. [9]

Поддержка Modern Optimus [ править ]

Многие дистрибутивы Linux теперь поддерживают разгрузку Nvidia, когда карта nvidia выполняет весь рендеринг. Поскольку внутренний дисплей ноутбука физически подключен к драйверу Intel, карта NVIDIA отображает память дисплея Intel. Чтобы избежать разрывов, на сервере xorg есть механизм, называемый Prime Synchronization, который синхронизирует эти обновления буфера, чтобы избежать разрывов, аналогично vsync; чтобы это работало, драйвер nvidia должен быть загружен как модуль ядра. Обычно это не активируется по умолчанию.

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

Ведущей реализацией этого подхода является пакет «prime-select» Ubuntu, в котором есть командная строка и графический инструмент для отключения карты nvidia. В отличие от Windows, это не выполняется динамически, и пользователь должен перезапустить сеанс входа в систему, чтобы изменения вступили в силу.

Сценарий основного выбора Ubuntu доступен в производных Ubuntu, которые в некоторых случаях добавляют свои собственные графические инструменты. Подход Prime-Offload был перенесен или повторно реализован в Arch и Fedora.

В 2016 году Nvidia анонсировала GL Vendor Neutral Dispatch, что означает, что драйверы Intel и NVIDIA могут быть установлены одновременно. Это значительно упростило процесс переключения режимов, хотя до того момента, как дистрибутивы начали использовать преимущества, потребовалось до 2018 года.

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

Начиная с версии драйвера 435, проприетарный драйвер поддерживает выгрузку рендеринга одного окна. Он создает виртуальный дисплей, на котором выполняется рендеринг dGPU, который будет отображаться в окне на главном экране для выгруженного приложения. [10] По состоянию на октябрь 2019 г. для этого требуется использование ветки разработки xorg, поскольку необходимые модификации еще не выпущены.

См. Также [ править ]

  • Гибридная графика AMD

Заметки [ править ]

  1. ^ Desktop Optimus был намечен к запуску в июне 2011 года [2] под названием Synergy , [3] , но никогда не сделал это.

Ссылки [ править ]

  1. ^ "Optimus Technology" . Nvidia . Проверено 10 апреля +2016 .
  2. ^ Ли, Теренс (23 апреля 2011 г.). «NVIDIA представит Desktop Optimus / Synergy на выставке COMPUTEX» . Проверено 10 апреля +2016 .
  3. ^ Поп, Себастьян (26 апреля 2011 г.). «NVIDIA Optimus приземляется на настольные компьютеры» . Проверено 10 апреля +2016 .
  4. ^ "Демон шмеля" . GitHub . 22 апреля 2013 . Проверено 10 апреля +2016 .
  5. ^ "Шмель версии 3.0" Tumbleweed "релиз" . 20 января 2012 . Проверено 10 апреля +2016 .
  6. ^ Plattner, Аарон (2 мая 2013). «Драйвер 319.17 для Linux, Solaris и FreeBSD (долгоживущий выпуск ветки)» . Nvidia . Проверено 10 апреля +2016 .
  7. ^ «Релиз проприетарного драйвера NVIDIA 319.17 с поддержкой Optimus и RandR 1.4» . 2 мая 2013 . Проверено 10 апреля +2016 .
  8. ^ "NVIDIA говорит о возможностях Optimus для Linux" . Фороникс. 25 января 2012 г.
  9. ^ «На ноутбуках, у которых нет этого аппаратного мультиплексора, вы в настоящее время не можете использовать графический процессор NVIDIA для отображения». , 23 июля 2010 г., по состоянию на 27 ноября 2010 г. Архивировано 18 июля 2011 г. на Wayback Machine.
  10. ^ «Глава 35. Разгрузка рендеринга PRIME» . download.nvidia.com . Проверено 9 октября 2019 .

Внешние ссылки [ править ]

  • Технический документ Nvidia Optimus [ постоянная мертвая ссылка ]