Crea una instancia de A3 High o A2

En este documento, se explica cómo crear una instancia de máquina virtual (VM) que usa un tipo de máquina de la serie de máquinas optimizadas para aceleradores A2 o A3 High.

En el caso de los tipos de máquinas A3 High, este documento solo abarca los tipos de máquinas que tienen menos de 8 GPUs conectadas. Estos tipos de máquinas A3 High con menos de 8 GPUs solo se pueden crear como VMs Spot o VMs de inicio flexible. Para crear una instancia de A3 que tenga 8 GPUs conectadas, consulta Crea una instancia de A3 Mega, A3 High o A3 Edge con GPUDirect habilitado.

Para crear varias VMs A3 o A2, también puedes usar una de las siguientes opciones:

Antes de comenzar

  • Para revisar las limitaciones y los pasos de requisitos previos adicionales para crear instancias con GPU conectadas, como seleccionar una imagen de SO y verificar la cuota de GPU, consulta la Descripción general de la creación de una instancia con GPU conectadas.
  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de instalarla, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes Acceder a gcloud CLI con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a gcloud CLI.

      Instala Google Cloud CLI. Después de instalarla, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes Acceder a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para crear VMs, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear VM. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear VM:

  • compute.instances.create en el proyecto
  • Si deseas usar una imagen personalizada para crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
  • Para usar una instantánea a fin de crear la VM, haz lo siguiente: compute.snapshots.useReadOnly en la instantánea
  • Si quieres usar una plantilla de instancias para crear la VM, sigue estos pasos: compute.instanceTemplates.useReadOnly en la plantilla de instancias
  • A fin de especificar una subred para tu VM: compute.subnetworks.use en el proyecto o en la subred elegida
  • Si deseas especificar una dirección IP estática para la VM: compute.addresses.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida.
  • Para asignar una red heredada a la VM, ejecuta compute.networks.use en el proyecto.
  • Para asignar una dirección IP externa a la VM cuando se usa una red heredada, ejecuta compute.networks.useExternalIp en el proyecto
  • Para configurar los metadatos de la instancia de VM para la VM, compute.instances.setMetadata en el proyecto.
  • Para configurar etiquetas en la VM, haz lo siguiente: compute.instances.setTags en la VM
  • Para configurar etiquetas en la VM, haz lo siguiente: compute.instances.setLabels en la VM
  • A fin de configurar una cuenta de servicio para que la VM use: compute.instances.setServiceAccount en la VM
  • Crear un disco nuevo para la VM: compute.disks.create en el proyecto
  • Para conectar un disco existente en modo de solo lectura o de lectura y escritura, usa compute.disks.use en el disco.
  • Para conectar un disco existente en modo de solo lectura, haz lo siguiente: compute.disks.useReadOnly en el disco

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Crea una VM que tenga GPUs conectadas

Puedes crear una VM optimizada para aceleradores A2 o A3 con laGoogle Cloud consola, Google Cloud CLI o REST.

Console

  1. En la consola de Google Cloud , ve a la página Crear una instancia.

    Ir a Crear una instancia
  2. En el campo Nombre, ingresa un nombre único para tu instancia. Consulta la convención de asignación de nombres de recursos.
  3. Selecciona una región y una zona en las que estén disponibles estos tipos de máquinas con GPU. Consulta Regiones y zonas de GPU.
  4. En la sección de tipos de máquinas, selecciona GPUs.
    1. En la lista Tipo de GPU, selecciona el tipo de GPU.
      • En las VMs optimizadas para aceleradores A2, selecciona NVIDIA A100 40GB o NVIDIA A100 80GB.
      • En las VMs optimizadas para aceleradores A3, selecciona NVIDIA H100 80GB.
    2. En la lista Cantidad de GPU, selecciona la cantidad.
  5. Configura el disco de arranque de la siguiente manera:
    1. En la sección SO y almacenamiento, haz clic en Cambiar. Se abrirá la página Configuración del disco de arranque.
    2. En la página Configuración del disco de arranque, haz lo siguiente:
      1. En la pestaña Imágenes públicas, elige una imagen de Compute Engine compatible o una Deep Learning VM Image.
      1. Especifica un tamaño de disco de arranque de al menos 40 GiB.
      2. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.
  6. Configura el modelo de aprovisionamiento. En la sección Opciones avanzadas, en Modelo de aprovisionamiento de VM, selecciona una de las siguientes opciones:
    • Estándar: Para cargas de trabajo de uso general
    • Inicio flexible: Para cargas de trabajo de corta duración que pueden tolerar una hora de inicio flexible. Para obtener más información, consulta Acerca de las VMs de inicio flexible.
    • Spot: Para cargas de trabajo tolerantes a errores que se pueden interrumpir. Para obtener más información, consulta VMs Spot.
  7. Opcional: En la lista Cuando se finaliza la VM, selecciona lo que sucede cuando Compute Engine interrumpe las VMs Spot o cuando las VMs de inicio flexible alcanzan el final de su duración de ejecución:
    • Para detener la VM durante la interrupción, selecciona Detener (predeterminado).
    • Para borrar la VM durante la interrupción, selecciona Borrar.
  8. Para crear y, también, iniciar la VM, haz clic en Crear.

