Instalar los controladores de GPU.


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

En este documento, se explica cómo instalar controladores propiedad de NVIDIA en VM creadas con imágenes públicas o imágenes personalizadas.

A fin de instalar controladores para la estación de trabajo virtual de NVIDIA RTX, consulta Instala controladores para estaciones de trabajo virtuales de NVIDIA RTX.

Antes de comenzar

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

Las GPU de NVIDIA que se ejecutan en Compute Engine deben usar las siguientes versiones de controlador NVIDIA:

  • Para GPU A100:

    • Linux: 450.80.02 o superior
    • Windows: 452.77 o versiones posteriores
  • Para las GPU T4, P4, P100 y V100:

    • Linux: 410.79 o versiones posteriores
    • Windows: 426.00 o versiones posteriores
  • Para GPU K80:

    • Linux : 410.79 - 470.103.01
    • Windows : 426.00 - 472.98

    En el caso de las GPU K80, NVIDIA anunció que la rama del controlador R470 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. La guía de instalación para cada kit de herramientas recomendado se encuentra 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.

    Tipo de GPU Versión mínima recomendada del kit de herramientas CUDA Instrucciones de instalación
    • NVIDIA® A100
    • NVIDIA® T4:
    • NVIDIA V100
    • NVIDIA P100
    • NVIDIA P4
    • NVIDIA K80

Secuencias 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

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 y 8
  • Rocky Linux 8
  • Ubuntu 18, 20 y 21

Si usas esta secuencia de comandos en otros sistemas operativos, la instalación fallará.

  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.

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

  1. 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
  2. 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".

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

Instala controladores de GPU en las VM que usan el inicio seguro

Las VMS que tienen habilitado el inicio seguro requieren que todos los módulos de kernel estén firmados por la clave de confianza del sistema.

Compatibilidad con SO

  • Para la instalación de controladores NVIDIA en Windows que usan el inicio seguro, consulta la sección Instala controladores de GPU en VM.
  • Para los sistemas operativos Linux, la asistencia solo está disponible para los sistemas operativos Ubuntu 18.04 y 20.04. La compatibilidad para más sistemas operativos está en desarrollo.

Ubuntu 18.04 y 20.04

  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. Ejecute el siguiente comando para ver los paquetes más recientes:

    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}')
    

    Por ejemplo, especifica el número en 2 para obtener la próxima versión anterior:

    NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 2 | 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 kernel y el controlador NVIDIA correspondiente:

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

    Si el comando falló con el error de paquete no encontrado, es posible que el controlador de nvidia más reciente falte en el repositorio. Regresa al último paso para encontrar una versión anterior del controlador.

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

  6. 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. Agrega el repositorio de NVIDIA:

      • Ubuntu 18.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
        
      • Ubuntu 20.04

        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
        sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
        
  7. 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.

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

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

    Instala el paquete CUDA:

    sudo apt install cuda-${CUDA_VERSION}
    

  11. Verifica la instalación 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:

Mon Oct 11 12:51:37 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.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  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   41C    P0    50W / 400W |      0MiB / 40536MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| 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 como administrador y, luego, ejecuta el siguiente comando para verificar que el controlador se ejecute de forma correcta.

&"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe"

El resultado es similar al siguiente:

Mon Oct 11 12:13:10 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 462.31       Driver Version: 462.31       CUDA Version: 11.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  Tesla T4           WDDM  | 00000000:00:04.0 Off |                    0 |
| N/A   50C    P8    18W /  70W |    570MiB / 15360MiB |      2%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       408    C+G   Insufficient Permissions        N/A      |
|    0   N/A  N/A      3120    C+G   ...w5n1h2txyewy\SearchUI.exe    N/A      |
|    0   N/A  N/A      4056    C+G   Insufficient Permissions        N/A      |
|    0   N/A  N/A      4176    C+G   ...y\ShellExperienceHost.exe    N/A      |
|    0   N/A  N/A      5276    C+G   C:\Windows\explorer.exe         N/A      |
|    0   N/A  N/A      5540    C+G   ...in7x64\steamwebhelper.exe    N/A      |
|    0   N/A  N/A      6296    C+G   ...y\GalaxyClient Helper.exe    N/A      |
+-----------------------------------------------------------------------------+

Próximos pasos