Como instalar corretamente o CUDA 8 em uma VM do Azure executando o Ubuntu 14.04 LTS?

3

Eu tentei instalar o CUDA em três VMs diferentes, mas não consegui que ele reconhecesse minha GPU.

Estou usando uma VM do Azure ( NV6 padrão ) com uma GPU M60.

Com uma VM nova, eu executo os seguintes comandos tirados de este guia :

wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64-deb

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64-deb
sudo apt-get update
sudo apt-get install -y cuda

Parece ser bem-sucedido e não indica que houve algum problema. Mas quando eu corro

nvidia-smi

Eu recebo o seguinte:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running

Eu tentei com 16.04 LTS e várias outras instâncias de GPU. O Google me diz que outras pessoas estão usando essas instâncias de GPU do Azure com o Tensorflow, portanto, não parece haver um problema com a placa gráfica.

Por fim, analisei o que parece ser o guia canônico para instalar o CUDA no Ubuntu, mas ele falha ao executar

sudo ./NVIDIA-Linux-x86_64-331.62.run 

A mensagem no arquivo de log:

ERROR: Unable to load the 'nvidia-drm' kernel module.

Minha pergunta

Qual é o método mais confiável para instalar o CUDA 8 no Ubuntu 14.04 LTS?

Existem precauções especiais que preciso executar ao executar o CUDA em uma VM?

Editar: informações adicionais

uname -a retorna

Linux 2017-02-21-josh-gpu 4.4.0-64-generic #85~14.04.1-Ubuntu SMP Mon Feb 20 12:10:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lsmod retorna

Module                  Size  Used by
drm_kms_helper        151552  0
drm                   360448  1 drm_kms_helper
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
udf                    90112  0
crc_itu_t              16384  1 udf
dm_crypt               28672  0
joydev                 20480  0
hid_generic            16384  0
hid_hyperv             16384  0
hid                   118784  2 hid_hyperv,hid_generic
hyperv_keyboard        16384  0
hv_balloon             24576  0
input_leds             16384  0
serio_raw              16384  0
hv_netvsc              40960  0
hv_storvsc             20480  2
hv_utils               28672  2
scsi_transport_fc      65536  1 hv_storvsc
crct10dif_pclmul       16384  0
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
hyperv_fb              20480  1
aesni_intel           167936  0
aes_x86_64             20480  1 aesni_intel
lrw                    16384  1 aesni_intel
gf128mul               16384  1 lrw
glue_helper            16384  1 aesni_intel
ablk_helper            16384  1 aesni_intel
cryptd                 20480  3 ghash_clmulni_intel,aesni_intel,ablk_helper
psmouse               126976  0
hv_vmbus               90112  7 hv_balloon,hyperv_keyboard,hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc
floppy                 73728  0
    
por JoshVarty 23.02.2017 / 11:01

1 resposta

2
documentação do Azure aponta:

  

Atualmente, o suporte à GPU do Linux só está disponível no Azure NC   VMs executando o Ubuntu Server 16.04 LTS. +

Não sei por que eles ainda permitem que você crie instâncias de GPU com o 14.04 instalado, mas espero que isso ajude a espalhar a palavra.

Depois de criar uma nova instância 16.04, fiz o seguinte:

Primeiro, tive que desinstalar / colocar na lista negra os drivers Nouveau que vêm pré-instalados no Ubuntu 16.04. Eles não são compatíveis com os drivers NVIDIA que estamos tentando instalar e causarão erros mais tarde se não os removermos.

 sudo nano /etc/modprobe.d/blacklist.conf

Na parte inferior do arquivo, adicione as seguintes entradas:

 amd76x_edac #this might not be required for x86 32 bit users.
 blacklist vga16fb
 blacklist nouveau
 blacklist rivafb
 blacklist nvidiafb
 blacklist rivatv

Reinicialize a VM com sudo reboot

Eu baixei os drivers diretamente da Microsoft, mas você pode substituir com sua fonte preferida:

wget -O NVIDIA-Linux-x86_64-384.73-grid.run https://go.microsoft.com/fwlink/?linkid=849941  

chmod +x NVIDIA-Linux-x86_64-384.73-grid.run

sudo ./NVIDIA-Linux-x86_64-384.73-grid.run

Eu acabei de clicar nas opções padrão selecionadas no arquivo de execução.

Verifique a instalação do driver executando nvidia-smi

Instale o CUDA Toolkit 8

CUDA_REPO_PKG=cuda-repo-ubuntu1604_8.0.44-1_amd64.deb

wget -O /tmp/${CUDA_REPO_PKG} http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/${CUDA_REPO_PKG} 

sudo dpkg -i /tmp/${CUDA_REPO_PKG}

rm -f /tmp/${CUDA_REPO_PKG}

sudo apt-get update

sudo apt-get install cuda-drivers
    
por JoshVarty 24.02.2017 / 08:28