Como ajustar a velocidade do ventilador da GPU NVIDIA em um nó sem cabeça?

4

Como é possível controlar a velocidade do ventilador de várias GPUs NVIDIA de consumo, como Titan e 1080 Ti, em um nó sem cabeça que executa o Linux?

    
por Aleksandr Dubinsky 27.05.2017 / 14:35

1 resposta

3

O seguinte é um método simples que não requer scripting, conectando monitores falsos, ou mexendo e pode ser executado via SSH para controlar os múltiplos ventiladores das GPUs NVIDIA. Foi testado no Arch Linux.

Identifique os IDs PCI das suas cartas:

Editar : Agora não tenho certeza qual é o melhor método. Anteriormente, sugeri lspci -k | grep -A 2 -E "(VGA|3D)" . No entanto, isso não fornece IDs corretos no meu novo sistema Threadripper.

O que funcionou foi sudo startx , abra /var/log/Xorg.0.log (ou qualquer local que o startX liste em sua saída na linha "Log file:") e procure a linha NVIDIA(0): Valid display device(s) on GPU-<GPU number> at PCI:<PCI ID> .

Editar /etc/X11/xorg.conf

Aqui está um exemplo para uma máquina de três GPUs:

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

O BusID deve corresponder ao ID da PCI que identificamos na etapa anterior. A opção AllowEmptyInitialConfiguration permite que o X inicie mesmo se nenhum monitor estiver conectado. A opção Coolbits permite que os fãs sejam controlados. Também pode permitir overclocking, mas isso não foi testado por mim.

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

cat

Eu uso o .xinitrc para executar nvidia-settings por conveniência, embora provavelmente haja outras maneiras. Aqui, eu defino os fãs para 75%. Eu evito que o servidor X feche com o comando cat vazio. Isso não é estritamente necessário, mas às vezes tenho problemas com cartões que se recusam a deixar o estado de baixa energia do P8 se X fechar. A primeira linha imprimirá todos os ventiladores da GPU no sistema.

Iniciar X

sudo startx -- :0

Você pode executar este comando a partir do SSH. A saída 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.

Monitorar temperaturas e velocidades de clock

nvidia-smi pode ser usado para observar temperaturas e consumo de energia. Temperaturas mais baixas permitirão que a placa aumente mais e aumente o consumo de energia. Você pode usar sudo nvidia-smi -pl 150 para limitar o consumo de energia e manter os cartões resfriados ou usar sudo nvidia-smi -pl 300 para permitir o overclock. Meu 1080 Ti funciona a 1480 MHz se for fornecido 150W e acima de 1800 MHz se for fornecido 300W, mas isso depende da carga de trabalho. Você pode monitorar a velocidade do relógio com nvidia-smi -q ou mais especificamente, watch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'

Voltando ao gerenciamento automático de fãs.

Reinicie. Eu não encontrei outra maneira de tornar os fãs automáticos.

    
por 27.05.2017 / 14:35