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:

Modelo de GPU Linux Windows
NVIDIA H100
  • R525: 525.125.06 o una versión posterior
  • R535: 535.86.10 o una versión posterior
No disponible
NVIDIA L4 525.60.13 o una versión posterior 528.89
NVIDIA A100, T4, P4, P100 y V100 470.57.02 o una versión posterior 471.41 o una versión posterior
NVIDIA K80 (fin de la asistencia) 410.79 - (versión más reciente R470) 426.00 - (versión más reciente R470)

En el caso de las GPU K80, NVIDIA anunció que la rama del controlador R470r será la versión final del controlador para recibir asistencia de depuración. Si deseas revisar esta actualización, consulta la Matriz de compatibilidad de software de NVIDIA.

Instala controladores de GPU en VM

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

    Modelo de GPU Versión mínima recomendada del kit de herramientas CUDA Instrucciones de instalación para la versión mínima
    • NVIDIA H100
    • NVIDIA L4
    • NVIDIA A100
    • NVIDIA T4
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4

Instala los controladores de GPU 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.

Limitaciones

  • Esta secuencia de comandos no funcionará en las VM de Linux que tengan habilitado el Inicio seguro. Para las VMs de Linux que tienen habilitado el arranque seguro, consulta Instala controladores de GPU (VMs de arranque seguro).
  • 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

Linux

Sistemas operativos compatibles

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

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

Si usas esta secuencia de comandos en otros sistemas operativos, la instalación fallará. Para las VM de Linux, esta secuencia de comandos instala solo el controlador NVIDIA.

  1. Asegúrate de que Python 3 esté instalado en tu sistema operativo.

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

    curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py
  3. Ejecuta la secuencia de comandos de instalación.

    sudo python3 install_gpu_driver.py

    La secuencia de comandos tarda un tiempo en ejecutarse. Es posible que se reinicie la VM. Si la VM se reinicia, vuelve a ejecutar la secuencia de comandos para continuar con la instalación.

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

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 al siguiente:

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

Si este comando falla, revisa lo siguiente:

  • Verifica si hay alguna GPU conectada a la VM.

    Usa el siguiente comando para buscar cualquier dispositivo PCI de NVIDIA:

    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 uname -r.
    • Para verificar la versión de kernel del controlador, ejecuta 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 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      |
+---------------------------------------------------------------------------------------+

Próximos pasos