gcloud

Para crear y, luego, iniciar una VM, usa el comando gcloud compute instances create con las siguientes marcas. Las VMs con GPU no se pueden migrar en vivo, así que asegúrate de configurar la marca --maintenance-policy=TERMINATE.

El comando de ejemplo también muestra la marca --provisioning-model. Esta marca establece el modelo de aprovisionamiento para la VM. Esta marca es obligatoria cuando se crean tipos de máquinas A3 con menos de 8 GPUs y debe establecerse en SPOT o FLEX_START. Para los tipos de máquinas A2, esta marca es opcional. Si no especificas un modelo, se usará el modelo de aprovisionamiento estándar. Para obtener más información, consulta Modelos de aprovisionamiento de instancias de Compute Engine.

  gcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --zone=ZONE \
      --boot-disk-size=DISK_SIZE \
      --image=IMAGE \
      --image-project=IMAGE_PROJECT \
      --maintenance-policy=TERMINATE \
      --provisioning-model=PROVISIONING_MODEL
  
Reemplaza lo siguiente:
  • VM_NAME: el nombre de la VM nueva.
  • MACHINE_TYPE: Un tipo de máquina A2 o un tipo de máquina A3 con 1, 2 o 4 GPUs. En el caso de los tipos de máquinas A3, debes especificar un modelo de aprovisionamiento.
  • ZONE: La zona para la VM. Esta zona debe ser compatible con el modelo de GPU seleccionado.
  • DISK_SIZE: Es el tamaño de tu disco de arranque en GiB. Especifica un tamaño de disco de arranque de al menos 40 GiB.
  • IMAGE: una imagen del sistema operativo que admite GPU. Si deseas usar la imagen más reciente en una familia de imágenes, reemplaza la marca --image por la marca --image-family y configura su valor en una familia de imágenes que admita GPU. Por ejemplo: --image-family=rocky-linux-8-optimized-gcp.
    También puedes especificar una imagen personalizada o una Deep Learning VM Image.
  • IMAGE_PROJECT: el proyecto de imagen de Compute Engine al que pertenece la imagen de SO. Si usas una imagen personalizada o Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.
  • PROVISIONING_MODEL: Es el modelo de aprovisionamiento que se usará para crear la VM. Puedes especificar SPOT o FLEX_START. Si quitas la marca --provisioning-model del comando, se usará el modelo de aprovisionamiento estándar. Esta marca es obligatoria cuando se crean VMs A3 con menos de 8 GPUs.

REST

Realiza una solicitud POST al método instances.insert. Las VMs con GPU no pueden migrar en vivo; asegúrate de configurar el parámetro onHostMaintenance como TERMINATE.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
"disks":
[
  {
    "type": "PERSISTENT",
    "initializeParams":
    {
      "diskSizeGb": "DISK_SIZE",
      "sourceImage": "SOURCE_IMAGE_URI"
    },
    "boot": true
  }
],
"name": "VM_NAME",
"networkInterfaces":
[
  {
    "network": "projects/PROJECT_ID/global/networks/NETWORK"
  }
],
"scheduling":
{
  "onHostMaintenance": "terminate",
  "automaticRestart": true
}
}

