Installa i driver per GPU

Dopo aver creato un'istanza di una macchina virtuale (VM) con una o più GPU, il tuo sistema richiede i driver di dispositivo NVIDIA per consentire alle applicazioni di accedere al dispositivo. Assicurati che lo spazio su disco libero delle istanze delle macchine virtuali (VM) sia sufficiente. Quando crei la nuova VM, devi scegliere almeno 40 GB per il disco di avvio.

Per installare i driver, puoi scegliere tra due opzioni:

  • Se hai bisogno di GPU per grafica 3D con accelerazione hardware, ad esempio desktop remoto o giochi, consulta la pagina Installare i driver per le workstation virtuali NVIDIA RTX (vWS).

  • Per altri carichi di lavoro, segui le istruzioni in questo documento per installare il driver NVIDIA.

Versioni driver NVIDIA, toolkit CUDA e runtime CUDA

Potrebbero essere necessari diversi componenti di driver e runtime nel tuo ambiente. Sono inclusi i seguenti componenti:

  • Driver NVIDIA
  • Toolkit CUDA
  • Runtime CUDA

Quando installi questi componenti, puoi configurare l'ambiente in base alle tue esigenze. Ad esempio, se disponi di una versione precedente di Tensorflow che funziona meglio con una versione precedente del toolkit CUDA, ma la GPU che vuoi utilizzare richiede una versione successiva del driver NVIDIA, puoi installare una versione precedente di un toolkit CUDA insieme a una versione successiva del driver NVIDIA.

Tuttavia, devi assicurarti che le versioni del driver NVIDIA e del toolkit CUDA siano compatibili. Per la compatibilità del toolkit CUDA e del driver NVIDIA, consulta la documentazione NVIDIA sulla compatibilità con CUDA.

Versioni del driver NVIDIA richieste

Per le GPU NVIDIA in esecuzione su Compute Engine, sono consigliate le seguenti versioni del driver NVIDIA.

Modello GPU Linux Windows
NVIDIA H100 535.86.10 o versioni successive N/A
NVIDIA L4 535.86.10 o versioni successive 536,67
NVIDIA A100, T4, P4, P100 e V100 535.54.03 o versioni successive 536.25 o versioni successive

Installa i driver per GPU sulle VM

Un modo per installare il driver NVIDIA sulla maggior parte delle VM è installare il toolkit NVIDIA CUDA.

Per installare il toolkit NVIDIA, completa i seguenti passaggi:

  1. Seleziona un toolkit CUDA che supporti il driver minimo di cui hai bisogno.

  2. Connettiti alla VM in cui vuoi installare il driver.

  3. Sulla VM, scarica e installa il toolkit CUDA. Il pacchetto di installazione e la guida per un toolkit consigliato si trovano nella tabella seguente. Prima di installare il toolkit, assicurati di completare la procedura di preinstallazione descritta nella Guida all'installazione.

    Modello GPU Versione minima consigliata del toolkit CUDA Istruzioni di installazione per la versione minima
    • NVIDIA H100
    • NVIDIA L4
    • NVIDIA A100
    • NVIDIA T4
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4

Installa i driver GPU utilizzando lo script di installazione

Per automatizzare la procedura di installazione, puoi utilizzare i seguenti script. Per esaminare questi script, consulta il repository GitHub.

Linux

Utilizza queste istruzioni per installare i driver GPU su una VM in esecuzione.

Sistemi operativi supportati

Lo script di installazione di Linux è stato testato sui seguenti sistemi operativi:

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

Se utilizzi questo script su altri sistemi operativi, l'installazione potrebbe non riuscire. Questo script può installare il driver NVIDIA e il CUDA Toolkit. Per installare i driver GPU e CUDA Toolkit, completa i seguenti passaggi:

  1. Se utilizzi la versione 2.38.0 o successiva di Ops Agent che raccoglie le metriche GPU sulla VM, devi arrestare l'agente prima di poter installare o eseguire l'upgrade dei driver GPU utilizzando questo script di installazione.

    Dopo aver completato l'installazione o l'upgrade del driver GPU, devi riavviare la VM.

    Per arrestare Ops Agent, esegui questo comando:

    sudo systemctl stop google-cloud-ops-agent
  2. Assicurati che Python 3 sia installato sul tuo sistema operativo.

  3. Scarica lo script di installazione.

    curl -L https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz --output cuda_installer.pyz
  4. Esegui lo script di installazione.

    sudo python3 cuda_installer.pyz install_driver

    L'esecuzione dello script richiede un po' di tempo. La VM viene riavviata. Se la VM si riavvia, esegui di nuovo lo script per continuare l'installazione.

  5. Verifica l'installazione. Consulta Verificare l'installazione del driver GPU.

  6. Puoi anche utilizzare questo strumento per installare il toolkit CUDA:

    sudo python3 cuda_installer.pyz install_cuda

    L'esecuzione di questo script potrebbe richiedere almeno 30 minuti. La VM viene riavviata. Se la VM viene riavviata, esegui di nuovo lo script per continuare l'installazione.

  7. Verificare l'installazione del toolkit CUDA.

    sudo python3 cuda_installer.pyz verify_cuda

