Articulo de referencia

Nvidia Optimus

Nvidia Optimus es una tecnología de conmutación de GPU de computadora creada por Nvidia que, dependiendo de la carga de recursos generada por las aplicaciones de software del cl...

Nvidia Optimus es una tecnología de conmutación de GPU de computadora creada por Nvidia que, dependiendo de la carga de recursos generada por las aplicaciones de software del cliente, cambiará sin problemas entre dos adaptadores de gráficos dentro de un sistema informático para proporcionar el máximo rendimiento o el mínimo consumo de energía del hardware de renderizado de gráficos del sistema.

Una plataforma típica incluye tanto un procesador gráfico integrado de bajo rendimiento , normalmente de Intel o AMD , como uno de alto rendimiento, normalmente de Nvidia o AMD. Optimus ahorra batería apagando automáticamente la unidad de procesamiento gráfico (GPU) discreta cuando no se necesita y encendiéndola cuando se necesita nuevamente. La tecnología apunta principalmente a PC móviles como notebooks . [1] [a] Cuando se inicia una aplicación que se determina que se beneficiará del rendimiento de la GPU discreta, la GPU discreta se enciende y la aplicación es servida por un contexto de renderizado a través de esa GPU. De lo contrario, la aplicación es servida por un contexto de renderizado que usa la GPU integrada. El cambio entre los procesadores gráficos está diseñado para ser completamente fluido y suceder "detrás de escena".

Los sistemas operativos oficiales compatibles con Nvidia son Microsoft Windows y Linux . Un proyecto llamado Bumblebee [4] es una implementación alternativa de código abierto de la compatibilidad de Optimus con Linux. [5]

Operación

Cuando un usuario inicia una aplicación, el controlador de gráficos intenta determinar si la aplicación se beneficiaría de la GPU discreta. Si es así, la GPU se enciende desde un estado inactivo y se le pasan todas las llamadas de renderizado. Sin embargo, incluso en este caso, se utiliza el procesador de gráficos integrado (IGP) para generar la imagen final. Cuando se utilizan aplicaciones menos exigentes, el IGP toma el control exclusivo, lo que permite una mayor duración de la batería y menos ruido del ventilador. En Windows, el controlador de Nvidia también proporciona la opción de seleccionar manualmente la GPU en el menú del botón derecho al iniciar un ejecutable.

Dentro de la capa de interfaz de hardware del controlador de GPU de Nvidia, la capa de enrutamiento Optimus proporciona una gestión inteligente de gráficos. La capa de enrutamiento Optimus también incluye una biblioteca a nivel de kernel para reconocer y gestionar clases y objetos específicos asociados con diferentes dispositivos gráficos. Esta innovación de Nvidia realiza la gestión de estado y contexto, asignando recursos arquitectónicos según sea necesario para cada cliente del controlador (es decir, aplicación). En este esquema de gestión de contexto, cada aplicación no está al tanto de otras aplicaciones que utilizan la GPU simultáneamente.

Al reconocer las clases designadas, la capa de enrutamiento Optimus puede ayudar a determinar cuándo se puede utilizar la GPU para mejorar el rendimiento de renderizado. En concreto, envía una señal para encender la GPU cuando encuentra cualquiera de los siguientes tres tipos de llamadas:

  • Llamadas DX: cualquier motor de juego 3D o aplicación DirectX activará estas llamadas
  • Llamadas DXVA : la reproducción de video activará estas llamadas (DXVA = Aceleración de video DirectX)
  • Llamadas CUDA : Las aplicaciones CUDA activarán estas llamadas

Los perfiles predefinidos también ayudan a determinar si se necesita potencia gráfica adicional. Estos perfiles se pueden gestionar mediante el panel de control de Nvidia.

Optimus evita el uso de un multiplexor de hardware y previene los fallos asociados con el cambio del controlador de pantalla de IGP a GPU al transferir la superficie de la pantalla desde el búfer de cuadros de la GPU a través del bus PCI Express al búfer de cuadros basado en la memoria principal que utiliza IGP. Optimus Copy Engine es una nueva alternativa a las transferencias DMA tradicionales entre la memoria del búfer de cuadros de la GPU y la memoria principal que utiliza IGP.

