Crear una instancia A3 Ultra o A4

En este documento se describe cómo crear instancias con GPUs conectadas de las series de máquinas A3 Ultra o A4. Para obtener más información sobre cómo crear instancias con GPUs conectadas, consulta el artículo sobre cómo crear una instancia con GPUs conectadas.

Las series de máquinas A4 y A3 Ultra están diseñadas para permitirte ejecutar clústeres de IA y aprendizaje automático a gran escala con funciones como la colocación de cargas de trabajo específicas, controles avanzados de mantenimiento de clústeres y programación basada en la topología. Para obtener más información, consulta la descripción general de la gestión de clústeres.

Antes de empezar

  • Para consultar las limitaciones y los pasos previos adicionales para crear instancias con GPU conectadas, como seleccionar una imagen de SO o comprobar la cuota de GPU, consulta el resumen de la creación de instancias con GPU conectadas.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Trusted Cloud by S3NS servicios y APIs. Para ejecutar código o ejemplos 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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada. Después de iniciar sesión, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init
    2. Set a default region and zone.

    REST

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

      Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada. Después de iniciar sesión, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Trusted Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para crear instancias, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear instancias. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear instancias, se necesitan los siguientes permisos:

  • compute.instances.create del proyecto
  • Para usar una imagen personalizada para crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
  • Para usar una captura para crear la VM, sigue estos pasos: compute.snapshots.useReadOnly en la captura
  • Para usar una plantilla de instancia para crear la VM, haz lo siguiente: compute.instanceTemplates.useReadOnly en la plantilla de instancia
  • Para especificar una subred para tu VM, haz lo siguiente: compute.subnetworks.use en el proyecto o en la subred elegida
  • Para especificar una dirección IP estática para la máquina virtual, haz lo siguiente: compute.addresses.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, sigue estos pasos: compute.subnetworks.useExternalIp en el proyecto o en la subred elegida
  • Para asignar una red antigua a la VM, sigue estos pasos: compute.networks.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: compute.networks.useExternalIp en el proyecto
  • Para definir los metadatos de la instancia de VM: compute.instances.setMetadata en el proyecto
  • Para definir etiquetas en la VM, haz lo siguiente: compute.instances.setTags en la VM
  • Para definir etiquetas en la VM, sigue estos pasos: compute.instances.setLabels en la VM
  • Para definir una cuenta de servicio que pueda usar la VM, sigue estos pasos: compute.instances.setServiceAccount en la VM
  • Para crear un disco para la VM, sigue estos pasos: compute.disks.create en el proyecto
  • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, sigue estos pasos: compute.disks.use en el disco
  • Para adjuntar un disco en modo de solo lectura, sigue estos pasos: compute.disks.useReadOnly en el disco

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

Determinar cómo crear instancias A3 Ultra o A4

Para determinar las opciones que quieres usar para crear instancias A3 Ultra o A4, sigue estos pasos:

  1. Elige una opción de consumo: para saber cómo elegir una opción de consumo para una instancia A3 Ultra o A4, consulta Elegir una opción de consumo en la documentación de AI Hypercomputer.

  2. Obtener capacidad: para saber cómo obtener capacidad para instancias A3 Ultra o A4 con la opción de consumo que hayas elegido, consulta la descripción general de la capacidad en la documentación de AI Hypercomputer.

  3. Selecciona las instrucciones de creación: para obtener información sobre todas las opciones que puedes usar para crear instancias A3 Ultra o A4, como grupos de instancias gestionados (MIGs) o clústeres, consulta el resumen de la creación de máquinas virtuales y clústeres en la documentación de AI Hypercomputer.

    Si quieres usar las funciones de gestión de clústeres de A3 Ultra o A4, o si no quieres crear instancias independientes, selecciona una opción de creación en la documentación de AI Hypercomputer.

Crear una instancia A3 Ultra o A4

