Installa i driver GPU

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

Per installare i driver, puoi scegliere tra due opzioni:

  • Se hai bisogno di GPU per grafiche 3D con accelerazione hardware, come desktop o giochi remoti, consulta Installare i driver per NVIDIA RTX Virtual Workstations (vWS).

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

Driver NVIDIA, toolkit CUDA e versioni di runtime CUDA

Esistono diversi componenti sottoposti al controllo delle versioni dei driver e del runtime che potrebbero essere necessari nel tuo ambiente. Sono inclusi i seguenti componenti:

  • driver NVIDIA
  • Toolkit CUDA
  • Runtime CUDA

Quando installi questi componenti, puoi configurare il tuo 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 dei driver NVIDIA, consulta la documentazione di NVIDIA sulla compatibilità CUDA.

Versioni del driver NVIDIA richieste

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

Modello GPU Linux Windows
NVIDIA H100
  • R525: 525.125.06 o versioni successive
  • R535: 535.86.10 o versioni successive
N/D
NVIDIA L4 525.60.13 o versioni successive 528,89
NVIDIA A100, T4, P4, P100 e V100 470.57.02 o versioni successive 471.41 o versioni successive
NVIDIA K80 (fine del supporto) 410.79 - versione più recente R470 426.00 - versione più recente R470

Per le GPU K80, NVIDIA ha annunciato che il ramo del driver R470 sarà la versione finale del driver per ricevere supporto per il debug. Per esaminare l'aggiornamento, consulta la pagina NVIDIA Software Support Matrix.

Installa i driver GPU sulle VM

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

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 tua VM, scarica e installa il toolkit CUDA. Il pacchetto di installazione e la guida per un toolkit consigliato sono disponibili nella tabella seguente. Prima di installare il toolkit, assicurati di completare i passaggi di pre-installazione indicati 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

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

Limitazioni

  • Questo script non funziona sulle VM Linux in cui è abilitato Avvio protetto. Per le VM Linux in cui è abilitato l'avvio protetto, consulta Installazione dei driver GPU (avvio protetto).
  • Se utilizzi la versione 2.38.0 o successiva dell'Ops Agent che raccoglie 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

Linux

Sistemi operativi supportati

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

  • 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 utilizzi questo script su altri sistemi operativi, l'installazione non andrà a buon fine. Per le VM Linux, questo script installa solo il driver NVIDIA.

  1. Assicurati che Python 3 sia installato sul tuo sistema operativo.

  2. Scarica lo script di installazione.

    curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py
  3. Esegui lo script di installazione.

    sudo python3 install_gpu_driver.py

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

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

Windows

Questo script di installazione può essere utilizzato sulle 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 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. Non viene fornita nessuna richiesta di comando durante il processo di installazione. Una volta chiuso lo 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. Vedi Verificare l'installazione del driver GPU.

Installa i driver GPU (VM Avvio protetto)

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

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

L'installazione del driver su una VM di 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 che vengono eseguite su sistemi operativi Ubuntu 18.04, 20.04 e 22.04. È in corso il supporto per altri sistemi operativi Linux.

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

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

  2. Aggiorna il repository.

      sudo apt-get update
    
  3. Cerca il pacchetto del modulo kernel NVIDIA più recente o la versione che preferisci. Questo pacchetto contiene moduli kernel NVIDIA firmati dalla chiave Ubuntu. Se vuoi trovare una versione precedente, modifica il numero per il 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}')
    

    Ubuntu PRO FIPS

    Per Ubuntu PRO FIPS, esegui questi comandi:

    1. Abilita gli aggiornamenti FIPS di Ubuntu.

      sudo ua enable fips-updates
      
    2. Arresto e riavvio

      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 selezionata eseguendo echo $NVIDIA_DRIVER_VERSION. L'output è una stringa di versione come 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 riesce con package not found error, nel repository potrebbe mancare il driver NVIDIA più recente. Riprova a eseguire il passaggio precedente e seleziona una versione precedente del driver modificando il numero di coda.

  5. Verifica che il driver NVIDIA sia installato. Potrebbe essere necessario 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 nuovamente 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 l'ultima versione 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: trattieni per dkms pacchi.

    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 nella VM perché non sono firmati correttamente per impostazione predefinita. Si tratta di un passaggio facoltativo, ma può aiutarti a impedire l'installazione accidentale di altri pacchetti dkms in futuro.

    Per bloccare dkms pacchetti, esegui questo comando:

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

    Scegli la versione dello sconto per impegno di utilizzo (CUDA) più adatta. Lo script seguente determina l'ultima versione di CUDA 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 dello strumento 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 del driver, verifica che il driver sia installato e inizializzato correttamente.

Linux

Connettiti all'istanza Linux e usa 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 riesce, esamina quanto segue:

  • Controlla se è presente una GPU collegata alla VM.

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

    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 con la nuova versione del kernel.

Windows Server

Connettiti all'istanza di Windows Server e apri un terminale PowerShell, quindi esegui il comando seguente per verificare che il driver funzioni 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?