El uso del IGP para generar datos desde la GPU discreta puede convertirse en un cuello de botella a altas velocidades de cuadros. En los portátiles para juegos o los que reemplazan a los ordenadores de sobremesa (donde el rendimiento se prioriza por sobre la eficiencia energética), la tecnología Optimus ha sido muy criticada. Algunos proveedores han proporcionado soluciones de multiplexor de hardware para apagar por completo la arquitectura Optimus. La operación puede estar alojada en el BIOS y, a menudo, requiere un reinicio.

Soporte para Linux

En el medio, la pila de controladores de código abierto y libre que consta de Mesa 3D y libDRM en el espacio de usuario y el controlador DRM / KMS en el núcleo Linux. El blob del núcleo propietario de Nvidia no puede utilizar DMA-BUF debido a restricciones de licencia.

Si bien históricamente es problemático, el controlador binario de Nvidia desde la versión beta 435.17 admite oficialmente la descarga de renderizado de Optimus para aplicaciones OpenGL y Vulkan bajo el nombre "PRIME". [6]

El controlador binario de Nvidia agregó soporte parcial para Optimus el 3 de mayo de 2013 en la versión 319.17. [7] A partir de mayo de 2013, la administración de energía para tarjetas discretas no es compatible, lo que significa que no se puede ahorrar batería apagando completamente la tarjeta gráfica de Nvidia. [8]

El proyecto de código abierto Bumblebee intenta ofrecer compatibilidad con el cambio de chip gráfico. Al igual que en la implementación de Windows, de forma predeterminada todas las aplicaciones se ejecutan a través del procesador gráfico integrado. A partir de 2013, [actualizar]solo se puede ejecutar un programa con un rendimiento gráfico mejorado en la GPU discreta invocándola explícitamente como tal: por ejemplo, mediante la línea de comandos o mediante un icono de acceso directo especialmente configurado. La detección y el cambio automáticos entre procesadores gráficos aún no están disponibles.

El trabajo en progreso en una interfaz gráfica - bumblebee-ui - tiene como objetivo permitir un inicio más conveniente de los programas para un mejor rendimiento gráfico cuando sea necesario.

Steam para Linux se puede configurar para ejecutar juegos usando la GPU discreta (Comunidad Steam: Optimus y Steam para Linux).

El Proyecto Bumblebee continúa evolucionando a medida que se realizan más cambios de software necesarios en la arquitectura gráfica de Linux. Para aprovecharlo al máximo, es mejor utilizar una distribución Linux reciente. A partir de 2013 [actualizar], los repositorios de software de Bumblebee están disponibles para Arch Linux , Debian , Fedora , Gentoo , Mandriva , OpenSuSE y Ubuntu . El paquete fuente se puede utilizar para otras distribuciones.

Un intento de Nvidia de soportar Optimus a través de DMA-BUF , un mecanismo del kernel de Linux para compartir buffers entre hardware (potencialmente GPU), fue rechazado por los desarrolladores del kernel en enero de 2012 debido a la incompatibilidad de licencia entre el código del kernel con licencia GPL y el blob de Nvidia con licencia propietaria . [9]

Cuando no existe ningún mecanismo de software para cambiar entre adaptadores gráficos, el sistema no puede usar la GPU Nvidia en absoluto, incluso si un controlador de gráficos instalado lo admitiera. [10]

Soporte para Optimus moderno

Muchas distribuciones Linux ahora admiten la descarga de Nvidia, donde la tarjeta Nvidia realiza toda la renderización. Por ejemplo, en una notebook con un dispositivo gráfico Intel integrado, que está conectado físicamente a la pantalla de la notebook, la tarjeta Nvidia renderiza en la memoria de pantalla del dispositivo integrado. Para evitar el corte de señal, el servidor Xorg tiene un mecanismo llamado Prime Synchronization para sincronizar estas actualizaciones de búfer, similar a vsync; el controlador Nvidia debe cargarse como un módulo del kernel para que esto funcione. Esto no suele estar activado de forma predeterminada. [ cita requerida ]

A diferencia de Bumblebee, esta solución de descarga permite gráficos en varios monitores. La desventaja es que para alternar la tarjeta Nvidia es necesario cerrar la sesión.

