Multi-overclocking GPU Nvidia para cálculos (CUDA)

6

Eu tenho visto em fóruns e manuais que você precisa adicionar

Option "Coolbits" "value"

para xorg.conf ou arquivos similares.

Eu consegui fazer isso funcionar para a primeira GPU, a que renderiza a exibição. Eu não fui capaz de obter opções de overclocking na nvidia-settings para a segunda GPU, não renderizando nenhuma tela.

Eu tentei coisas como

Section "Device"
    Identifier  "Videocard0"
    Driver      "nvidia"
    BusID       "PCI:2:00:0"
    Option      "Coolbits" "12"
EndSection

Section "Device"
    Identifier  "Videocard1"
    Driver      "nvidia"
    BusID       "PCI:3:00:0"
    Option      "Coolbits" "12"
EndSection

nos vários arquivos: xorg.conf, 99-nvidia.conf, nvidia-xorg.conf. Tudo o que tentei levou a telas pretas, capacidade de overclock ou capacidade de overclock somente na primeira GPU.

É possível desbloquear o overclock para ambas as GPUs? Se sim, como?

Eu não encontrei essa pergunta em nenhum lugar. Estou executando os drivers 346.59 no Fedora 21.

    
por Agade 05.05.2015 / 14:52

3 respostas

3

A alteração do arquivo xorg.conf para adicionar servidores X virtuais a cada um dos cartões (mesmo aqueles não conectados a um monitor) resolveu o problema.

Basicamente, você deseja ter uma seção de layout do servidor com todas as suas telas reais e virtuais:

Section "ServerLayout"  
    Identifier    "Layout0"     
#   Our real monitor
    Screen 0      "Screen0" 0 0     
#   Our virtual monitors
    Screen 1      "Screen1"     
    Screen 2      "Screen2"
#    ....
    Screen 3      "Screen3"     
    InputDevice   "Keyboard0" "CoreKeyboard"
    InputDevice   "Mouse0"    "CorePointer" 
EndSection

Em seguida, para cada um dos seus cards, você pode colocar seções ("Monitor", "Tela" e "Exibição" idênticas, diferindo apenas por seus identificadores, que a seguir são N , mas devem ser substituídas pelo número do cartão, 0 , 1 , etc. Observe que pelo menos os parâmetros para o monitor real devem corresponder ao que você tem atualmente no seu arquivo xorg.conf , ou seja, a seguir eu tenho CRT um monitor VGA antigo.

Section "Screen"
    Identifier     "ScreenN"
    Device         "DeviceN"
    Monitor        "MonitorN"
    DefaultDepth 24
    Option         "ConnectedMonitor" "CRT"
    Option         "Coolbits" "5"
    Option         "TwinView" "0"
    Option         "Stereo" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
       Depth 24
    EndSubSection
EndSection



Section "Monitor"
    Identifier     "MonitorN"
    VendorName     "Unknown"
    ModelName      "CRT-N"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "DeviceN"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Your Card name here"
    BusID          "PCI:X:Y:Z"
EndSection
    
por 10.09.2015 / 10:23
7

Eu nunca consegui fazê-lo funcionar manualmente editando o xorg.conf. O que funcionou foi executar na linha de comando que configura tudo para você:

sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration

Em seguida, edite o xorg.conf. Para mim, isso foi sudo vi /etc/X11/xorg.conf e prefixar "#" para cada linha que contém a configuração inicial de permissão vazia para comentá-la.

Reinicie.

Em seguida, execute o overclock:

/usr/bin/nvidia-settings

Para restaurar suas configurações após uma reinicialização, crie um arquivo executável que você chama de aplicativos de inicialização contendo o texto abaixo, que definirá o deslocamento do relógio da gpu e definirá a GPU para preferir o desempenho máximo. Meu exemplo define o deslocamento como 50. Não defina o deslocamento muito alto no arquivo para sua exibição real até que você tenha certeza do que deseja ou pode acabar com um sistema em que a exibição não funcionará:

nvidia-settings -a [gpu:0]/GpuPowerMizerMode=1
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[3]=50

nvidia-settings -a [gpu:1]/GpuPowerMizerMode=1
nvidia-settings -a [gpu:1]/GPUGraphicsClockOffset[3]=50

nvidia-settings -a [gpu:2]/GpuPowerMizerMode=1
nvidia-settings -a [gpu:2]/GPUGraphicsClockOffset[3]=50

nvidia-settings -a [gpu:3]/GpuPowerMizerMode=1
nvidia-settings -a [gpu:3]/GPUGraphicsClockOffset[3]=50

Se você quiser fazer overclock de memória também,

nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[3]=800 

E de interesse relacionado, você também pode modificar o poder dos cartões. Para ver os valores válidos, insira um valor de 1000

sudo -n nvidia-smi -i 0 --persistence-mode=1
sudo -n nvidia-smi -i 0 --power-limit=145

E apenas para exibir o poder

nvidia-smi
    
por 19.02.2017 / 16:31
0

Se você quiser aplicar as mesmas configurações a todos os cartões, uma abreviação seria: nvidia-settings -a GpuPowerMizerMode=1 nvidia-settings -a GPUGraphicsClockOffset[3]=50

    
por 04.07.2017 / 12:44

Tags