Para crear una instancia A3 Ultra o A4, sigue estos pasos:

  1. Crear redes de VPC

  2. Crear la instancia

  3. Preparar la instancia para usarla

Crear redes de VPC

Para configurar la red del tipo de máquina A4 o A3 Ultra, crea tres redes de VPC para las siguientes interfaces de red:

  • 2 redes de VPC normales para las interfaces de red (NIC) gVNIC. Se usan para la comunicación entre hosts.
  • Se necesita una red de VPC con el perfil de red RoCE para las NICs CX-7. La red de VPC de RoCE debe tener 8 subredes, una por cada NIC CX-7. Estas NICs usan RDMA sobre Ethernet convergente (RoCE), lo que proporciona la comunicación de gran ancho de banda y baja latencia que es esencial para la comunicación entre GPUs.

Para obtener más información sobre la disposición de las NICs, consulta el artículo Revisar el ancho de banda de la red y la disposición de las NICs.

Crea las redes manualmente siguiendo las guías de instrucciones o automáticamente mediante la secuencia de comandos proporcionada.

Guías de instrucciones

Para crear las redes, puedes seguir estas instrucciones:

En estas redes de VPC, te recomendamos que asignes un valor más alto a la unidad de transmisión máxima (MTU). En el caso del tipo de máquina A4 o A3 Ultra, el valor de MTU recomendado es de 8896 bytes. Para consultar los ajustes de MTU recomendados para otros tipos de máquinas con GPU, consulta Ajustes de MTU para tipos de máquinas con GPU.

Secuencia de comandos

Para crear las redes, siga estos pasos.

En estas redes de VPC, te recomendamos que asignes un valor más alto a la unidad de transmisión máxima (MTU). En el caso del tipo de máquina A4 o A3 Ultra, el valor de MTU recomendado es de 8896 bytes. Para consultar los ajustes de MTU recomendados para otros tipos de máquinas con GPU, consulta Ajustes de MTU para tipos de máquinas con GPU.

  1. Usa la siguiente secuencia de comandos para crear redes de VPC para las NICs gVNIC y CX7.

      
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
        done
    
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
        # Assumes that an external IP is only created for vNIC 0
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for CX-7
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 7); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs
        done
    
      

    Haz los cambios siguientes:

    • GVNIC_NAME_PREFIX: el prefijo de nombre personalizado que se usará para las redes y subredes de VPC normales de las gVNICs.
    • RDMA_NAME_PREFIX: el prefijo de nombre personalizado que se usará para la red de VPC y las subredes de RoCE de las NICs CX-7.
    • ZONE: especifica una zona en la que esté disponible el tipo de máquina que quieras usar, como us-central1-a. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
    • REGION: la región en la que quieras crear las subredes. Esta región debe corresponderse con la zona especificada. Por ejemplo, si tu zona es us-central1-a, tu región es us-central1.
    • IP_RANGE: el intervalo de IPs que se va a usar en las reglas de cortafuegos SSH.
  2. Opcional: Para verificar que los recursos de la red de VPC se han creado correctamente, comprueba la configuración de la red en la consola de Trusted Cloud :
    1. En la Trusted Cloud consola, ve a la página Redes de VPC.

      Ir a redes de VPC

    2. Busca en la lista las redes que has creado en el paso anterior.
    3. Para ver las subredes, las reglas de cortafuegos y otros ajustes de red, haz clic en el nombre de la red.

Crear la instancia

Para crear una instancia, usa una de las siguientes opciones.

