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.

Série de máquina Modelo de GPU NVIDIA Driver recomendado do Linux Driver recomendado do Windows
A3 H100 550.90.07 N/A
G2 L4 550.90.07 538.67
A2 A100 550.90.07 538.67
N1 T4, P4, P100 e V100 535.183.01 538.67

Instalar drivers de GPU em VMs usando os guias da NVIDIA

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 mínimo 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.

    Série de máquina Modelo de GPU NVIDIA Kit de ferramentas CUDA recomendado para Linux Kit de ferramentas CUDA recomendado para Windows
    A3 H100 N/A
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

Instalar drivers de GPU em VMs usando o 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).

Linux

Use estas instruções para instalar drivers de GPU em uma VM em execução.

Sistemas operacionais compatíveis

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

  • Debian 10, 11 e 12
  • Red Hat Enterprise Linux (RHEL) 8 e 9
  • Rocky Linux 8 e 9
  • Ubuntu 20, 22 e 24

Se você usar esse script em outros sistemas operacionais, a instalação falhará. Esse script pode instalar drivers da NVIDIA e também o Kit de ferramentas do CUDA. Para instalar os drivers de GPU e o kit de ferramentas CUDA, conclua as etapas a seguir:

  1. 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
  2. Verifique se o Python 3 está instalado no seu sistema operacional.

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

    curl -L https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz --output cuda_installer.pyz
  4. Execute o script de instalação.

    sudo python3 cuda_installer.pyz install_driver

    O script leva algum tempo para ser executado. A VM será reiniciada. Se a VM for reiniciada, execute o script novamente para continuar a instalação.

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

  6. Também é possível usar essa ferramenta para instalar o guia de ferramentas CUDA. Para instalar o kit de ferramentas CUDA, execute o seguinte comando:

    sudo python3 cuda_installer.pyz install_cuda

    Este script pode levar pelo menos 30 minutos para ser executado. A VM será reiniciada. Se a VM for reiniciada, execute o script novamente para continuar a instalação.

  7. Verificar a instalação do kit de ferramentas CUDA.

    sudo python3 cuda_installer.pyz verify_cuda

Linux (script de inicialização)

Use estas instruções para instalar drivers de GPU durante a inicialização de uma VM.

Sistemas operacionais compatíveis

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

  • Debian 10, 11 e 12
  • Red Hat Enterprise Linux (RHEL) 8 e 9
  • Rocky Linux 8 e 9
  • Ubuntu 20, 22 e 24

Se você usar esse script em outros sistemas operacionais, a instalação falhará. Esse script pode instalar drivers da NVIDIA e também o Kit de ferramentas do CUDA.

Use o seguinte script de inicialização. para automatizar o driver e a instalação do kit de ferramentas do CUDA:

#!/bin/bash
if test -f /opt/google/cuda-installer
then
  exit
fi

mkdir -p /opt/google/cuda-installer
cd /opt/google/cuda-installer/ || exit

curl -fSsL -O https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz
python3 cuda_installer.pyz install_cuda

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 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.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  Tesla T4                       On  |   00000000:00:04.0 Off |                    0 |
| N/A   50C    P8             16W /   70W |       1MiB /  15360MiB |      0%      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 as GPUs estão anexadas à VM. Para verificar se há dispositivos NVIDIA PCI, execute o seguinte comando:

    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 o seguinte comando:

      uname -r
    • Para verificar a versão do kernel do driver, execute o seguinte comando:

      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 538.67                 Driver Version: 538.67       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