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

Exemplos

As etapas a seguir mostram exemplos de como instalar o CUDA 11 e os drivers associados para GPUs NVIDIA® em alguns sistemas operacionais.

CentOS/RHEL

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

  2. Instale o pacote mais recente do kernel. Se necessário, esse comando também reinicializa o sistema.

    sudo yum clean all
    sudo yum install -y kernel | grep -q 'already installed' || sudo reboot
    
  3. Se o sistema tiver sido reinicializado na etapa anterior, reconecte-se à VM.

  4. Instale cabeçalhos de kernel e pacotes de desenvolvimento.

    sudo yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r)
    
  5. Instale o repositório epel-release. Esse repositório inclui os pacotes DKMS, que são necessários para instalar drivers da NVIDIA no CentOS.

    • CentOS 7/8 e RHEL 7

      sudo yum install epel-release
      
    • Somente RHEL 8

      sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
      
  6. Instale yum-utils.

    sudo yum install yum-utils
    
  7. Selecione um repositório de drivers para o kit de ferramentas da CUDA e adicione-o à VM.

    • CentOS/RHEL 8

      sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
      
    • CentOS/RHEL 7

      sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
      
  8. Limpe o cache do Yum:

    sudo yum clean all
    
  9. Instale o CUDA.

    • CentOS/RHEL 8

      sudo dnf -y module install nvidia-driver:latest-dkms
      sudo dnf -y install cuda
      
    • CentOS/RHEL 7

      sudo yum -y install nvidia-driver-latest-dkms cuda
      
  10. Instale o driver da NVIDIA. Este comando é usado para instalar o CUDA 11.

    sudo yum -y install cuda-drivers
    

SLES

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

  2. Instale o pacote mais recente do kernel. Se necessário, esse comando também reinicializa o sistema.

    sudo zypper refresh
    sudo zypper up -y kernel-default | grep -q 'already installed' || sudo reboot
    
  3. Se o sistema foi reinicializado na etapa anterior, reconecte-se à instância.

  4. Selecione um repositório de drivers para o kit de ferramentas da CUDA e adicione-o à VM.

    sudo rpm --import https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/7fa2af80.pub
    sudo zypper install https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/cuda-11.0.3-1.x86_64.rpm
    
  5. Atualize o Zypper.

    sudo zypper refresh
    
  6. Instale o CUDA, que inclui o driver NVIDIA.

    sudo zypper install cuda
    

Ubuntu

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

  2. Instale o pacote mais recente do kernel.

    sudo apt install linux-headers-$(uname -r)
  3. Selecione um repositório de drivers para o Kit de ferramentas do CUDA (em inglês) e instale-o na VM. Siga as etapas de acordo com sua versão do Ubuntu.

    Ubuntu 20.04

    1. Faça o download do repositório de drivers do Ubuntu 20.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
      
    2. Mover repositório.

      sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Buscar chaves.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
      
    4. Adicionar repositório.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
      
    5. Atualize as listas de pacotes.

      sudo apt update
      
    6. Instale o CUDA, que inclui o driver da NVIDIA.

      sudo apt -y install cuda
      

    Ubuntu 18.04

    1. Faça o download do repositório de drivers do Ubuntu 18.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
      
    2. Mover repositório.

      sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Buscar chaves.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
      
    4. Adicionar repositório.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
      
    5. Atualize as listas de pacotes.

      sudo apt update
      
    6. Instale o CUDA, que inclui o driver da NVIDIA.

      sudo apt -y install cuda
      

    Ubuntu 16.04

    1. Faça o download do repositório de drivers do Ubuntu 16.04.

      curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
      
    2. Mover repositório.

      sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
      
    3. Buscar chaves.

      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
      
    4. Adicionar repositório.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"
      
    5. Atualize as listas de pacotes.

      sudo apt update
      
    6. Instale o CUDA, que inclui o driver NVIDIA.

      sudo apt -y install cuda
      

Windows Server

  1. Conecte-se à instância em que você quer instalar o driver.

  2. Faça o download do arquivo de instalação .exe na instância que contém o branch R452: driver NVIDIA 452.77 ou versão mais recente. Para a maioria das instâncias do Windows Server, é possível usar uma das seguintes opções:

    Por exemplo, no Windows Server 2019, é possível abrir um terminal do PowerShell como administrador e usar o comando Invoke-WebRequest para fazer o download do instalador do driver necessário. Invoke-WebRequest está disponível no PowerShell 3.0 ou posterior.

    Invoke-WebRequest https://developer.download.nvidia.com/compute/cuda/11.2.0/network_installers/cuda_11.2.0_win10_network.exe -O cuda_11.2.0_win10_network.exe
  3. Execute o instalador .exe. Por exemplo, é possível abrir um terminal do PowerShell como administrador e executar o comando a seguir:

    PS C:\> .\\cuda_11.2.0_win10_network.exe
    

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:

Wed Oct 28 21:34:28 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00    Driver Version: 455.32.00    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| 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  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                    0 |
| N/A   40C    P0    52W / 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:

Thu Feb  4 21:21:39 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.89       Driver Version: 460.89       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 P4            TCC  | 00000000:00:04.0 Off |                    0 |
| N/A   31C    P8     7W /  75W |      8MiB /  7611MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

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

A seguir