Consola

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

    Ir a Crear una instancia

    Aparecerá la pantalla Crear una instancia, en la que se muestra el panel Configuración de la máquina.

  2. En el panel Configuración de la máquina, sigue estos pasos:

    1. Especifica un nombre para la instancia. Consulta Convención de nomenclatura de recursos.

    2. Selecciona la región y la zona en las que has reservado capacidad.

    3. Haz clic en la pestaña GPUs y, a continuación, sigue estos pasos:

      1. En la lista Tipo de GPU, selecciona el tipo de GPU.

        • En el caso de las instancias A4, selecciona NVIDIA B200.

        • En las instancias A3 Ultra, selecciona NVIDIA H200 de 141 GB.

      2. En la lista Número de GPUs, selecciona 8.

  3. En el menú de navegación, haz clic en SO y almacenamiento. En el panel Sistema operativo y almacenamiento que aparece, sigue estos pasos:

    1. Haz clic en Cambiar. Aparecerá el panel Configuración del disco de arranque.

    2. En la pestaña Imágenes públicas, selecciona una imagen recomendada. Para ver una lista de imágenes recomendadas, consulta Sistemas operativos.

    3. Para confirmar las opciones del disco de arranque, haz clic en Seleccionar.

  4. Para crear una instancia con varias NICs, sigue estos pasos. De lo contrario, para crear una instancia de una sola NIC, omite estos pasos.

    • En el menú de navegación, haga clic en Redes. En el panel Redes que aparece, sigue estos pasos:

      1. En la sección Interfaces de red, sigue estos pasos:

      2. Elimina la interfaz de red predeterminada. Para eliminar la interfaz, haz clic en Eliminar.

      3. Haz clic en Añadir una interfaz de red. Usa esta opción para añadir interfaces de red que se conecten a las redes de VPC que has creado en la sección anterior. Cuando añadas las interfaces de red, ten en cuenta lo siguiente:

        • En el caso de una interfaz de red que se utilice para la comunicación entre hosts, selecciona una red de VPC y una subred normales en las listas Red y Subred, y define la lista Tarjeta de interfaz de red como gVNIC.

        • En el caso de una interfaz de red que se utilice para la comunicación entre GPUs, selecciona la red y la subred de la VPC de RoCE en las listas Red y Subred, y elige MRDMA en la lista Tarjeta de interfaz de red de estas interfaces de red.

  5. En el menú de navegación, haz clic en Opciones avanzadas. A continuación, sigue los pasos correspondientes al modelo de aprovisionamiento que quieras usar.

    Inicio flexible

    1. En la sección Modelo de aprovisionamiento, en la lista Modelo de aprovisionamiento de la VM, selecciona Inicio flexible.
    2. En Introduce el número de horas, indica el tiempo máximo que quieres que se ejecute la VM. El valor debe estar entre 46 segundos (0.01) y siete días (168 o 168 horas).

    3. Selecciona Definir un tiempo de espera para la creación de la VM.

      Según los requisitos de zona de tu carga de trabajo, te recomendamos que especifiques una de las siguientes duraciones para aumentar las probabilidades de que se complete tu solicitud de creación de VM:

      • Cargas de trabajo con requisitos de zona estrictos: si tu carga de trabajo requiere que crees la VM en una zona específica, indica una duración de entre 90 segundos y 2 horas. Cuanto más dure la misión, más probabilidades tendrás de obtener recursos.
      • Cargas de trabajo sin requisitos zonales estrictos: si la VM puede ejecutarse en cualquier zona de la región, especifica una duración de 0 segundos o desmarca la casilla Definir un tiempo de espera para la creación de la VM. Esta acción especifica que Compute Engine solo asigna recursos si están disponibles de inmediato. Si la solicitud de creación de la VM falla porque no hay recursos disponibles, vuelve a intentarlo en otra zona.

    Con reserva

    1. Haz clic en Elegir una reserva. Se abrirá un panel con una lista de las reservas disponibles en la zona seleccionada. En la lista de reservas, sigue estos pasos:

      1. Selecciona la reserva que quieras usar en la VM. También puedes seleccionar un bloque específico de la reserva.
      2. Haz clic en Elegir.

    Spot

    1. En la sección Modelo de aprovisionamiento, seleccione Spot en la lista Modelo de aprovisionamiento de la VM.
    2. Opcional: Para seleccionar la acción de finalización que se produce cuando Compute Engine expulsa la VM, sigue estos pasos:

      1. Despliega la sección Configuración avanzada del modelo de aprovisionamiento de VMs.
      2. En la lista Al finalizar la VM, selecciona una de las siguientes opciones:
        • Para detener la VM durante la expropiación, selecciona Detener (opción predeterminada).
        • Para eliminar la VM durante la expropiación, selecciona Eliminar.
  6. Para crear e iniciar la instancia, haz clic en Crear.

