Buscamos en diferentes espacios para así tener para ti la solución para tu inquietud, en caso de alguna pregunta deja la pregunta y contestamos porque estamos para ayudarte.
Solución:
El siguiente es un método simple que no requiere secuencias de comandos, conectar monitores falsos o manipular el violín y se puede ejecutar a través de SSH para controlar múltiples ventiladores de GPU NVIDIA. Ha sido probado en Arch Linux.
Crear xorg.conf
sudo nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=7
Esto creará un /etc/X11/xorg.conf
con una entrada para cada GPU, similar al método manual.
Nota: Algunas distribuciones (Fedora, CentOS, Manjaro) tienen archivos de configuración adicionales (por ejemplo, en /etc/X11/xorg.conf.d/
o /usr/share/X11/xorg.conf.d/
), que anula xorg.conf
y establecer AllowNVIDIAGPUScreens
. Esta opción no es compatible con esta guía. Los archivos de configuración adicionales deben modificarse o eliminarse. El archivo de registro X11 muestra qué archivos de configuración se han cargado.
Alternativa: crear xorg.conf manualmente
Identifique los ID PCI de sus tarjetas:
nvidia-xconfig --query-gpu-info
Encuentra el PCI BusID
los campos. Tenga en cuenta que estos no son los mismos que los ID de bus informados en el kernel.
Alternativamente, haz sudo startx
, abierto /var/log/Xorg.0.log
(o cualquier ubicación que startX enumere en su salida debajo de la línea “Archivo de registro:”), y busque la línea NVIDIA(0): Valid display device(s) on GPU-
.
Editar /etc/X11/xorg.conf
A continuación se muestra un ejemplo de xorg.conf
para una máquina de tres GPU:
Section "ServerLayout"
Identifier "dual"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0"
Screen 1 "Screen2" RightOf "Screen1"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:5:0:0"
Option "Coolbits" "7"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:6:0:0"
Option "Coolbits" "7"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:9:0:0"
Option "Coolbits" "7"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
EndSection
Section "Screen"
Identifier "Screen2"
Device "Device2"
EndSection
los BusID
debe coincidir con los ID de bus que identificamos en el paso anterior. La opción AllowEmptyInitialConfiguration
permite que X se inicie incluso si no hay ningún monitor conectado. La opción Coolbits
permite controlar los ventiladores. También puede permitir el overclocking.
Nota: Algunas distribuciones (Fedora, CentOS, Manjaro) tienen archivos de configuración adicionales (por ejemplo, en /etc/X11/xorg.conf.d/
o /usr/share/X11/xorg.conf.d/
), que anula xorg.conf
y establecer AllowNVIDIAGPUScreens
. Esta opción no es compatible con esta guía. Los archivos de configuración adicionales deben modificarse o eliminarse. El archivo de registro X11 muestra qué archivos de configuración se han cargado.
Editar /root/.xinitrc
nvidia-settings -q fans
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:1]/GPUFanControlState=1 -a [fan:1]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:2]/GPUFanControlState=1 -a [fan:2]/GPUTargetFanSpeed=75
Utilizo .xinitrc para ejecutar nvidia-settings por conveniencia, aunque probablemente haya otras formas. La primera línea imprimirá todos los ventiladores de GPU del sistema. Aquí, configuro los ventiladores al 75%.
Lanzamiento X
sudo startx -- :0
Puede ejecutar este comando desde SSH. La salida será:
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat May 27 02:22:08 2017
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Attribute 'GPUFanControlState' (pushistik:0[gpu:0]) assigned value 1.
Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:0]) assigned value 75.
Attribute 'GPUFanControlState' (pushistik:0[gpu:1]) assigned value 1.
Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:1]) assigned value 75.
Attribute 'GPUFanControlState' (pushistik:0[gpu:2]) assigned value 1.
Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:2]) assigned value 75.
Monitorear temperaturas y velocidades de reloj
nvidia-smi
y nvtop
se puede utilizar para observar temperaturas y consumo de energía. Las temperaturas más bajas permitirán que la tarjeta registre más alto y aumente su consumo de energía. Puedes usar sudo nvidia-smi -pl 150
para limitar el consumo de energía y mantener las cartas frescas, o utilizar sudo nvidia-smi -pl 300
para dejarlos overclockear. Mi 1080 Ti funciona a 1480 MHz si se le da 150W, y más de 1800 MHz si se le da 300W, pero esto depende de la carga de trabajo. Puede controlar su velocidad de reloj con nvidia-smi -q
o más específicamente, watch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'
Volviendo a la gestión automática de ventiladores.
Reiniciar. No he encontrado otra forma de hacer que los ventiladores sean automáticos.
Escribí un script de Python instalable en pip para hacer algo similar a la sugerencia de @ AlexsandrDubinsky.
Cuando ejecuta fans.py, configura un servidor X temporal para cada GPU con una pantalla falsa adjunta. Luego, recorre las GPU cada pocos segundos y establece la velocidad del ventilador de acuerdo con su temperatura. Cuando el script muere, devuelve el control de los ventiladores a los controladores y limpia los servidores X.
Tienes la opción de añadir valor a nuestra información cooperando tu veteranía en los comentarios.