La implementación principal de este enfoque es el paquete 'prime-select' de Ubuntu, que tiene una línea de comandos y una herramienta gráfica para apagar la tarjeta Nvidia. A diferencia de Windows, esto no se hace de forma dinámica y el usuario debe reiniciar la sesión para que el cambio surta efecto.

El script de selección principal de Ubuntu está disponible en los derivados de Ubuntu, que en algunos casos agregan sus propias herramientas gráficas. El enfoque de descarga principal se ha adaptado o reimplementado en Arch y Fedora.

En 2016, Nvidia anunció GL Vendor Neutral Dispatch, lo que significa que los controladores de Intel y Nvidia se pueden instalar simultáneamente. Esto ha simplificado enormemente el proceso de cambio de modos, aunque hubo que esperar hasta 2018 para que las distribuciones comenzaran a aprovecharlo.

Algunas computadoras portátiles más antiguas y de alta gama contienen una configuración de BIOS para seleccionar manualmente el estado del multiplexor de hardware para cambiar la salida entre los dos dispositivos de video. En este caso, un usuario de Linux puede colocar la computadora portátil en configuraciones de hardware donde solo hay un dispositivo gráfico. Esto evita las complejidades de ejecutar dos controladores gráficos, pero no ofrece ahorro de energía.

Desde la versión 435 del controlador, el controlador propietario admite la descarga de renderizado de una sola ventana. Crea una pantalla virtual en la que la dGPU realiza el renderizado, que se mostrará en la ventana de la pantalla principal de la aplicación descargada. [11] A partir de octubre de 2019, esto requiere el uso de la rama de desarrollo de xorg, ya que las modificaciones necesarias aún no se han publicado.

Véase también

Notas

  1. ^ Desktop Optimus estaba previsto que se lanzara en junio de 2011 [2] bajo el nombre de Synergy , [3] pero nunca lo hizo.

Referencias

  1. ^ "Optimus Technology". Nvidia . 22 de octubre de 2012 . Consultado el 10 de abril de 2016 .
  2. ^ Lee, Terence (23 de abril de 2011). «NVIDIA lanzará Desktop Optimus/Synergy en COMPUTEX» . Consultado el 10 de abril de 2016 .
  3. ^ Pop, Sebastian (26 de abril de 2011). «NVIDIA Optimus llega a los ordenadores de sobremesa» . Consultado el 10 de abril de 2016 .
  4. ^ "Bumblebee Daemon". GitHub . 22 de abril de 2013 . Consultado el 10 de abril de 2016 .
  5. ^ "Lanzamiento de la versión 3.0 "Tumbleweed" de Bumblebee". 20 de enero de 2012. Consultado el 10 de abril de 2016 .
  6. ^ Larabel, Michael (13 de agosto de 2019). «El controlador NVIDIA 435.17 Linux Beta agrega Vulkan + OpenGL PRIME Render Offload». Phoronix . Consultado el 3 de marzo de 2024 .
  7. ^ Plattner, Aaron (2 de mayo de 2013). "Linux, Solaris, and FreeBSD driver 319.17 (long-lived branch release)" (Controlador de Linux, Solaris y FreeBSD 319.17 (versión de rama de larga duración)). Nvidia . Consultado el 10 de abril de 2016 .
  8. ^ "Релиз проприетарного драйвера NVIDIA 319.17 с поддержкой Optimus y RandR 1.4" (en ruso). 2 de mayo de 2013 . Consultado el 10 de abril de 2016 .
  9. ^ "NVIDIA habla de las posibilidades de Optimus para Linux". Phoronix. 25 de enero de 2012.
  10. ^ "En las computadoras portátiles que no tienen ese multiplexor de hardware, actualmente no se puede usar la GPU NVIDIA para la pantalla". 23 de julio de 2010, consultado el 27 de noviembre de 2010. Archivado el 18 de julio de 2011 en Wayback Machine .
  11. ^ "Capítulo 35. Descarga de renderizado PRIME". download.nvidia.com . Consultado el 9 de octubre de 2019 .


Obtenido de "https://es.wikipedia.org/w/index.php?title=Nvidia_Optimus&oldid=1251103255"