gcloud

Para crear la VM, usa el comando gcloud compute instances create.

Los parámetros que debes especificar dependen de la opción de consumo que utilices en esta implementación. Selecciona la pestaña que corresponda al modelo de aprovisionamiento de tu opción de consumo.

Inicio flexible

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • REQUEST_VALID_FOR_DURATION: la duración durante la que es válida la solicitud para crear la VM. Debes dar formato al valor como el número de días, horas, minutos o segundos seguido de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para un día, dos horas, tres minutos y cuatro segundos. Si no especificas una duración, la duración predeterminada es de 90 segundos.

    Según los requisitos de zona de tu carga de trabajo, te recomendamos que especifiques una de las siguientes duraciones para aumentar las probabilidades de que se complete tu solicitud de creación de VM:

    • Cargas de trabajo con requisitos de zona estrictos: si tu carga de trabajo requiere que crees la VM en una zona específica, indica una duración de entre 90 segundos y dos horas. Cuanto más tiempo dure, más probabilidades tendrás de obtener recursos.
    • Cargas de trabajo sin requisitos de zona estrictos: si la VM puede ejecutarse en cualquier zona de la región, especifica una duración de cero segundos (0). Esta acción indica que Compute Engine solo asigna recursos si están disponibles de inmediato. Si la solicitud de creación de la VM falla porque no hay recursos disponibles, vuelve a intentarlo en otra zona.
  • MAX_RUN_DURATION: la duración que quieres que se ejecuten las VMs solicitadas. Debes dar formato al valor como el número de días, horas, minutos o segundos seguido de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para un día, dos horas, tres minutos y cuatro segundos. El valor debe estar comprendido entre 10 minutos y 7 días.

Con reserva

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • RESERVATION: el nombre de la reserva o un bloque específico de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Ver la capacidad reservada. En función de tus requisitos de colocación de instancias, elige una de las siguientes opciones:
    • Para crear la instancia en cualquier bloque, sigue estos pasos:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Además, para crear varias instancias en el mismo bloque, aplica la misma política de emplazamiento compacto que especifique una colocación de bloques (maxDistance=2) al crear cada instancia. A continuación, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

    • Para crear la instancia en un bloque específico, sigue estos pasos:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: indica si Compute Engine detiene (STOP) o elimina (DELETE) la VM al final del periodo de reserva.

Spot

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • TERMINATION_ACTION: la acción que se debe llevar a cabo cuando Compute Engine desalojo la instancia, ya sea STOP (valor predeterminado) o DELETE.

REST

Para crear la VM, haz una solicitud POST al método instances.insert.

Los parámetros que debes especificar dependen de la opción de consumo que utilices en esta implementación. Selecciona la pestaña que corresponda al modelo de aprovisionamiento de tu opción de consumo.

