Crea un MIG con VMs de GPU


En este documento, se describe cómo crear un grupo de instancias administrado (MIG) con instancias de máquina virtual (VM) que tengan GPU conectadas. En él, se describe cómo agregar VMs de GPU de una sola vez en el grupo con solicitudes de cambio de tamaño.

El uso de una solicitud de cambio de tamaño mejora la capacidad de obtención de las VMs de GPU en un MIG. En la solicitud, especifica la cantidad de VMs de GPU y la duración para la que deseas ejecutar esas VMs. El programador dinámico de cargas de trabajo (DWS), el mecanismo de programador subyacente, programa las solicitudes de cambio de tamaño creadas en Compute Engine según las duraciones solicitadas y la disponibilidad de recursos. Cuando los recursos estén disponibles, el MIG creará automáticamente las VMs.

Si el trabajo que se ejecuta en estas VMs finaliza antes de la duración solicitada, puedes borrar esas VMs. De lo contrario, el MIG borra de forma automática las VMs cuando finaliza la duración.

También puedes leer sobre otras situaciones básicas para crear un MIG.

Antes de comenzar

  • A fin de asegurarte de que tienes suficiente cuota de GPU para los recursos que solicitas, verifica tu cuota de GPU.
  • Para comprender el consumo de cuotas, lee VMs de GPU y cuotas de asignación interrumpibles.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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 proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Limitaciones

Revisa las limitaciones para crear una solicitud de cambio de tamaño en un MIG.

Crea un MIG y agrega VMs de GPU de una sola vez

Para crear un MIG y agregar todas las VMs de GPU de una sola vez en el grupo, haz lo siguiente:

  1. Crea una plantilla de instancias, que es necesaria para crear un MIG. El MIG crea cada VM del grupo según la plantilla de instancias. En la plantilla, especifica la configuración para las VMs de GPU y las opciones de configuración adicionales necesarias a fin de usar solicitudes de cambio de tamaño.

    Para obtener más información sobre las plantillas de instancias, consulta Acerca de las plantillas de instancias.

  2. Crea un MIG y una solicitud de cambio de tamaño para agregar VMs de GPU de una sola vez.

Crea una plantilla de instancias

Crea una plantilla de instancias como se describe en esta sección y, luego, úsala para crear un MIG.

Console

  1. Ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancias.

  3. En el campo Nombre, ingresa un nombre para la plantilla de instancias.

  4. En la sección Configuración de la máquina, haz lo siguiente:

    1. Haz clic en la pestaña GPU.
    2. En la lista Tipo de GPU, selecciona el tipo de GPU.
    3. En la lista Cantidad de GPU, elige la cantidad.
    4. En la sección Tipo de máquina, selecciona un tipo de máquina.
  5. Opcional: Para cambiar el valor o la imagen de disco de arranque predeterminados, en la sección Disco de arranque, haz clic en Cambiar. Luego, sigue las instrucciones para cambiar el disco de arranque.

  6. Expande la sección Opciones avanzadas y sigue estos pasos:

    1. Expande la sección Administración.
    2. En la lista Reservas, selecciona No usar.
  7. Haz clic en Crear.

gcloud

Crea una plantilla de instancias con el comando instance-templates create.

Con el siguiente comando, se crea una plantilla de instancias global basada en una imagen de VM de Deep Learning.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-project=deeplearning-platform-release \
    --image-family=common-cu121 \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.
  • MACHINE_TYPE: un tipo de máquina que admite GPU. Si especificas un tipo de máquina N1, incluye la marca --accelerator para especificar la cantidad y el tipo de GPU que conectarás a las VMs.

REST

Crea una plantilla de instancias mediante una solicitud POST al método instanceTemplates.insert.

En la siguiente solicitud, se crea una plantilla de instancias global basada en una imagen de Deep Learning VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/deeplearning-platform-release/global/images/family/common-cu121"
        }
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que deseas crear el MIG.
  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.
  • MACHINE_TYPE: un tipo de máquina que admite GPU. Si especificas un tipo de máquina N1, incluye el campo guestAccelerators para especificar la cantidad y el tipo de GPU que conectarás a las VMs.

Crea un MIG y agrega VMs de GPU de una sola vez

Crea un MIG como se describe en esta sección. Para usar una solicitud de cambio de tamaño en el MIG, no debes configurar el ajuste de escala automático y debes desactivar las reparaciones.

