Crie um MIG com VMs GPU


Este documento descreve como criar um grupo gerenciado de instâncias (MIG) com instâncias de máquina virtual (VM) que possuem GPUs anexadas. Ele descreve como adicionar VMs GPU de uma só vez no grupo usando solicitações de redimensionamento . Para criar uma solicitação de redimensionamento em um MIG que possa usar os recursos e serviços disponíveis no Cluster Director, consulte Criar um MIG e uma solicitação de redimensionamento na documentação do AI Hypercomputer.

Usar uma solicitação de redimensionamento melhora a obtenção de VMs de GPU em um MIG. Na solicitação, especifique o número de VMs de GPU e a duração pela qual você deseja executar essas VMs. O Dynamic Workload Scheduler (DWS) , o mecanismo subjacente do programador, programa solicitações de redimensionamento criadas no Compute Engine com base nas durações solicitadas e na disponibilidade de recursos. Quando os recursos ficam disponíveis, o MIG cria automaticamente as VMs.

Se o trabalho em execução nessas VMs terminar antes da duração solicitada, você poderá excluir essas VMs. Caso contrário, o MIG excluirá automaticamente as VMs quando a duração terminar.

Você também pode ler sobre outros cenários básicos para criar um MIG .

Antes de começar

  • Para garantir que você tenha cota de GPU suficiente para os recursos solicitados, verifique sua cota de GPU .
  • Para entender o consumo de cotas, leia VMs GPU e cotas de alocação preemptiva .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Limitações

Revise as limitações para criar uma solicitação de redimensionamento em um MIG.

Crie um MIG e adicione VMs GPU de uma só vez

Para criar um MIG e adicionar VMs GPU de uma só vez no grupo, faça o seguinte:

  1. Crie um modelo de instância , necessário para criar um MIG. O MIG cria cada VM do grupo com base no modelo de instância. No modelo, especifique a configuração para VMs GPU e configurações adicionais necessárias para usar solicitações de redimensionamento.

    Para obter mais informações sobre modelos de instância, consulte Sobre modelos de instância .

  2. Crie um MIG e uma solicitação de redimensionamento para adicionar VMs de GPU de uma só vez.

Crie um modelo de instância

Crie um modelo de instância conforme descrito nesta seção e use-o para criar um MIG .

Console

  1. Acesse a página Modelos de instância .

    Vá para modelos de instância

  2. Clique em Criar modelo de instância .

  3. No campo Nome , insira um nome para o modelo de instância.

  4. Na seção Configuração da máquina , faça o seguinte:

    1. Clique na guia GPUs .
    2. Na lista de tipos de GPU , selecione o tipo de GPU.
    3. Na lista Número de GPUs , selecione o número de GPUs.
    4. Na lista Tipo de máquina , selecione um tipo de máquina.
  5. Opcional: Para alterar o tipo ou imagem do disco de inicialização do valor padrão, na seção Disco de inicialização , clique em Alterar . Em seguida, siga as instruções para alterar o disco de inicialização.

  6. Expanda a seção Opções avançadas e faça o seguinte:

    1. Expanda a seção Gerenciamento .
    2. Na lista Reservas , selecione Não usar .
  7. Clique em Criar .

gcloud

Crie um modelo de instância usando o comando instance-templates create .

O comando a seguir cria um modelo de instância global baseado em uma imagem 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

Substitua o seguinte:

  • INSTANCE_TEMPLATE_NAME : o nome do modelo de instância.
  • MACHINE_TYPE : um tipo de máquina que suporta GPUs . Se você especificar um tipo de máquina N1, inclua o sinalizador --accelerator para especificar o número e o tipo de GPUs a serem anexadas às suas VMs.

DESCANSAR

Crie um modelo de instância fazendo uma solicitação POST para o método instanceTemplates.insert .

A solicitação a seguir cria um modelo de instância global baseado em uma imagem de VM de Deep Learning.

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"
    }
  }
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto no qual deseja criar o MIG.
  • INSTANCE_TEMPLATE_NAME : o nome do modelo de instância.
  • MACHINE_TYPE : um tipo de máquina que suporta GPUs . Se você especificar um tipo de máquina N1, inclua o campo guestAccelerators para especificar o número e o tipo de GPUs a serem anexadas às suas VMs.

