Como instalar drivers de GPU


Depois que você criar uma instância com uma ou mais GPUs, o sistema necessita de drivers de dispositivo NVIDIA para que os aplicativos possam acessar o dispositivo. Certifique-se de que as instâncias de máquina virtual (VMs) tenham espaço livre suficiente em disco. Escolha pelo menos 30 GB para o disco de inicialização ao criar a VM.

Neste documento, explicamos como instalar drivers proprietários da NVIDIA em VMs criadas com imagens públicas ou imagens personalizadas.

Para instalar drivers GRID para estações de trabalho virtuais, consulte Como instalar de drivers GRID para estações de trabalho virtuais.

Antes de começar

Driver NVIDIA, kit de ferramentas CUDA e versões do ambiente de execução CUDA

Há diferentes componentes da versão dos drivers e do ambiente de execução que podem ser necessários no seu ambiente. Eles incluem os seguintes componentes:

  • Driver NVIDIA
  • Kit de ferramentas CUDA
  • Ambiente de execução CUDA

Ao instalar esses componentes, é possível configurar o ambiente de maneira que atenda às suas necessidades. Por exemplo, se você tiver uma versão anterior do Tensorflow que funcione melhor com uma versão anterior do kit de ferramentas CUDA, mas a GPU que você quer usar exigir uma versão posterior do driver NVIDIA, é possível instalar uma versão anterior de um kit de ferramentas CUDA e uma versão posterior do driver da NVIDIA.

No entanto, é preciso garantir que o driver NVIDIA e as versões do kit de ferramentas CUDA sejam compatíveis. Para o kit de ferramentas CUDA e a compatibilidade do driver NVIDIA, consulte a documentação da NVIDIA sobre a compatibilidade com CUDA.

Versões necessárias do driver da NVIDIA

Nas GPUs NVIDIA em execução no Compute Engine, as seguintes versões do driver precisam ser usadas:

  • Para GPUs A100:
    • Linux: 450.80.02 ou posterior
    • Windows: 452.77 ou mais recente
  • Para todos os outros tipos de GPU:
    • Linux: driver NVIDIA 410.79 ou posterior
    • Windows: driver 426.00 ou posterior

Como instalar drivers de GPU em VMs

Uma maneira de instalar o driver NVIDIA na maioria das VMs é instalar o Kit de ferramentas CUDA do NVIDIA.

Para instalar o kit de ferramentas da NVIDIA, conclua as seguintes etapas:

  1. Selecione um kit de ferramentas CUDA compatível com o driver mínimo necessário.

  2. Conecte-se à VM em que você quer instalar o driver.

  3. Na VM, faça o download e instale o kit de ferramentas CUDA. Na tabela a seguir, você encontra o Guia de instalação de cada kit de ferramentas recomendado. Antes de instalar o kit de ferramentas, conclua as etapas de pré-instalação encontradas no Guia de instalação.

    Tipo de GPU Versão mínima recomendada do kit de ferramentas CUDA Instruções para instalação
    • NVIDIA A100
    • NVIDIA T4
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4
    • NVIDIA K80

Scripts de instalação

Use os scripts a seguir para automatizar o processo de instalação. Para analisar esses scripts, consulte o repositório do GitHub (em inglês).

Linux

Sistemas operacionais compatíveis

O script de instalação do Linux foi testado nos seguintes sistemas operacionais:

  • CentOS 7 e 8
  • Debian 10 e 11
  • Red Hat Enterprise Linux (RHEL) 7 e 8
  • SUSE Linux Enterprise Server (SUSE) 15.
  • Ubuntu 18 e 20

A instalação de drivers de GPU em outros sistemas que usam esse script pode falhar.

  1. Verifique se o Python 3 está instalado no seu sistema operacional.

  2. Faça o download do script de instalação.

    curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py
  3. Execute o script de instalação.

    sudo python3 install_gpu_driver.py

    O script leva algum tempo para ser executado. Isso pode reiniciar sua VM. Se a VM for reiniciada, execute o script novamente para continuar a instalação.

  4. Verifique a instalação. Consulte Como verificar a instalação do driver da GPU.

