Instalar los controladores de GPU.


Después de crear una instancia de máquina virtual (VM) con una o más GPU, tu sistema requiere controladores de dispositivos NVIDIA para que tus aplicaciones puedan acceder a este. Asegúrate de que tus instancias de máquina virtual (VM) tengan suficiente espacio libre en el disco. Debes elegir al menos 40 GB para el disco de arranque cuando creas la VM nueva.

Para instalar los controladores, tienes dos opciones:

  • Si necesitas GPU para gráficos 3D acelerados por hardware, como escritorios remotos o videojuegos, consulta Instala controladores para estaciones de trabajo virtuales de NVIDIA RTX.

  • Para otras cargas de trabajo, sigue las instrucciones de este documento a fin de instalar el controlador de NVIDIA.

Controlador NVIDIA, kit de herramientas CUDA y versiones de entorno de ejecución CUDA

Existen diferentes componentes con versiones de controladores y entornos de ejecución que podrían ser necesarios en el entorno. Estos incluyen los siguientes componentes:

  • Controlador de NVIDIA
  • Kit de herramientas CUDA
  • Tiempo de ejecución CUDA

Cuando instalas estos componentes, puedes configurar el entorno para adaptarlo a tus necesidades. Por ejemplo, si tienes una versión anterior de TensorFlow que funciona mejor con una versión anterior del kit de herramientas CUDA, pero la GPU que deseas usar requiere una versión posterior del controlador NVIDIA, entonces puedes instalar una versión anterior de un kit de herramientas CUDA y una versión posterior del controlador NVIDIA.

Sin embargo, debes asegurarte de que el controlador de NVIDIA y las versiones del kit de herramientas CUDA sean compatibles. Para obtener información sobre el kit de herramientas CUDA y la compatibilidad con el controlador NVIDIA, consulta la documentación de NVIDIA sobre la compatibilidad con CUDA.

Versiones necesarias del controlador NVIDIA

Para las GPU de NVIDIA que se ejecutan en Compute Engine, se recomiendan las siguientes versiones de controlador NVIDIA:

Series de máquinas Modelo de GPU de NVIDIA Controlador recomendado para Linux Controlador recomendado por 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 y V100 535.183.01 538.67

Instala controladores de GPU en VMs con las guías de NVIDIA

Una forma de instalar el controlador de NVIDIA en la mayoría de las VM es instalar el kit de herramientas de CUDA de NVIDIA.

Para instalar el kit de herramientas de NVIDIA, completa los siguientes pasos:

  1. Selecciona un kit de herramientas CUDA que admita el controlador mínimo que necesitas.

  2. Conéctate a la VM en la que deseas instalar el controlador.

  3. En tu VM, descarga e instala el kit de herramientas CUDA. El paquete de instalación y la guía del kit de herramientas mínimo recomendado se encuentran en la siguiente tabla. Antes de instalar el kit de herramientas, asegúrate de completar los pasos previos a la instalación que se encuentran en la guía de instalación.

    Series de máquinas Modelo de GPU de NVIDIA Kit de herramientas CUDA recomendado para Linux Kit de herramientas CUDA recomendado para Windows
    A3 H100 N/A
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

Instala controladores de GPU en VMs con una secuencia de comandos de instalación

Puedes usar las siguientes secuencias de comandos para automatizar el proceso de instalación. Para revisar estas secuencias de comandos, consulta el repositorio de GitHub.

.

Linux

Usa estas instrucciones para instalar controladores de GPU en una VM en ejecución.

Sistemas operativos compatibles

La secuencia de comandos de instalación de Linux se probó en los siguientes sistemas operativos:

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

