40 votos

¿Cómo funciona la opción NVIDIA On-Demand en la configuración de NVIDIA X Server?

He instalado el controlador propietario de Nvidia en Ubuntu 19.10.
En la sección Perfiles Prime, hay tres opciones:
* NVIDIA (Modo Rendimiento)
* NVIDIA a la carta
* Intel (modo de ahorro de energía)

La primera y la última opción son bastante obvias, pero no sé cómo funciona la segunda. ¿Cómo detecta qué aplicación necesita controlador NVIDIA y cuál no?

1 votos

En Ubuntu 20.04 con nvidia-driver-440 Al elegir "NVIDIA On-Demand" me da la opción de hacer clic con el botón derecho del ratón en el lanzador de GNOME para "Iniciar usando tarjeta gráfica dedicada". Seleccionando la opción nvidia-settings después de lanzar aplicaciones a través de esta opción confirma que utilizarán los gráficos dedicados.

25voto

Md Narimani Puntos 183

Ok finalmente lo resolvi. En este momento, parece que NVIDIA puede hacer renderizado offload para aplicaciones OpenGL y Vulkan.
Para habilitar este renderizado offload, tienes que poner el perfil Prime en "On-Demand", entonces para el offload Vulkan tienes que poner esta variable dentro de tu /etc/environment archivo:
__NV_PRIME_RENDER_OFFLOAD=1

Para aplicaciones OpenGL, tienes que poner estas variables:
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

Después de un reinicio, se iniciará la descarga de render.

Para comprobar qué tarjeta gráfica se está utilizando, puede introducir el siguiente comando en el terminal:
glxinfo | grep vendor

0 votos

Movido a responder...

5 votos

Merece la pena destacarlo: Como con cualquier variable de entorno, puede establecerlas temporalmente cuando ejecute una aplicación concreta. Por ejemplo, si desea descargar glxgears a tu hardware NVIDIA, haz __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears -info ( -info debería permitirte comprobar que efectivamente se está renderizando en tu hardware NVIDIA)

0 votos

Es como el comentario más útil que he encontrado en todo askubuntu.com desde que entré aquí por primera vez. ¡Saludos, que tengas un gran 2021 amigo!

12voto

WinEunuuchs2Unix Puntos 1032

De: Parte I. Instrucciones de instalación y configuración

Capítulo 35. PRIME Render Offload

PRIME render offload es la capacidad de tener una pantalla X renderizada por una GPU, pero elegir ciertas aplicaciones dentro de esa pantalla X para ser renderizadas en una GPU diferente. Esto es especialmente útil en combinación con la gestión dinámica de la energía para dejar una GPU NVIDIA apagada, excepto cuando se necesita para renderizar determinadas aplicaciones sensibles al rendimiento.

La GPU que renderiza la mayor parte de la pantalla X se conoce como "sumidero", y la GPU a la que se "descarga" el renderizado de ciertas aplicaciones se conoce como "fuente". La fuente de descarga de renderizado produce contenido que se presenta en el sumidero de descarga de renderizado. El controlador NVIDIA puede funcionar como una fuente de descarga de renderizado PRIME, para descargar el renderizado de GLX+OpenGL o Vulkan, presentándolo a una pantalla X controlada por el controlador X xf86-video-modesetting.

Requisitos del servidor X

La compatibilidad con la descarga de renderizado PRIME de NVIDIA requiere los siguientes git commits en el servidor X.Org X:

  • 7f962c70 - xsync: Añadir recurso dentro de SyncCreate, exportar SyncCreate

  • 37a36a6b - GLX: Añadir una asignación de proveedor por cliente

  • 8b67ec7c - GLX: Usar el cliente emisor para buscar XID's

  • 56c0a71f - GLX: Añadir una función para cambiar la lista de proveedores de un cliente

  • b4231d69 - GLX: Set GlxServerExports::{major,minor}Version

En el momento de escribir esto, estos commits sólo están en la rama maestra del servidor X.Org X, y todavía no en ninguna versión oficial del servidor X.Org X.

10voto

ke_takahashi Puntos 26

Como extensión de Respuesta de Md Narimani : puedo confirmar esto es en realidad trabajando para mí en kubuntu 19.10 con la versión 440 del controlador nvidia

puede encontrar más información en Capítulo 34. PRIME Render Offload

también puedes configurar la opción "a la carta" en la interfaz gráfica de usuario: Nvidia X Server Settings - PRIME Profiles: NVIDIA On-Demand
enter image description here a continuación, reinicie.

entonces usted puede iniciar su aplicación con las variables de entorno también directamente desde la línea de comandos - por lo que puede cambiar de GPU según sea necesario:

stefan@stefan-Zen:~$ glxheads :0
Name: :0
  Display:     0x556081a45d40
  Window:      0x7000002
  Context:     0x556081a64a70
  GL_VERSION:  3.0 Mesa 19.2.8
  GL_VENDOR:   Intel Open Source Technology Center
  GL_RENDERER: Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2) 
stefan@stefan-Zen:~$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxheads :0
Name: :0
  Display:     0x55f6dd9097a0
  Window:      0x7000002
  Context:     0x55f6dd944878
  GL_VERSION:  4.6.0 NVIDIA 440.64
  GL_VENDOR:   NVIDIA Corporation
  GL_RENDERER: GeForce RTX 2060/PCIe/SSE2

0voto

WiR3D Puntos 951

Basado en las respuestas de @md-narimani y @dominick-pastore en realidad hay Shell Shell enviados listos para este fin como parte de la nvidia-prime-applet paquete.

Y puedes colocarlos antes de cualquier comando que utilizarías normalmente.

nvidia-optimus-offload-glx glxheads :0
nvidia-optimus-offload-vulkan vkcube

Pero esto sólo funcionará si el controlador del kernel de nvidia está cargado correctamente, y Xorg ha generado CORRECTAMENTE las pantallas de Nvidia, puede probar esto por:

cat /var/log/Xorg.0.log | grep -i NVIDIA
# it should output a bunch of lines with "NVIDIA(G0)"

Si las pantallas no se detectan correctamente, cree /etc/X11/xorg.conf.d/nvidia.conf y rellénelo con el contenido de las instrucciones de Capítulo 34. PRIME Render Offload como menciona @stefan-krüger.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X