Crea y, luego, inicia una instancia de VM con GPUs de NVIDIA

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

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

Las máquinas virtuales con GPUs forman parte de la familia de máquinas de la serie A "optimizada para aceleradores", por ejemplo, A2 y A3. Para obtener más información, consulta Visualiza el tipo de máquina de la VM.

Este documento está dirigido a los desarrolladores de grupos de administradores de plataformas o operadores de aplicaciones que crean VMs en un entorno aislado de Google Distributed Cloud (GDC). Para obtener más información, consulta Públicos de la documentación de Google Distributed Cloud aislado.

Antes de comenzar

Prepare 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 de Linux.

Solicita roles de IAM

Comunícate con tu administrador de IAM del proyecto para solicitar los siguientes roles en tu proyecto:

  • Administrador del proyecto de Virtual Machine (project-vm-admin): Crea, modifica, enumera y borra VMs en el espacio de nombres del proyecto.

  • Visualizador del proyecto(project-viewer): Visualiza 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.

Crea una VM

Para crear una VM, sigue los pasos que se describen en Crea una VM a partir de una imagen y selecciona un tipo de máquina de la serie A.

Instala controladores de NVIDIA

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

Instale el paquete

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

Para las versiones de imagen 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 con SSH y ejecuta el comando que corresponde a tu sistema operativo (SO) de la VM:

Ubuntu

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

Rocky Linux y RHEL

 sudo dnf install nvidia-driver-cuda

Ejecuta DKMS

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

   sudo dkms autoinstall

Instala el kit de herramientas CUDA

El kit de herramientas NVIDIA CUDA está disponible en los repositorios de paquetes de GDC. Conéctate a la VM con SSH y, luego, ejecuta el comando que corresponde a tu SO de la VM:

Ubuntu

 sudo apt install cuda-toolkit-12-8

Rocky Linux y RHEL

 sudo dnf install cuda-toolkit-12-8

Habilita el inicio seguro y firma los controladores

Si necesitas habilitar el inicio seguro en tu VM con GPUs, debes firmar los controladores de GPU. Consulta las instrucciones para tu SO correspondiente.

Ubuntu

  1. Conéctate a la VM con SSH.
  2. Cambia al 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. Inscribe la clave con mokutil:

    mokutil --import /var/lib/shim-signed/mok/MOK.der
    
  5. Cuando se te solicite, crea e ingresa una contraseña nueva de tu elección.

  6. Firma los módulos de kernel de NVIDIA con el 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 con SSH.
  2. Cambia al superusuario:

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

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

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

Finaliza la inscripción y la verificación de MOK

Para acceder a la pantalla de administración de MOK, asegúrate de reiniciar la instancia de VM y conectarte de inmediato al puerto en serie. La pantalla es sensible al tiempo y aparece solo brevemente durante el proceso de arranque. En particular, sigue estos pasos:

  1. Reinicia la instancia de VM:

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

  3. Inscribe el MOK desde la consola:

    Pantalla de administración de MOK de la consola en serie de la VM

    Pantalla de administración de MOK de la consola en serie de la VM con la opción "Enroll MOK" destacada

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

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

  4. Ingresa la contraseña que seleccionaste antes:

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

  5. Selecciona Reboot en el menú de administración de MOK:

    Pantalla de administración de MOK de la consola en serie de la VM con la opción "Reboot" seleccionada

  6. Para verificar que el controlador de NVIDIA funcione, ejecuta nvidia-smi.

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

¿Qué sigue?