Reemplaza lo siguiente:
  • VM_NAME: el nombre de la VM nueva.
  • PROJECT_ID: el ID de tu proyecto
  • ZONE: La zona para la VM. Esta zona debe ser compatible con el modelo de GPU seleccionado.
  • MACHINE_TYPE: Un tipo de máquina A2 o un tipo de máquina A3 con 1, 2 o 4 GPUs En el caso de los tipos de máquinas A3, debes especificar un modelo de aprovisionamiento.
  • PROVISIONING_MODEL: Es el modelo de aprovisionamiento de la VM. Especifica SPOT o FLEX_START. Este campo es obligatorio cuando se crean VMs A3 con menos de 8 GPUs. En el caso de las VMs A2, este campo es opcional. Si no especificas un modelo, se usará el modelo de aprovisionamiento estándar. Para obtener más información, consulta Modelos de aprovisionamiento de instancias de Compute Engine.
  • SOURCE_IMAGE_URI: El URI de la imagen o familia de imágenes específicas que deseas usar. Por ejemplo:
    • Imagen específica: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-10-optimized-gcp-v20251017"
    • Familia de imágenes: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-10-optimized-gcp"
    Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO no obsoleta más reciente de esa familia. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.
  • DISK_SIZE: El tamaño de tu disco de arranque en GB Especifica un tamaño de disco de arranque de al menos 40 GB.
  • NETWORK: la red de VPC que quieres usar para la VM Puedes especificar "default" para usar tu red predeterminada
Configuración adicional:
  • Para especificar un modelo de aprovisionamiento, agrega el campo "provisioningModel": "PROVISIONING_MODEL" al objeto scheduling en tu solicitud. Esto es obligatorio para los tipos de máquinas A3 con menos de 8 GPUs. Si especificas que se creen VMs Spot, se ignorarán los campos onHostMaintenance y automaticRestart.
    "scheduling":
      {
        "onHostMaintenance": "terminate",
        "automaticRestart": true,
        "provisioningModel": "PROVISIONING_MODEL"
      }
    

Instalar controladores

Para que la VM use la GPU, debes instalar el controlador de GPU en tu VM.

Ejemplos

En estos ejemplos, la mayoría de las VMs se crean con Google Cloud CLI. Sin embargo, también puedes usar Google Cloud console oREST para crear estas VMs.

En los siguientes ejemplos, se muestra cómo crear una VM Spot A3 con una imagen de SO estándar y una VM A2 con una imagen de imágenes de VM de aprendizaje profundo.

Crea una VM Spot A3 con la familia de imagen de SO Debian 13

En este ejemplo, se crea una VM Spot A3 (a3-highgpu-1g) con la familia de imagen de SO Debian 13.

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a3-highgpu-1g \
    --provisioning-model=SPOT \
    --maintenance-policy=TERMINATE \
    --image-family=debian-13 \
    --image-project=debian-cloud \
    --boot-disk-size=200GB \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Reemplaza lo siguiente:

  • VM_NAME: El nombre de tu instancia de VM
  • PROJECT_ID: El ID de tu proyecto
  • ZONE: Es la zona de la instancia de VM.

Crea una VM de A2 con una instancia de notebooks administrados por el usuario de Vertex AI Workbench en la VM

En este ejemplo, se crea una VM A2 estándar (a2-highgpu-1g) con la imagen de tf2-ent-2-3-cu110 de Deep Learning VM Images. En este ejemplo, se especifican marcas opcionales, como el tamaño del disco de arranque y el permiso.

El uso de imágenes DLVM es la forma más fácil de comenzar porque estas imágenes ya tienen preinstalados los controladores NVIDIA y las bibliotecas CUDA.

Estas imágenes también proporcionan optimizaciones de rendimiento.

Las siguientes imágenes de DLVM son compatibles con NVIDIA A100:

  • common-cu110: Controlador NVIDIA y CUDA preinstalados
  • tf-ent-1-15-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 1.15.3 preinstalados
  • tf2-ent-2-1-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 2.1.1 preinstalados
  • tf2-ent-2-3-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 2.3.1 preinstalados
  • pytorch-1-6-cu110: controlador de NVIDIA, CUDA, Pytorch 1.6