Linux (script di avvio)

Utilizza queste istruzioni per installare i driver GPU durante l'avvio di una VM.

Sistemi operativi supportati

Lo script di installazione di Linux è stato testato sui seguenti sistemi operativi:

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

Se utilizzi questo script su altri sistemi operativi, l'installazione potrebbe non riuscire. Questo script può installare il driver NVIDIA e il CUDA Toolkit.

Utilizza il seguente script di avvio per automatizzare il driver e l'installazione del CUDA Toolkit:

#!/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

Questo script di installazione può essere utilizzato sulle VM per cui è abilitato l'avvio protetto.

  • Per le VM Windows che utilizzano una serie di macchine G2, questo script installa solo il driver NVIDIA.
  • Per altri tipi di macchina, lo script installa il driver NVIDIA e il toolkit CUDA.

Apri un terminale PowerShell come amministratore, quindi completa i seguenti passaggi:

  1. Se utilizzi Windows Server 2016, imposta la versione TLS (Transport Layer Security) su 1.2.

    [Net.ServicePointManager]::SecurityProtocol = 'Tls12'
    
  2. Scarica lo script.

    Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
  3. Esegui lo script.

    C:\install_gpu_driver.ps1

    L'esecuzione dello script richiede un po' di tempo. Durante il processo di installazione non vengono forniti prompt di comandi. Una volta chiuso lo script, il driver viene installato.

    Questo script installa i driver nella seguente posizione predefinita sulla tua VM: C:\Program Files\NVIDIA Corporation\.

  4. Verifica l'installazione. Consulta Verificare l'installazione del driver GPU.

Installare i driver GPU (VM con avvio protetto)

Queste istruzioni riguardano l'installazione dei driver GPU sulle VM Linux che utilizzano Avvio protetto.

Se utilizzi una VM Windows o una VM Linux che non utilizza Avvio protetto, leggi una delle seguenti istruzioni:

L'installazione del driver su una VM con avvio protetto è diversa per le VM Linux, perché queste VM richiedono che tutti i moduli kernel siano firmati dalla chiave considerata attendibile dal sistema.

Queste istruzioni sono disponibili solo per le VM Linux con Avvio protetto eseguite sui sistemi operativi Ubuntu 18.04, 20.04 e 22.04. È in corso il supporto di altri sistemi operativi Linux.

