Crear e iniciar una instancia de VM con GPUs NVIDIA

En este documento se explica cómo crear una instancia de máquina virtual (VM) basada en Linux con unidades de procesamiento gráfico (GPUs) de NVIDIA. Para realizar pasos similares en una instancia de VM de Windows, consulta el artículo Instalar controladores de GPU NVIDIA en una VM de Windows.

Una máquina virtual con GPUs te permite ejecutar varias cargas de trabajo aceleradas por GPU, como inteligencia artificial y aprendizaje automático.

Las máquinas virtuales con GPUs forman parte de la familia de máquinas de la serie A optimizadas para aceleradores, como A2 y A3. Para obtener más información, consulta el artículo Ver el tipo de máquina de una VM.

Este documento está dirigido a desarrolladores de grupos de administradores de plataformas u operadores de aplicaciones que crean VMs en un entorno aislado de Google Distributed Cloud (GDC). Para obtener más información, consulta el artículo Audiencias de la documentación de GDC aislado.

Antes de empezar

Preparar el entorno

Para usar los comandos de la interfaz de línea de comandos (CLI) de gdcloud, asegúrate de haber descargado, instalado y configurado la CLI de gdcloud. Todos los comandos de Distributed Cloud usan la CLI de gdcloud o kubectl, y requieren un entorno Linux.

Solicitar roles de IAM

Ponte en contacto con el administrador de IAM de tu proyecto para solicitar los siguientes roles en tu proyecto:

  • Administrador de proyectos de máquinas virtuales (project-vm-admin): crea, modifica, lista y elimina VMs en el espacio de nombres del proyecto.

  • Visualizador de proyectos(project-viewer): ve todos los recursos dentro del espacio de nombres del proyecto.

Todos los roles de VM deben vincularse al espacio de nombres del proyecto en el que reside la VM. Sigue los pasos para verificar tu acceso.

Crear VM

Para crear una VM, sigue los pasos que se indican en el artículo Crear una VM a partir de una imagen y selecciona un tipo de máquina de la serie A.

Instalar controladores de NVIDIA

En esta sección se indican los pasos para instalar controladores de NVIDIA en tu instancia de VM de GDC.

Instalar el paquete

A partir de la versión v20250809, las imágenes de Ubuntu y Rocky Linux proporcionadas por GDC tienen controladores de NVIDIA preinstalados.

En el caso de las versiones de imágenes anteriores a v20250809 y las imágenes personalizadas proporcionadas por el usuario, instala el controlador desde el repositorio de paquetes de GDC. Conéctate a la VM mediante SSH y ejecuta el comando que corresponda al sistema operativo de tu VM:

Ubuntu

 sudo apt install nvidia-dkms-570-server-open

Rocky Linux y RHEL

 sudo dnf install nvidia-driver-cuda

Ejecutar DKMS

Habilita el controlador de NVIDIA en tu VM con el comando dkms. Solo tienes que realizar esta tarea una vez por VM:

   sudo dkms autoinstall

Instalar el kit de herramientas de CUDA

El kit de herramientas de CUDA de NVIDIA está disponible en los repositorios de paquetes de GDC. Conéctate a la VM mediante SSH y, a continuación, ejecuta el comando que corresponda al sistema operativo de tu VM:

Ubuntu

 sudo apt install cuda-toolkit-12-8

Rocky Linux y RHEL

 sudo dnf install cuda-toolkit-12-8

Habilitar el arranque seguro y firmar controladores

Si necesitas habilitar el arranque seguro en tu VM con GPUs, debes firmar los controladores de GPU. Consulta las instrucciones correspondientes a tu sistema operativo.