Si usas esta secuencia de comandos en otros sistemas operativos, la instalación puede fallar. Esta secuencia de comandos puede instalar el controlador NVIDIA y el kit de herramientas de CUDA. Para instalar los controladores de GPU y el kit de herramientas de CUDA, completa los siguientes pasos:

  1. Si tienes la versión 2.38.0 o una posterior del Agente de operaciones que recopila métricas de GPU en tu VM, debes detener el agente antes de pode instalar o actualizar tus controladores de GPU con esta secuencia de comandos de instalación.

    Después de completar la instalación o actualización del controlador de GPU, debes reiniciar la VM.

    Para detener el agente de operaciones, ejecuta el siguiente comando:

    sudo systemctl stop google-cloud-ops-agent
  2. Asegúrate de que Python 3 esté instalado en tu sistema operativo.

  3. Descarga la secuencia de comandos de instalación.

    curl -L https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz --output cuda_installer.pyz
  4. Ejecuta la secuencia de comandos de instalación.

    sudo python3 cuda_installer.pyz install_driver

    La secuencia de comandos tarda un tiempo en ejecutarse. Se reiniciará la VM. Si la VM se reinicia, vuelve a ejecutar la secuencia de comandos para continuar con la instalación.

  5. Verifica la instalación:. Consulta Verifica la instalación del controlador de GPU.

  6. También puedes usar esta herramienta para instalar el kit de herramientas de CUDA. Para instalar el kit de herramientas de CUDA, ejecuta el siguiente comando:

    sudo python3 cuda_installer.pyz install_cuda

    Esta secuencia de comandos puede tardar al menos 30 minutos en ejecutarse. Se reiniciará la VM. Si la VM se reinicia, vuelve a ejecutar la secuencia de comandos para continuar con la instalación.

  7. Verifica la instalación del kit de herramientas CUDA.

    sudo python3 cuda_installer.pyz verify_cuda

Linux (secuencia de comandos de inicio)

Usa estas instrucciones para instalar controladores de GPU durante el inicio de una VM.

Sistemas operativos compatibles

La secuencia de comandos de instalación de Linux se probó en los siguientes sistemas operativos:

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

Si usas esta secuencia de comandos en otros sistemas operativos, la instalación puede fallar. Esta secuencia de comandos puede instalar el controlador NVIDIA y el kit de herramientas de CUDA.

Usa la siguiente secuencia de comandos de inicio para automatizar la instalación del controlador y del kit de herramientas de 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

Esta secuencia de comandos de instalación se puede usar en VM que tengan habilitado el inicio seguro.

  • En las VM de Windows que usan una serie de máquinas G2, esta secuencia de comandos instala solo el controlador NVIDIA.
  • Para otros tipos de máquinas, la secuencia de comandos instala el controlador NVIDIA y el kit de herramientas CUDA.

Abre una terminal de PowerShell como administrador y, luego, completa los siguientes pasos:

  1. Si usas Windows Server 2016, configura la versión de seguridad de la capa de transporte (TLS) como 1.2.

    [Net.ServicePointManager]::SecurityProtocol = 'Tls12'
    
  2. Descarga la secuencia de comandos.

    Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
  3. Ejecuta la secuencia de comandos.

    C:\install_gpu_driver.ps1

    La secuencia de comandos tarda un tiempo en ejecutarse. No se proporcionan símbolos del sistema durante el proceso de instalación. Una vez que la secuencia de comandos sale, el controlador se instala.

    Esta secuencia de comandos instala los controladores en la ubicación predeterminada de tu VM: C:\Program Files\NVIDIA Corporation\.

  4. Verifica la instalación:. Consulta Verifica la instalación del controlador de GPU.

Instala controladores de GPU (VMs de arranque seguro)

Estas instrucciones son para instalar controladores de GPU en VMs de Linux que usan el arranque seguro.

Si usas una VM de Windows o una VM de Linux que no usa el arranque seguro, revisa una de las siguientes instrucciones:

La instalación del controlador en una VM de arranque seguro es diferente para las VMs de Linux, ya que estas requieren que todos los módulos de kernel estén firmados por la clave de confianza del sistema.

Estas instrucciones solo están disponibles para las VMs de Linux de arranque seguro que se ejecutan en los sistemas operativos Ubuntu 18.04, 20.04 y 22.04. La compatibilidad para más sistemas operativos Linux está en desarrollo.

