Installa i driver della GPU


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

Per installare i driver, hai due opzioni tra cui scegliere:

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

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

Versioni del driver NVIDIA, del toolkit CUDA e del runtime CUDA

Nel tuo ambiente potrebbero essere necessari diversi componenti con versione di driver e runtime. Sono inclusi i seguenti componenti:

  • Driver NVIDIA
  • CUDA Toolkit
  • Runtime CUDA

Quando installi questi componenti, hai la possibilità di configurare il tuo ambiente in base alle tue esigenze. Ad esempio, se hai 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 di NVIDIA sulla compatibilità CUDA.

Versioni dei driver NVIDIA richieste

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

Serie di macchine Modello di GPU NVIDIA Driver consigliato per Linux Driver consigliato per Windows
A3 H100 550.90.07 N/D
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

Installare i driver GPU sulle VM utilizzando le guide NVIDIA

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 dove vuoi installare il driver.

  3. Nella VM, scarica e installa il toolkit CUDA. Il pacchetto di installazione e la guida per il toolkit minimo consigliato sono disponibili nella tabella seguente. Prima di installare il toolkit, assicurati di completare i passaggi di preinstallazione indicati nella guida all'installazione.

    Serie di macchine Modello di GPU NVIDIA Toolkit CUDA consigliato per Linux CUDA Toolkit consigliato per Windows
    A3 H100 N/D
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

Installa i driver GPU sulle VM utilizzando lo script di installazione

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

Linux

Segui 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 toolkit CUDA. Per installare i driver della GPU e CUDA Toolkit:

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

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

    Per interrompere Ops Agent, esegui il seguente 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 del tempo. La VM verrà 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 utilizzare questo strumento anche per installare il toolkit CUDA. Per installare CUDA Toolkit, esegui il seguente comando:

    sudo python3 cuda_installer.pyz install_cuda

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

  7. Verifica l'installazione del toolkit CUDA.

    sudo python3 cuda_installer.pyz verify_cuda

Linux (script di avvio)

Segui 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 toolkit CUDA.

Utilizza il seguente script di avvio per automatizzare l'installazione del driver e di 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 nelle VM in cui è abilitato l'avvio protetto.

  • Per le VM Windows che utilizzano una serie di macchine G2, questo script installa solo il driver NVIDIA.
  • Per gli altri tipi di macchine, 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 Transport Layer Security (TLS) 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 del tempo. Durante la procedura di installazione non vengono visualizzati prompt di comando. Al termine dello script, il driver viene installato.

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

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

Installa i driver GPU (VM con avvio protetto)

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

Se utilizzi una VM Windows o Linux che non utilizza l'avvio protetto, consulta una delle seguenti istruzioni:

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

Queste istruzioni sono disponibili solo per le VM Linux con avvio protetto che funzionano su sistemi operativi Ubuntu 18.04, 20.04 e 22.04. È in corso lo sviluppo del supporto per 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 dove vuoi installare il driver.

  2. Aggiorna il repository.

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

    Ubuntu PRO e LTS

    Per Ubuntu PRO e LTS, esegui il seguente 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

    Per Ubuntu PRO FIPS, esegui i seguenti comandi:

    1. Attiva gli aggiornamenti FIPS di Ubuntu.

      sudo ua enable fips-updates
      
    2. Arresta e riavvia

      sudo shutdown -r now
      
    3. Scaricare 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 selezionata eseguendo echo $NVIDIA_DRIVER_VERSION. L'output è una stringa di versione come 455.

  4. Installa il pacchetto del modulo del 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 precedente del driver 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 di NVIDIA. Dopo il riavvio, devi reimpostare la variabile NVIDIA_DRIVER_VERSION eseguendo di nuovo il comando utilizzato nel passaggio 3.

  7. Configura APT in modo che utilizzi il repository dei 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. Questo è necessario se utilizzi immagini Ubuntu minimal.

       sudo apt install software-properties-common
       

    3. Imposta la versione di Ubuntu.

      Ubuntu 18.04

      Per Ubuntu 18.04, esegui il seguente comando:

      export UBUNTU_VERSION=ubuntu1804/x86_64

      Ubuntu 20.04

      Per Ubuntu 20.04, esegui il seguente comando:

      export UBUNTU_VERSION=ubuntu2004/x86_64

      Ubuntu 22.04

      Per Ubuntu 22.04, esegui il seguente 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 più recente del driver CUDA compatibile con il driver NVIDIA che abbiamo 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 come 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) Mantieni in sospeso i pacchetti dkms.

    Dopo aver attivato il Boot sicuro, tutti i moduli del kernel devono essere firmati per essere caricati. I moduli del kernel compilati da dkms non funzionano sulla VM perché per impostazione predefinita non sono firmati correttamente. Questo è un passaggio facoltativo, ma può aiutarti a evitare di installare accidentalmente altri pacchetti dkms in futuro.

    Per bloccare i pacchetti dkms, esegui il seguente comando:

      sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  11. Installa 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 che abbiamo 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 come 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 installato.

Verifica l'installazione del driver GPU

Dopo aver completato i passaggi di installazione del driver, verifica che sia stato 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 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 questo comando non va a buon fine, controlla quanto segue:

  • Verifica se le GPU sono collegate alla VM. Per verificare la presenza di dispositivi PCI NVIDIA, esegui il seguente comando:

    sudo lspci | grep -i "nvidia"
  • Verifica che la versione del kernel del driver e la versione del kernel della VM siano uguali.

    • Per controllare la versione del kernel della VM, esegui il seguente comando:

      uname -r
    • Per controllare la versione del kernel del driver, esegui il seguente comando:

      sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp

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

Windows Server

Connettiti all'istanza Windows Server e apri un terminale PowerShell, quindi esegui il seguente comando per verificare che il driver funzioni correttamente.

nvidia-smi

L'output è simile al seguente:

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

Passaggi successivi