Crie um MIG e adicione VMs GPU de uma só vez

Crie um MIG conforme descrito nesta seção. Para usar uma solicitação de redimensionamento no MIG, você não deve configurar o escalonamento automático e deve desativar os reparos .

Console

  1. Acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique em Criar grupo de instâncias .

  3. Insira os seguintes campos:

    1. Nome : Digite um nome para o grupo.
    2. Modelo de instância : selecione o modelo de instância que você configurou na seção anterior.
    3. Na seção Localização :
      1. Selecione Zona única .
      2. Nas listas Região e Zona , selecione o local onde deseja criar o grupo.

    O campo Número de instâncias será habilitado para edição depois que você excluir a configuração de escalonamento automático e desativar os reparos nas próximas etapas.

  4. Exclua a configuração de escalonamento automático da seguinte maneira:

    1. Na seção Escalonamento automático , clique na lista Modo de escalonamento automático e clique em Excluir configuração de escalonamento automático .
    2. Na configuração Excluir escalonamento automático? caixa de diálogo, clique em Excluir .
  5. Desligue os reparos no MIG da seguinte forma:

    Na seção Ciclo de vida da instância de VM , defina o campo Ação padrão em caso de falha como Nenhuma ação .

  6. Especifique o número de VMs GPU e a duração da execução para criar uma solicitação de redimensionamento:

    1. No campo Número de instâncias , insira o número de VMs GPU que você deseja criar de uma só vez.

      O campo número de instâncias na página Criar grupo de instâncias.

    2. Marque a caixa de seleção Usar solicitação de redimensionamento para criar VMs de uma só vez . Os campos para inserir a duração da execução aparecem.

    3. No campo Duração de execução solicitada e na lista Unidade , especifique a duração de execução das VMs de GPU. A duração deve ser entre 1 hora e 7 dias.

  7. Clique em Criar .

gcloud

  1. Crie um MIG zonal usando o 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. No MIG, crie uma solicitação de redimensionamento usando o comando instance-groups managed resize-requests create . Especifique o número de VMs de GPU que você deseja e a duração pela qual deseja executar essas 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
    

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG.
  • INSTANCE_TEMPLATE_NAME : o nome do modelo de instância para VMs GPU.
  • ZONE : uma das zonas disponíveis para o Compute Engine.
  • RESIZE_REQUEST_NAME : o nome da solicitação de redimensionamento.
  • COUNT : o número de VMs a serem adicionadas de uma só vez no grupo.
  • RUN_DURATION : a duração que você deseja que as VMs solicitadas sejam executadas. O valor deve ser formatado como o número de dias, horas, minutos ou segundos seguido por d , h , m e s respectivamente. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para 1 dia, 2 horas, 3 minutos e 4 segundos. O valor deve estar entre 10 minutos e 7 dias.

DESCANSAR

  1. Crie um MIG zonal fazendo uma solicitação POST para o 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. No MIG, crie uma solicitação de redimensionamento fazendo uma solicitação POST para o método instanceGroupManagerResizeRequests.insert . No corpo da solicitação, especifique o número de VMs de GPU que você deseja criar de uma só vez e a duração da execução dessas 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"
     }
    }
    

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto no qual deseja criar o MIG.
  • INSTANCE_GROUP_NAME : o nome do MIG.
  • INSTANCE_TEMPLATE_NAME : o nome do modelo de instância para VMs GPU.
  • ZONE : uma das zonas disponíveis para o Compute Engine.
  • RESIZE_REQUEST_NAME : o nome da solicitação de redimensionamento.
  • COUNT : o número de VMs a serem adicionadas de uma só vez no grupo.
  • RUN_DURATION : a duração, em segundos, que você deseja que as VMs solicitadas sejam executadas antes que o MIG as exclua automaticamente. O valor deve estar entre 600 , que é 600 segundos (10 minutos), e 604800 , que é 604.800 segundos (7 dias).

A solicitação de redimensionamento criada permanece no estado ACCEPTED até que o MIG crie todas as VMs de GPU solicitadas. Depois que todas as VMs GPU forem criadas no grupo, o estado da solicitação será alterado para SUCCEEDED .

O que vem a seguir