Para instalar controladores de GPU en tus VMs de Ubuntu que usan el arranque seguro, completa los siguientes pasos:

  1. Conéctate a la VM en la que deseas instalar el controlador.

  2. Actualiza el repositorio.

      sudo apt-get update
    
  3. Busca el paquete del módulo de kernel de NVIDIA más reciente o la versión que deseas. Este paquete contiene módulos de kernel de NVIDIA firmados por la clave de Ubuntu. Si deseas encontrar una versión anterior, cambia el número del parámetro de cola para obtener una versión anterior. Por ejemplo, especifica tail -n 2.

    Ubuntu PRO y LTS

    Para Ubuntu PRO y LTS, ejecuta el siguiente 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 de Ubuntu PRO

    Para FIPS de Ubuntu PRO, ejecuta los siguientes comandos:

    1. Habilita las actualizaciones del FIPS de Ubuntu.

      sudo ua enable fips-updates
      
    2. Apaga y reinicia

      sudo shutdown -r now
      
    3. Obtén el paquete más reciente.

      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 la versión de controlador seleccionada, ejecuta echo $NVIDIA_DRIVER_VERSION. El resultado es una string de versión como 455.

  4. Instala el paquete del módulo de kernel y el controlador de NVIDIA correspondiente:

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

    Si el comando falló con el package not found error, es posible que falte el controlador de NVIDIA más reciente del repositorio. Vuelve a intentar el paso anterior y selecciona una versión de controlador anterior; para ello, cambia el número de cola.

  5. Verifica que el controlador NVIDIA esté instalado. Es posible que debas reiniciar la VM.

  6. Si reiniciaste el sistema para verificar la versión de NVIDIA. Después del reinicio, debes restablecer la variable NVIDIA_DRIVER_VERSION a través de la ejecución del comando que usaste en el paso 3.

  7. Configura APT para usar el repositorio de paquetes de NVIDIA

    1. Para ayudar a APT a elegir la dependencia correcta, fija los repositorios de la siguiente manera:

      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. Instala software-properties-common. Esto es necesario si usas imágenes mínimas de Ubuntu.

       sudo apt install software-properties-common
       

    3. Configura la versión de Ubuntu.

      Ubuntu 18.04

      En Ubuntu 18.04, ejecuta el siguiente comando:

      export UBUNTU_VERSION=ubuntu1804/x86_64

      Ubuntu 20.04

      En Ubuntu 20.04, ejecuta el siguiente comando:

      export UBUNTU_VERSION=ubuntu2004/x86_64

      Ubuntu 22.04

      En Ubuntu 22.04, ejecuta el siguiente comando:

      export UBUNTU_VERSION=ubuntu2204/x86_64
    4. Descarga el paquete cuda-keyring.

      wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
    5. Instala el paquete cuda-keyring.

      sudo dpkg -i cuda-keyring_1.0-1_all.deb
    6. Agrega el repositorio de NVIDIA.

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

      Si se te solicita, selecciona la acción predeterminada para conservar tu versión actual.

  8. Busca la versión del controlador CUDA compatible.

    La siguiente secuencia de comandos determina la última versión del controlador CUDA compatible con el controlador 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 la versión del controlador CUDA, ejecuta echo $CUDA_DRIVER_VERSION. El resultado es una string de versión como 455.32.00-1.

  9. Instala controladores CUDA con la versión identificada en el paso anterior.

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

  10. Opcional: Retener los paquetes de dkms.

    Después de habilitar el inicio seguro, todos los módulos de kernel se deben firmar para cargarse. Los módulos de kernel creados por dkms no funcionan en la VM, porque no están firmados de manera predeterminada de forma predeterminada. Este paso es opcional, pero puede ayudarte a evitar la instalación accidental de otros paquetes dkms en el futuro.

    Para conservar paquetes de dkms, ejecuta el siguiente comando:

      sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  11. Instala el kit de herramientas CUDA y el entorno de ejecución.

    Elige la versión de CUDA adecuada. La siguiente secuencia de comandos determina la versión de CUDA más reciente que es compatible con el controlador 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 la versión de CUDA, ejecuta echo $CUDA_VERSION. El resultado es una string de versión como 11-1.

  12. Instala el paquete CUDA.

      sudo apt install cuda-${CUDA_VERSION}
    
  13. Verifica la instalación de CUDA.

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

    Con el primer comando, se imprime la información de la GPU. El segundo comando imprime la versión del compilador CUDA instalada.

Verifica la instalación del controlador de GPU

Después de completar los pasos de instalación del controlador, verifica que se instaló y se inicializó de forma adecuada.

Linux

Conéctate a la instancia de Linux y usa el comando nvidia-smi para verificar que el controlador se ejecute de forma correcta.

sudo nvidia-smi

El resultado es similar a este:

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

Si este comando falla, revisa lo siguiente:

  • Verifica si hay GPUs conectadas a la VM. Para buscar dispositivos PCI de NVIDIA, ejecuta el siguiente comando:

    sudo lspci | grep -i "nvidia"
  • Comprueba que la versión del kernel del controlador y la versión del kernel de la VM sean las mismas.

    • Para verificar la versión de kernel de la VM, ejecuta el siguiente comando:

      uname -r
    • Para verificar la versión de kernel del controlador, ejecuta el siguiente comando:

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

      Si las versiones no coinciden, reinicia la VM a la nueva versión del kernel.

Windows Server

Conéctate a la instancia de Windows Server y abre una terminal de PowerShell y, luego, ejecuta el siguiente comando para verificar que el controlador se ejecute de forma correcta.

nvidia-smi

El resultado es similar a este:

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

Próximos pasos