Per installare i driver GPU sulle VM Ubuntu che utilizzano l'avvio protetto, completa i seguenti passaggi:

  1. Connettiti alla VM in cui vuoi installare il driver.

  2. Aggiornare il repository.

      sudo apt-get update
    
  3. Cerca il pacchetto del modulo NVIDIA kernel più recente o la versione desiderata. Questo pacchetto contiene i moduli kernel NVIDIA firmati dalla chiave Ubuntu. Se vuoi trovare una versione precedente, modifica il numero del parametro tail per ottenere una versione precedente. Ad esempio, specifica tail -n 2.

    Ubuntu PRO e LTS

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

    FIPS Ubuntu PRO

    Per Ubuntu PRO FIPS, esegui questi comandi:

    1. Abilita gli aggiornamenti FIPS di Ubuntu.

      sudo ua enable fips-updates
      
    2. Arresta e riavvia

      sudo shutdown -r now
      
    3. Scarica il pacchetto più 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}')
      

    Puoi controllare la versione del driver scelta eseguendo echo $NVIDIA_DRIVER_VERSION. L'output è una stringa di versione simile a 455.

  4. Installa il pacchetto del modulo kernel e il driver NVIDIA corrispondente.

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

    Se il comando non è riuscito con package not found error, il driver NVIDIA più recente potrebbe non essere presente nel repository. Riprova il passaggio precedente e seleziona una versione del driver precedente modificando il numero di coda.

  5. Verifica che il driver NVIDIA sia installato. Potresti dover riavviare la VM.

  6. Se hai riavviato il sistema per verificare la versione NVIDIA. Dopo il riavvio, devi reimpostare la variabile NVIDIA_DRIVER_VERSION eseguendo di nuovo il comando utilizzato nel passaggio 3.

  7. Configura APT per utilizzare il repository di pacchetti NVIDIA.

    1. Per aiutare APT a scegliere la dipendenza corretta, blocca i repository come segue:

      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. Installa software-properties-common. Questa operazione è necessaria se utilizzi immagini minime di Ubuntu.

       sudo apt install software-properties-common
       

    3. Imposta la versione di Ubuntu.

      Ubuntu 18.04

      Per Ubuntu 18.04, esegui questo comando:

      export UBUNTU_VERSION=ubuntu1804/x86_64

      Ubuntu 20.04

      Per Ubuntu 20.04, esegui questo comando:

      export UBUNTU_VERSION=ubuntu2004/x86_64

      Ubuntu 22.04

      Per Ubuntu 22.04, esegui questo comando:

      export UBUNTU_VERSION=ubuntu2204/x86_64
    4. Scarica il pacchetto cuda-keyring.

      wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
    5. Installa il pacchetto cuda-keyring.

      sudo dpkg -i cuda-keyring_1.0-1_all.deb
    6. Aggiungi il repository NVIDIA.

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

      Se richiesto, seleziona l'azione predefinita per mantenere la versione corrente.

  8. Trova la versione del driver CUDA compatibile.

    Lo script seguente determina la versione del driver CUDA più recente compatibile con il driver NVIDIA appena installato:

      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)
    

    Puoi controllare la versione del driver CUDA eseguendo echo $CUDA_DRIVER_VERSION. L'output è una stringa di versione simile a 455.32.00-1.

  9. Installa i driver CUDA con la versione identificata nel passaggio precedente.

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

  10. (Facoltativo) Trattieni dkms pacchetti.

    Dopo aver abilitato l'Avvio protetto, tutti i moduli kernel devono essere firmati per poter essere caricati. I moduli del kernel creati da dkms non funzionano sulla VM perché non sono firmati correttamente per impostazione predefinita. Questo passaggio è facoltativo, ma può aiutarti a impedire l'installazione accidentale di altri pacchetti dkms in futuro.

    Per contenere dkms pacchetto, esegui questo comando:

      sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  11. Installare il toolkit e il runtime CUDA.

    Scegli la versione CUDA adatta. Lo script seguente determina la versione CUDA più recente compatibile con il driver CUDA appena installato:

      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)
    

    Puoi controllare la versione CUDA eseguendo echo $CUDA_VERSION. L'output è una stringa di versione simile a 11-1.

  12. Installa il pacchetto CUDA.

      sudo apt install cuda-${CUDA_VERSION}
    
  13. Verifica l'installazione di CUDA.

      sudo nvidia-smi
      /usr/local/cuda/bin/nvcc --version
    

    Il primo comando stampa le informazioni sulla GPU. Il secondo comando stampa la versione del compilatore CUDA installata.

Verifica l'installazione del driver GPU

Dopo aver completato la procedura di installazione dei driver, verifica che il driver sia installato e inizializzato correttamente.

Linux

Connettiti all'istanza Linux e utilizza il comando nvidia-smi per verificare che il driver funzioni correttamente.

sudo nvidia-smi

L'output è simile al seguente:

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 questo comando non funziona, verifica quanto segue:

  • Controlla se ci sono GPU collegate alla VM.

    Utilizza il seguente comando per verificare la presenza di eventuali dispositivi NVIDIA PCI:

    sudo lspci | grep -i "nvidia".

  • Verifica che la versione del kernel del driver e la versione del kernel della VM siano le stesse.

    • Per controllare la versione del kernel della VM, esegui uname -r.
    • Per controllare la versione del kernel del driver, esegui sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp.

    Se le versioni non corrispondono, riavvia la VM alla nuova versione del kernel.

Windows Server

Connettiti all'istanza di Windows Server e apri un terminale PowerShell, quindi esegui questo comando per verificare che il driver stia funzionando correttamente.

nvidia-smi

L'output è simile al seguente:

+---------------------------------------------------------------------------------------+
| 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      |
+---------------------------------------------------------------------------------------+

Che cosa succede dopo?