Console

  1. Ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. Haga clic en Crear grupo de instancias.

  3. Ingresa los siguientes campos:

    1. Nombre: Ingresa un nombre para el grupo.
    2. Plantilla de instancias: Selecciona la plantilla de instancias que configuraste en la sección anterior.
    3. En la sección Ubicación:
      1. Selecciona Zona única.
      2. En las listas Región y Zona, selecciona la ubicación en la que deseas crear el grupo.

    El campo Cantidad de instancias se habilitará para su edición después de que borres la configuración del ajuste de escala automático y desactives las reparaciones en los siguientes pasos.

  4. Borra la configuración del ajuste de escala automático de la siguiente manera:

    1. En la sección Ajuste de escala automático, haz clic en la lista Modo de ajuste de escala automático y, luego, en Borrar configuración del ajuste de escala automático.
    2. En el cuadro de diálogo ¿Quieres borrar la configuración del ajuste de escala automático?, haz clic en Borrar.
  5. Desactiva las reparaciones en el MIG de la siguiente manera:

    En la sección Ciclo de vida de la instancia de VM, establece el campo Acción predeterminada en caso de error en Sin acción.

  6. Especifica la cantidad de VMs de GPU y la duración de la ejecución para crear una solicitud de cambio de tamaño:

    1. En el campo Cantidad de instancias, ingresa la cantidad de VMs de GPU que deseas crear a la vez.

      El campo Cantidad de instancias en la página Crear grupo de instancias.

    2. Selecciona la casilla de verificación Usa la solicitud de cambio de tamaño para crear VMs de una sola vez. Aparecerán los campos para ingresar la duración de la ejecución.

    3. En el campo Duración de ejecución solicitada y la lista Unidad, especifica la duración de ejecución de las VMs de GPU. La duración debe ser de entre 1 hora y 7 días.

  7. Haz clic en Crear.

gcloud

  1. Crea un MIG zonal con el comando instance-groups managed create.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_NAME \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. En el MIG, crea una solicitud de cambio de tamaño con el comando instance-groups managed resize-requests create. Especifica la cantidad de VM de GPU que deseas y la duración de la ejecución de esas VMs.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

Reemplaza lo siguiente:

  • INSTANCE_GROUP_NAME: Es el nombre del MIG.
  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias para las VMs con GPU.
  • ZONE: Una de las zonas disponibles para Compute Engine.
  • RESIZE_REQUEST_NAME: Es el nombre de la solicitud de cambio de tamaño.
  • COUNT: la cantidad de VMs que se agregarán a la vez en el grupo.
  • RUN_DURATION: la duración de la que deseas que se ejecuten las VMs. El valor debe tener el formato de la cantidad de días, horas, minutos o segundos, seguidos de d, h, m y s, respectivamente. Por ejemplo, especifica 30m para 30 minutos o 1d2h3m4s para 1 día, 2 horas, 3 minutos y 4 segundos. El valor debe ser de entre 10 minutos y 7 días.

REST

  1. Para crear un MIG zonal, realiza una solicitud POST al método instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. En el MIG, crea una solicitud de cambio de tamaño mediante una solicitud POST al método instanceGroupManagerResizeRequests.insert. En el cuerpo de la solicitud, especifica la cantidad de VM de GPU que deseas crear a la vez y la duración por la que deseas ejecutar esas VMs.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT,
     "requestedRunDuration": {
       "seconds": "RUN_DURATION"
     }
    }
    

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que deseas crear el MIG.
  • INSTANCE_GROUP_NAME: Es el nombre del MIG.
  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias para las VMs con GPU.
  • ZONE: Una de las zonas disponibles para Compute Engine.
  • RESIZE_REQUEST_NAME: Es el nombre de la solicitud de cambio de tamaño.
  • COUNT: la cantidad de VMs que se agregarán a la vez en el grupo.
  • RUN_DURATION: el tiempo, en segundos, por el que deseas que se ejecuten las VMs solicitadas antes de que el MIG las borre de forma automática. El valor debe estar entre 600, que es 600 segundos (10 minutos), y 604800, que es 604,800 segundos (7 días).

La solicitud de cambio de tamaño que crees permanecerá en el estado ACCEPTED hasta que el MIG cree todas las VMs de GPU solicitadas. Después de crear todas las VMs de GPU en el grupo, el estado de la solicitud cambia a SUCCEEDED.

¿Qué sigue?