Windows

Esse script de instalação pode ser usado em VMs com inicialização segura ativada.

Abra um terminal do PowerShell como administrador e conclua as seguintes etapas:

  1. Faça o download do script.

    Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
  2. Execute o script.

    C:\install_gpu_driver.ps1

    O script leva algum tempo para ser executado. Nenhum prompt de comando é fornecido durante o processo de instalação. Depois que o script é encerrado, o driver é instalado.

    Esse script instala os drivers neste local padrão da VM: "C:\Arquivos de Programas\NVIDIA Corporation".

  3. Verifique a instalação. Consulte Como verificar a instalação do driver da GPU.

Como instalar drivers de GPU em VMs que usam a inicialização segura

As VMs com Inicialização segura ativada exigem que todos os módulos do kernel sejam assinados pela chave confiável pelo sistema.

Suporte a SO

  • Para instalação de drivers NVIDIA no Windows que usa a Inicialização segura, consulte a seção geral Como instalar drivers de GPU em VMs.
  • Para sistemas operacionais Linux, o suporte está disponível apenas para os sistemas Ubuntu 18.04 e 20.04. O suporte para mais sistemas operacionais está em andamento.

Ubuntu 18.04 e 20.04

  1. Conecte-se à VM em que você quer instalar o driver.

  2. Atualize o repositório.

    sudo apt-get update
    
  3. Procure o pacote de módulo do kernel da NVIDIA mais recente ou a versão escolhida. Esse pacote contém módulos de kernel da NVIDIA assinados pela chave do Ubuntu. Para ver os pacotes mais recentes, execute o seguinte comando:

    NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
    

    Por exemplo, especifique o número como 2 para ver a próxima versão anterior:

    NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 2 | head -n 1 | awk -F"-" '{print $4}')
    

    Para verificar a versão do driver escolhido, execute echo $NVIDIA_DRIVER_VERSION. A saída é uma string de versão como 455.

  4. Instale o pacote do módulo do kernel e o driver da NVIDIA correspondente:

    sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
    

    Se o comando falhar e retornar o erro "pacote não encontrado", o driver nvidia mais recente pode estar ausente do repositório. Retorne à última etapa para encontrar uma versão anterior do driver.

  5. Verifique se o driver NVIDIA está instalado. Talvez seja necessário reinicializar a VM.

  6. Configure o APT para usar o repositório do pacote da NVIDIA.

    1. Para ajudar o APT a escolher a dependência correta, fixe os repositórios da seguinte maneira:

      sudo tee /etc/apt/preferences.d/cuda-repository-pin-600 > /dev/null <<EOL
      Package: nsight-compute
      Pin: origin *ubuntu.com*
      Pin-Priority: -1
      Package: nsight-systems Pin: origin *ubuntu.com* Pin-Priority: -1
      Package: nvidia-modprobe Pin: release l=NVIDIA CUDA Pin-Priority: 600
      Package: nvidia-settings Pin: release l=NVIDIA CUDA Pin-Priority: 600
      Package: * Pin: release l=NVIDIA CUDA Pin-Priority: 100 EOL

    2. Instale software-properties-common. Isso é necessário se você estiver usando imagens mínimas do Ubuntu.

      sudo apt install software-properties-common
      

    3. Adicione o repositório da NVIDIA:

      • Ubuntu 18.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
        
      • Ubuntu 20.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
        
  7. Encontre a versão do driver CUDA compatível.

    O script a seguir determina a versão mais recente do driver CUDA compatível com o driver da NVIDIA que acabamos de instalar:

    CUDA_DRIVER_VERSION=$(apt-cache madison cuda-drivers | awk '{print $3}' | sort -r | while read line; do
       if dpkg --compare-versions $(dpkg-query -f='${Version}\n' -W nvidia-driver-${NVIDIA_DRIVER_VERSION}) ge $line ; then
           echo "$line"
           break
       fi
    done)
    

    Para verificar a versão do driver CUDA, execute echo $CUDA_DRIVER_VERSION. A saída é uma string de versão como 455.32.00-1.

  8. Instale os drivers CUDA com a versão identificada na etapa anterior.

    sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
    

  9. Opcional: mantenha pressionado pacotes dkms.

    Depois que a Inicialização segura for ativada, todos os módulos do kernel precisam ser assinados para que sejam carregados. Os módulos de kernel criados por dkms não funcionam na VM porque, por padrão, não são assinados corretamente. Essa etapa é opcional, mas pode ajudar a impedir a instalação acidental de outros pacotes dkms futuramente.

    Para manter os pacotes dkms, execute o seguinte comando:

    sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  10. Instale o kit de ferramentas e o ambiente de execução do CUDA.

    Escolha a versão apropriada do CUDA. O script a seguir determina a versão do CUDA mais recente, compatível com o driver CUDA que acabamos de instalar:

    CUDA_VERSION=$(apt-cache showpkg cuda-drivers | grep -o 'cuda-runtime-[0-9][0-9]-[0-9],cuda-drivers [0-9\.]*' | while read line; do
       if dpkg --compare-versions ${CUDA_DRIVER_VERSION} ge $(echo $line | grep -Eo '[[:digit:]]+\.[[:digit:]]+') ; then
           echo $(echo $line | grep -Eo '[[:digit:]]+-[[:digit:]]')
           break
       fi
    done)
    

    Para verificar a versão do CUDA, execute echo $CUDA_VERSION. A saída é uma string de versão como 11-1.

    Instale o pacote CUDA:

    sudo apt install cuda-${CUDA_VERSION}
    

  11. Verifique a instalação do CUDA:

    sudo nvidia-smi
    /usr/local/cuda/bin/nvcc --version
    
    O primeiro comando imprime as informações da GPU. O segundo comando imprime a versão do compilador CUDA instalado.