Ubuntu

  1. Conéctate a la VM mediante SSH.
  2. Cambia a superusuario:

    sudo su
    
  3. Genera una clave MOK si aún no existe:

    [ -f /var/lib/shim-signed/mok/MOK.der ] || openssl req -new -x509 -newkey rsa:2048 -keyout /var/lib/shim-signed/mok/MOK.priv \
        -outform DER -out /var/lib/shim-signed/mok/MOK.der \
        -nodes -days 36500 -subj "/CN=DKMS Signing Key/"
    
  4. Registra la clave con mokutil:

    mokutil --import /var/lib/shim-signed/mok/MOK.der
    
  5. Cuando se te solicite, crea e introduce una contraseña nueva.

  6. Firma los módulos del kernel de NVIDIA con la clave MOK:

    for module in nvidia nvidia_drm nvidia_modeset nvidia_uvm nvidia_peermem; do
        /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der $(modinfo -n $module)
    done
    

Rocky Linux y RHEL

  1. Conéctate a la VM mediante SSH.
  2. Cambia a superusuario:

    sudo su
    
  3. Firma el controlador con la clave mediante dkms autoinstall:

    sudo dkms autoinstall
    
  4. Registra la clave DKMS en MOK:

    mokutil --import /var/lib/dkms/mok.pub
    

Finalizar el registro y la verificación de MOK

Para acceder a la pantalla de gestión de MOK, reinicia la instancia de VM y conéctate inmediatamente al puerto serie. La pantalla es sensible al tiempo y solo aparece brevemente durante el proceso de arranque. En concreto, sigue estos pasos:

  1. Reinicia la instancia de VM:

    reboot
    
  2. Conéctate a la consola serie de la VM. Para obtener más información, consulta el artículo Conectarse a un puerto serie.

  3. Registra la clave MOK desde la consola:

    Pantalla de gestión de MOK de la consola serie de la VM

    Pantalla de gestión de MOK de la consola serie de una VM con la opción "Registrar MOK" resaltada

    Puedes ver la clave para asegurarte de que coincide con la que se generó en un paso anterior:

    Pantalla de gestión de MOK de la consola serie de la VM con la opción "Continuar" seleccionada

  4. Introduce la contraseña que seleccionaste anteriormente:

    Pantalla de gestión de MOK de la consola en serie de una VM que solicita una contraseña

  5. Selecciona Reiniciar en el menú de gestión de MOK:

    Pantalla de gestión de MOK de la consola serie de la VM con la opción "Reiniciar" seleccionada

  6. Verifica que el controlador de NVIDIA funciona ejecutando nvidia-smi.

    En el resultado se muestra el estado de la GPU y la información del controlador:

    $ nvidia-smi
    Wed Aug 13 00:09:17 2025
    +-----------------------------------------------------------------------------------------+
    | NVIDIA-SMI 570.158.01             Driver Version: 570.158.01     CUDA Version: 12.8     |
    |-----------------------------------------+------------------------+----------------------+
    | 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 H200                    Off |   00000000:08:00.0 Off |                    0 |
    | N/A   42C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   1  NVIDIA H200                    Off |   00000000:09:00.0 Off |                    0 |
    | N/A   36C    P0            127W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   2  NVIDIA H200                    Off |   00000000:0A:00.0 Off |                    0 |
    | N/A   34C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   3  NVIDIA H200                    Off |   00000000:0B:00.0 Off |                    0 |
    | N/A   40C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   4  NVIDIA H200                    Off |   00000000:0C:00.0 Off |                    0 |
    | N/A   39C    P0            125W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   5  NVIDIA H200                    Off |   00000000:0D:00.0 Off |                    0 |
    | N/A   35C    P0            122W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   6  NVIDIA H200                    Off |   00000000:0E:00.0 Off |                    0 |
    | N/A   39C    P0            128W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    |   7  NVIDIA H200                    Off |   00000000:0F:00.0 Off |                    0 |
    | N/A   35C    P0            121W /  700W |       0MiB / 143771MiB |      0%      Default |
    |                                         |                        |             Disabled |
    +-----------------------------------------+------------------------+----------------------+
    
    +-----------------------------------------------------------------------------------------+
    | Processes:                                                                              |
    |  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
    |        ID   ID                                                               Usage      |
    |=========================================================================================|
    |  No running processes found                                                             |
    +-----------------------------------------------------------------------------------------+
    

Siguientes pasos