Inicio flexible

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "NO_RESERVATION",
  },
  "scheduling":{
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "DELETE",
    "onHostMaintenance": "TERMINATE",
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que quieres crear la VM.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • VM_NAME: el nombre de la VM.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • NETWORK_PROJECT_ID: el ID de proyecto de la red.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • REGION: la región de la subred.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • REQUEST_VALID_FOR_DURATION: la duración durante la que es válida la solicitud para crear la VM. Debes dar formato al valor como el número de días, horas, minutos o segundos seguido de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para un día, dos horas, tres minutos y cuatro segundos. Si no especificas una duración, la duración predeterminada es de 90 segundos.

    Según los requisitos de zona de tu carga de trabajo, te recomendamos que especifiques una de las siguientes duraciones para aumentar las probabilidades de que se complete tu solicitud de creación de VM:

    • Cargas de trabajo con requisitos de zona estrictos: si tu carga de trabajo requiere que crees la VM en una zona específica, indica una duración de entre 90 segundos y dos horas. Cuanto más tiempo dure, más probabilidades tendrás de obtener recursos.
    • Cargas de trabajo sin requisitos de zona estrictos: si la VM puede ejecutarse en cualquier zona de la región, especifica una duración de cero segundos (0). Esta acción indica que Compute Engine solo asigna recursos si están disponibles de inmediato. Si la solicitud de creación de la VM falla porque no hay recursos disponibles, vuelve a intentarlo en otra zona.
  • MAX_RUN_DURATION: la duración que quieres que se ejecuten las VMs solicitadas. Debes dar formato al valor como el número de segundos. Por ejemplo, especifica 86400 para un día. El valor debe estar comprendido entre 10 minutos y 7 días.

Con reserva

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values":[
      "RESERVATION"
    ]
  },
  "scheduling":{
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que quieres crear la VM.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • VM_NAME: el nombre de la VM.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • NETWORK_PROJECT_ID: el ID de proyecto de la red.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • REGION: la región de la subred.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • RESERVATION: el nombre de la reserva o un bloque específico de una reserva. Para obtener el nombre de la reserva o los bloques disponibles, consulta Ver la capacidad reservada. En función de tus requisitos de colocación de instancias, elige una de las siguientes opciones:
    • Para crear la instancia en cualquier bloque, sigue estos pasos:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Además, para crear varias instancias en el mismo bloque, aplica la misma política de emplazamiento compacto que especifique una colocación de bloques (maxDistance=2) al crear cada instancia. A continuación, Compute Engine aplica la política a la reserva y crea instancias en el mismo bloque.

    • Para crear la instancia en un bloque específico, sigue estos pasos:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: indica si Compute Engine detiene (STOP) o elimina (DELETE) la VM al final del periodo de reserva.

Spot

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "scheduling":
  {
    "provisioningModel": "SPOT",
    "instanceTerminationAction": "TERMINATION_ACTION"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que quieres crear la VM.
  • ZONE: la zona en la que está disponible el tipo de máquina que quieres usar. Para obtener información sobre las regiones, consulta Disponibilidad de GPUs por regiones y zonas.
  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM. Para obtener más información, consulta Tipos de máquinas con GPU.
  • VM_NAME: el nombre de la VM.
  • DISK_SIZE: tamaño del disco de arranque en GB.
  • IMAGE_PROJECT: el ID de proyecto de la imagen del SO.
  • IMAGE_FAMILY: la familia de imágenes del SO que quieres usar. Para ver una lista de los sistemas operativos compatibles, consulta Detalles del sistema operativo.
  • NETWORK_PROJECT_ID: el ID de proyecto de la red.
  • GVNIC_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes estándar que usan gVNICs.
  • REGION: la región de la subred.
  • RDMA_NAME_PREFIX: el prefijo de nombre que especificaste al crear las redes VPC y las subredes que usan NICs RDMA.
  • TERMINATION_ACTION: la acción que se debe llevar a cabo cuando Compute Engine desalojo la instancia, ya sea STOP (valor predeterminado) o DELETE.

Preparar la instancia para usarla

Para preparar una instancia que tenga GPUs conectadas para su uso, sigue estos pasos:

  1. Para que una instancia A4 o A3 Ultra pueda usar las GPUs que tiene conectadas, debe tener instalados los controladores de GPU. A menos que la imagen de la instancia ya incluya los controladores de GPU necesarios, instala los controladores de GPU.

  2. Si has creado una VM de Spot en la sección anterior, sigue estos pasos:

Siguientes pasos