Como verificar a instalação do driver da GPU

Depois de concluir as etapas de instalação do driver, verifique se o driver foi instalado e inicializado corretamente.

Linux

Conecte-se à instância do Linux e use o comando nvidia-smi para verificar se o driver está funcionando corretamente.

sudo nvidia-smi

A resposta será semelhante a:

Mon Oct 11 12:51:37 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   41C    P0    50W / 400W |      0MiB / 40536MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Se esse comando falhar, revise o seguinte:

  • Verifique se há alguma GPU anexada à VM.

    Use o seguinte comando para verificar qualquer dispositivo NVIDIA PCI:

    sudo lspci | grep -i "nvidia"

  • Verifique se a versão do kernel do driver e a do kernel da VM são as mesmas.

    • Para verificar a versão do kernel da VM, execute uname -r.
    • Para verificar a versão do kernel do driver, execute sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp.

    Se as versões não corresponderem, reinicialize a VM para a nova versão do kernel.

Windows Server

Conecte-se à instância do Windows Server e abra um terminal do PowerShell como administrador. Em seguida execute o comando abaixo para verificar se o driver está sendo executado corretamente.

&"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"

A resposta será semelhante a:

Mon Oct 11 12:13:10 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 462.31       Driver Version: 462.31       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4           WDDM  | 00000000:00:04.0 Off |                    0 |
| N/A   50C    P8    18W /  70W |    570MiB / 15360MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       408    C+G   Insufficient Permissions        N/A      |
|    0   N/A  N/A      3120    C+G   ...w5n1h2txyewy\SearchUI.exe    N/A      |
|    0   N/A  N/A      4056    C+G   Insufficient Permissions        N/A      |
|    0   N/A  N/A      4176    C+G   ...y\ShellExperienceHost.exe    N/A      |
|    0   N/A  N/A      5276    C+G   C:\Windows\explorer.exe         N/A      |
|    0   N/A  N/A      5540    C+G   ...in7x64\steamwebhelper.exe    N/A      |
|    0   N/A  N/A      6296    C+G   ...y\GalaxyClient Helper.exe    N/A      |
+-----------------------------------------------------------------------------+

A seguir