Instalar os drivers da GPU


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

Para instalar os drivers, você tem estas duas opções:

  • Se você precisar de GPUs para gráficos 3D com aceleração de hardware, como área de trabalho remota ou jogos, consulte Instalar drivers para estações de trabalho virtuais (vWS) NVIDIA RTX.

  • Para outras cargas de trabalho, siga as instruções neste documento para instalar o driver NVIDIA.

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

Para GPUs NVIDIA em execução no Compute Engine, são recomendadas as seguintes versões do driver.

Modelo de GPU Linux Windows
NVIDIA H100
  • R525: 525.125.06 ou mais recente
  • R535: 535.86.10 ou mais recente
N/A
NVIDIA L4 525.60.13 ou mais recente 528.89
NVIDIA A100, T4, P4, P100 e V100 470.57.02 ou mais recente 471.41 ou mais recente
NVIDIA K80 (Fim do suporte) 410.79: versão mais recente do R470 426.00: versão mais recente do R470

Para GPUs K80, a NVIDIA anunciou que a ramificação do driver R470 será a versão final do driver que receberá suporte a depuração. Para analisar essa atualização, consulte a Matriz de suporte de software da NVIDIA.

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. O pacote de instalação e o guia do kit de ferramentas recomendado estão na tabela a seguir. Antes de instalar o kit de ferramentas, conclua as etapas de pré-instalação encontradas no guia de instalação.

    Modelo de GPU Versão mínima recomendada do kit de ferramentas CUDA Instruções de instalação da versão mínima
    • NVIDIA H100
    • NVIDIA L4
    • NVIDIA A100
    • NVIDIA T4
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4

Instalar drivers de GPU usando script 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).

Limitações

  • Esse script não funcionará em VMs do Linux com a Inicialização segura ativada. Para VMs do Linux com a inicialização segura ativada, consulte Como instalar drivers de GPU (VMs com inicialização segura).
  • Se você tiver a versão 2.38.0 ou posterior do Agente de operações que coleta métricas da GPU na VM, interrompa o agente antes de instalar ou fazer upgrade dos drivers de GPU. usando este script de instalação.

    Depois de concluir a instalação ou o upgrade do driver da GPU, reinicie a VM.

    Para encerrar o agente de operações, execute o seguinte comando:

    sudo systemctl stop google-cloud-ops-agent

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, 8 e 9
  • Rocky Linux 8 e 9
  • Ubuntu 20 e 22

Se você usar esse script em outros sistemas operacionais, a instalação falhará. Para VMs do Linux, esse script instala apenas o driver da NVIDIA.

  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 Verificar a instalação do driver da GPU.

Windows

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

  • Para VMs do Windows que usam uma série de máquinas G2, esse script instala apenas o driver da NVIDIA.
  • Para outros tipos de máquina, o script instala o driver da NVIDIA e o kit de ferramentas CUDA.

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

  1. Se você estiver usando o Windows Server 2016, defina a versão do Transport Layer Security (TLS) como 1.2.

    [Net.ServicePointManager]::SecurityProtocol = 'Tls12'
    
  2. 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
  3. 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 no seguinte local padrão na VM: C:\Program Files\NVIDIA Corporation\.

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

Instalar drivers de GPU (VMs com inicialização segura)

Estas instruções são para instalar drivers de GPU em VMs do Linux que usam inicialização segura.

Se você está usando uma VM do Windows ou uma VM do Linux que não usa a inicialização segura, analise uma das seguintes instruções:

A instalação do driver em uma VM com inicialização segura é diferente para VMs do Linux, porque elas exigem que todos os módulos do kernel sejam assinados pela chave em que o sistema confia.

Estas instruções estão disponíveis apenas para VMs do Linux com inicialização segura executadas nos sistemas operacionais Ubuntu 18.04, 20.04 e 22.04. O suporte para mais sistemas operacionais está em andamento.

Para instalar drivers de GPU nas VMs do Ubuntu que usam a inicialização segura, siga estas etapas:

  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. Se você quiser encontrar uma versão anterior, mude o número do parâmetro cauda para receber uma versão anterior. Por exemplo, especifique tail -n 2.

    Ubuntu PRO e LTS

    Para Ubuntu PRO e LTS, 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}')
    

    Ubuntu PRO FIPS

    Para o Ubuntu PRO FIPS, execute os seguintes comandos:

    1. Ativar as atualizações do Ubuntu FIPS.

      sudo ua enable fips-updates
      
    2. Encerrar e reiniciar

      sudo shutdown -r now
      
    3. Faça o download do pacote mais recente.

      NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp-fips$' | awk '{print $1}' | sort | tail -n 1 | 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 com package not found error, talvez o driver NVIDIA mais recente esteja ausente no repositório. Repita a etapa anterior e selecione uma versão anterior do driver mudando o número da cauda.

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

  6. Se você reiniciou o sistema para verificar a versão da NVIDIA. Após a reinicialização, você precisa redefinir a variável NVIDIA_DRIVER_VERSION executando novamente o comando usado na etapa 3.

  7. 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. Define a versão do Ubuntu.

      Ubuntu 18.04

      Para o Ubuntu 18.04, execute o seguinte comando:

      export UBUNTU_VERSION=ubuntu1804/x86_64

      Ubuntu 20.04

      Para o Ubuntu 20.04, execute o seguinte comando:

      export UBUNTU_VERSION=ubuntu2004/x86_64

      Ubuntu 22.04

      Para o Ubuntu 22.04, execute o seguinte comando:

      export UBUNTU_VERSION=ubuntu2204/x86_64
    4. Faça o download do pacote cuda-keyring:

      wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
    5. Instale o pacote cuda-keyring.

      sudo dpkg -i cuda-keyring_1.0-1_all.deb
    6. Adicione o repositório da NVIDIA.

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"

      Se solicitado, selecione a ação padrão para manter a versão atual.

  8. 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.

  9. 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}
    

  10. 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
    
  11. 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.

  12. Instale o pacote CUDA.

      sudo apt install cuda-${CUDA_VERSION}
    
  13. 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.

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

O resultado será assim:

Tue Mar 21 19:50:15 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 530.30.02    Driver Version: 530.30.02    CUDA Version: 12.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  NVIDIA L4           Off  | 00000000:00:03.0 Off |                    0 |
| N/A   63C    P0    30W /  75W |      0MiB / 23034MiB |      8%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| 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. Em seguida, execute o comando a seguir para verificar se o driver está sendo executado corretamente.

nvidia-smi

O resultado será assim:

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 537.13                 Driver Version: 537.13       CUDA Version: 12.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  NVIDIA L4                    WDDM  | 00000000:00:03.0 Off |                    0 |
| N/A   66C    P8              17W /  72W |    128MiB / 23034MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      4888    C+G   ...CBS_cw5n1h2txyewy\TextInputHost.exe    N/A      |
|    0   N/A  N/A      5180    C+G   ....Search_cw5n1h2txyewy\SearchApp.exe    N/A      |
+---------------------------------------------------------------------------------------+

A seguir