Para obtener más información sobre las imágenes de DLVM disponibles y los paquetes instalados en ellas, consulta la documentación de VM de aprendizaje profundo.

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a2-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --image-family=tf2-ent-2-3-cu110 \
    --image-project=deeplearning-platform-release \
    --boot-disk-size=200GB \
    --metadata="install-nvidia-driver=True,proxy-mode=project_editors" \
    --scopes=https://www.googleapis.com/auth/cloud-platform

Reemplaza lo siguiente:

  • VM_NAME: El nombre de tu instancia de VM
  • PROJECT_ID: El ID de tu proyecto
  • ZONE: La zona de la instancia de VM

Con el comando de ejemplo anterior, también se genera una instancia de notebooks administrados por el usuario de Vertex AI Workspace para la VM. Para acceder al notebook, en la Google Cloud consola, ve a la página Vertex AI Workbench > Notebooks administrados por el usuario.

Ir a la página Notebooks administrados por el usuario

GPU de varias instancias

Una GPU de instancias múltiples particiona una sola GPU de NVIDIA A100 o NVIDIA H100 dentro de la misma VM en hasta siete instancias de GPU independientes. Se ejecutan de manera simultánea, cada uno con su propio procesador de memoria, caché y transmisión. Esta configuración permite que la GPU NVIDIA A100 y H100 entregue una calidad de servicio (QoS) coherente hasta 7 veces mayor en comparación con los modelos de GPU anteriores.

Puedes crear hasta siete GPU de varias instancias. En las GPU A100 de 40 GB, cada GPU de instancias múltiples tiene asignados 5 GB de memoria. Con las GPU A100 de 80 GB, la memoria asignada se duplica a 10 GB cada una. Con las GPU H100 de 80 GB, cada GPU de instancias múltiples también tiene asignados 10 GB de memoria.

Para obtener más información sobre el uso de GPU de varias instancias, consulta Guía del usuario de GPU de varias instancias de NVIDIA.

Para crear GPU de varias instancias, completa los siguientes pasos:

  1. Crea una instancia de VM optimizada para aceleradores A2 (A100) o A3 (H100).

  2. Conéctate a la instancia de VM. Para obtener más información, consulta Conéctate a VMs de Linux o Conéctate a VMs de Windows.

  3. Habilita los controladores de GPU de NVIDIA.

  4. Habilita las GPU de instancias múltiples.

    sudo nvidia-smi -mig 1
    
  5. Revisa las formas de GPU de varias instancias que están disponibles.

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    El resultado es similar al siguiente:

    +-----------------------------------------------------------------------------+
    | GPU instance profiles:                                                      |
    | GPU   Name             ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                              Free/Total   GiB              CE    JPEG  OFA  |
    |=============================================================================|
    |   0  MIG 1g.10gb       19     7/7        9.62       No     16     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.10gb+me    20     1/1        9.62       No     16     1     0   |
    |                                                             1     1     1   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.20gb       15     4/4        19.50      No     26     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 2g.20gb       14     3/3        19.50      No     32     2     0   |
    |                                                             2     2     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 3g.40gb        9     2/2        39.25      No     60     3     0   |
    |                                                             3     3     0   |
    +-----------------------------------------------------------------------------+
    .......
    
  6. Crea la GPU de varias instancias (SIG) y las instancias de procesamiento asociadas (CI) que desees. Puedes crear estas instancias si especificas el nombre completo o abreviado del nombre del perfil, el ID del perfil, o una combinación de ambos. Para obtener más información, consulta Crea instancias de GPU.

    En el siguiente ejemplo, se crean dos instancias de GPU MIG 3g.20gb usando el ID de perfil (9).

    También se especifica la marca -C, que crea las instancias de procesamiento asociadas con el perfil requerido.

    sudo nvidia-smi mig -cgi 9,9 -C
    
  7. Verifica que se creen ambas GPU de varias instancias:

    sudo nvidia-smi mig -lgi
    
  8. Comprueba que se hayan creado las GI y las IC correspondientes.

    sudo nvidia-smi
    

    El resultado es similar a este:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
    |-------------------------------+----------------------+----------------------+
    | 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 H100 80G...  Off  | 00000000:04:00.0 Off |                   On |
    | N/A   33C    P0    70W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA H100 80G...  Off  | 00000000:05:00.0 Off |                   On |
    | N/A   32C    P0    69W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

Próximos pasos