Crie uma instância A3 Ultra ou A4


Este documento descreve como criar instâncias com GPUs anexadas a partir das séries de máquinas A3 Ultra ou A4. Para saber mais sobre como criar instâncias com GPUs anexadas, consulte o resumo da criação de uma instância com GPUs anexadas.

Antes de começar

  • Para rever as limitações e os passos de pré-requisitos adicionais para criar uma instância com GPUs anexadas, como selecionar uma imagem do SO ou verificar a quota de GPUs, consulte a vista geral da criação de uma instância com GPUs anexadas.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se 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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Funções necessárias

Para receber as autorizações de que precisa para criar instâncias, peça ao seu administrador para lhe conceder a função Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) do IAM no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para criar instâncias. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar instâncias:

  • compute.instances.create no projeto
  • Para usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
  • Para usar um instantâneo para criar a VM: compute.snapshots.useReadOnly no instantâneo
  • Para usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
  • Para especificar uma sub-rede para a sua VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
  • Para especificar um endereço IP estático para a VM: compute.addresses.use no projeto
  • Para atribuir um endereço IP externo à VM quando usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
  • Para atribuir uma rede antiga à VM: compute.networks.use no projeto
  • Para atribuir um endereço IP externo à VM quando usar uma rede antiga: compute.networks.useExternalIp no projeto
  • Para definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
  • Para definir etiquetas para a VM: compute.instances.setTags na VM
  • Para definir etiquetas para a VM: compute.instances.setLabels na VM
  • Para definir uma conta de serviço para a VM usar: compute.instances.setServiceAccount na VM
  • Para criar um novo disco para a VM: compute.disks.create no projeto
  • Para anexar um disco existente no modo de leitura ou leitura/escrita: compute.disks.use no disco
  • Para anexar um disco existente no modo de leitura: compute.disks.useReadOnly no disco

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Determine como criar instâncias A3 Ultra ou A4

As instâncias A3 Ultra ou A4 estão disponíveis através das seguintes opções de criação, que têm procedimentos de criação, disponibilidade de recursos e preços diferentes. Identifique a opção que quer usar com base na sua carga de trabalho.

  • Se precisar de executar cargas de trabalho de IA e ML de longa duração, como a inferência e a preparação de modelos grandes, que requerem a latência mais baixa, crie VMs ou clusters que usem as funcionalidades e os serviços disponíveis no Cluster Director. Com o Cluster Director, pode reservar máquinas densamente alocadas que oferecem agendamento com reconhecimento da topologia, bem como monitorização e manutenção melhoradas. Para saber mais sobre o Cluster Director, consulte o artigo Cluster Director na documentação do AI Hypercomputer.

    Para obter instruções sobre como criar instâncias A3 Ultra ou A4, consulte o artigo Vista geral da criação de VMs e clusters na documentação do AI Hypercomputer.

  • Se precisar de cargas de trabalho de IA e ML de duração mais curta, escolha uma das seguintes opções:

    • Se as suas cargas de trabalho tiverem de ser executadas durante um máximo de 90 dias com uma latência de rede mínima, reserve máquinas densamente alocadas para uma data futura através de pedidos de reserva futuros no modo de calendário. No início do período de reserva, pode criar instâncias A3 Ultra ou A4 usando a capacidade reservada. No final do período de reserva, o Compute Engine elimina a reserva e todas as VMs que a consomem.

      Para obter instruções sobre como criar instâncias A3 Ultra ou A4 que usam uma reserva, consulte o artigo Crie uma instância A3 Ultra ou A4 neste documento.

    • Se as suas cargas de trabalho puderem ser iniciadas em qualquer altura e precisarem de um número exato de VMs para serem iniciadas, use pedidos de redimensionamento num grupo de instâncias gerido (MIG). Com os pedidos de redimensionamento do MIG, pede ao Compute Engine para adicionar VMs de uma só vez ao MIG sempre que os recursos estiverem disponíveis. Estas VMs podem ser executadas durante um máximo de sete dias. Uma vez que os recursos são fornecidos a partir de um conjunto seguro, tem maiores probabilidades de obter GPUs do que se fizesse um pedido a pedido.

      Para mais informações sobre pedidos de redimensionamento de MIGs, consulte o artigo Acerca dos pedidos de redimensionamento num MIG.

    • Se as suas cargas de trabalho tolerarem interrupções de disponibilidade, pode receber descontos significativos usando VMs do Spot. Pode criar e eliminar VMs de capacidade instantânea conforme necessário. No entanto, as VMs do Spot são recursos finitos e o Compute Engine pode antecipar (parar ou eliminar automaticamente) VMs do Spot em qualquer altura para reclamar capacidade. Para saber mais sobre as VMs do Spot, consulte o artigo VMs do Spot.

      Para obter instruções sobre como criar instâncias A3 Ultra ou A4 através de VMs de capacidade instantânea, consulte o artigo Crie uma instância A3 Ultra ou A4 neste documento.

Crie uma instância A3 Ultra ou A4

Para criar uma instância A3 Ultra ou A4 através de uma reserva ou de VMs Spot, conclua os seguintes passos:

  1. Crie redes VPC

  2. Crie a instância

  3. Prepare a instância para utilização

Crie redes VPC

Para configurar a rede para o tipo de máquina A4 ou A3 Ultra, crie três redes VPC para as seguintes interfaces de rede:

  • 2 redes VPC normais para as interfaces de rede (NIC) gVNIC. Estes são usados para a comunicação entre anfitriões.
  • É necessária 1 rede VPC com o perfil de rede RoCE para as NICs CX-7. A rede VPC RoCE tem de ter 8 sub-redes, uma sub-rede para cada NIC CX-7. Estas NICs usam RDMA over Converged Ethernet (RoCE), o que oferece a comunicação de elevada largura de banda e baixa latência essencial para a comunicação entre GPUs.

Para mais informações sobre a disposição da NIC, consulte o artigo Reveja a largura de banda da rede e a disposição da NIC.

Crie as redes manualmente seguindo os guias de instruções ou automaticamente usando o script fornecido.

Guias de instruções

Para criar as redes, pode usar as seguintes instruções:

Para estas redes de VPC, recomendamos que defina a unidade de transmissão máxima (MTU) para um valor superior. Para o tipo de máquina A4 ou A3 Ultra, a MTU recomendada é de 8896 bytes. Para rever as definições de MTU recomendadas para outros tipos de máquinas com GPU, consulte o artigo Definições de MTU para tipos de máquinas com GPU.

Script

Para criar as redes, siga estes passos.

Para estas redes de VPC, recomendamos que defina a unidade de transmissão máxima (MTU) para um valor superior. Para o tipo de máquina A4 ou A3 Ultra, a MTU recomendada é de 8896 bytes. Para rever as definições de MTU recomendadas para outros tipos de máquinas com GPU, consulte o artigo Definições de MTU para tipos de máquinas com GPU.

  1. Use o seguinte script para criar redes VPC para as gVNICs e as NICs CX-7.

      
        #!/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
    
      

    Substitua o seguinte:

    • GVNIC_NAME_PREFIX: o prefixo do nome personalizado a usar para as redes e sub-redes de VPC normais para as gVNICs.
    • RDMA_NAME_PREFIX: o prefixo do nome personalizado a usar para a rede VPC e as sub-redes RoCE para as NICs CX-7.
    • ZONE: especifique uma zona na qual o tipo de máquina que quer usar está disponível, como us-central1-a. Para informações sobre regiões, consulte o artigo Disponibilidade de GPUs por regiões e zonas.
    • REGION: a região onde quer criar as sub-redes. Esta região tem de corresponder à zona especificada. Por exemplo, se a sua zona for us-central1-a, a sua região é us-central1.
    • IP_RANGE: o intervalo de IP a usar para as regras de firewall SSH.
  2. Opcional: para verificar se os recursos da rede VPC foram criados com êxito, verifique as definições de rede na Google Cloud consola:
    1. Na Google Cloud consola, aceda à página Redes VPC.

      Aceda a redes de VPC

    2. Pesquise na lista as redes que criou no passo anterior.
    3. Para ver as sub-redes, as regras da firewall e outras definições de rede, clique no nome da rede.

Crie a instância

Para criar uma instância A3 Ultra ou A4, selecione um dos seguintes métodos:

Crie uma instância que use uma reserva

Para criar uma instância que use uma reserva, use uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Criar uma instância.

    Aceda a Criar uma instância

    É apresentado o ecrã Criar uma instância, que mostra o painel Configuração da máquina.

  2. No painel Configuração do computador, conclua os seguintes passos:

    1. Especifique um nome para a instância. Consulte a Convenção de nomenclatura de recursos.

    2. Selecione a Região e a Zona onde tem capacidade reservada.

    3. Clique no separador GPUs e, de seguida, conclua os seguintes passos:

      1. Na lista Tipo de GPU, selecione o tipo de GPU.

        • Para instâncias A4, selecione NVIDIA B200.

        • Para instâncias A3 Ultra, selecione NVIDIA H200 141 GB.

      2. Na lista Número de GPUs, selecione 8.

  3. No menu de navegação, clique em SO e armazenamento. No painel SO e armazenamento apresentado, conclua os seguintes passos:

    1. Clique em Alterar. É apresentado o painel Configuração do disco de arranque.

    2. No separador Imagens públicas, selecione uma imagem recomendada. Para ver uma lista de imagens recomendadas, consulte Sistemas operativos.

    3. Para confirmar as opções do disco de arranque, clique em Selecionar.

  4. Para criar uma instância com várias NICs, conclua os seguintes passos. Caso contrário, para criar uma instância com uma única NIC, ignore estes passos.

    • No menu de navegação, clique em Rede. No painel Rede apresentado, conclua os seguintes passos:

      1. Na secção Interfaces de rede, conclua os seguintes passos:

      2. Elimine a interface de rede predefinida. Para eliminar a interface, clique em Eliminar.

      3. Clique em Adicionar uma interface de rede. Use esta opção para adicionar interfaces de rede que se associam às redes VPC que criou na secção anterior. Quando adicionar as interfaces de rede, lembre-se do seguinte:

        • Para uma interface de rede usada para comunicação de anfitrião para anfitrião, selecione uma rede de VPC normal e uma sub-rede nas listas Rede e Sub-rede e defina a lista Placa de rede como gVNIC.

        • Para uma interface de rede usada para comunicação de GPU para GPU, selecione a rede VPC e a sub-rede RoCE nas listas Rede e Sub-rede e defina a lista Placa de interface de rede como MRDMA para estas interfaces de rede.

  5. No menu de navegação, clique em Avançadas. No painel Avançadas apresentado, conclua os seguintes passos:

    1. Na secção Reservas, selecione Escolher uma reserva e, de seguida, clique em Escolher reserva. Esta ação abre um painel com uma lista de reservas disponíveis na zona selecionada. Na lista de reservas, conclua os seguintes passos:

      1. Selecione a reserva que quer usar para a VM. Também pode selecionar um bloco específico na reserva.

      2. Clique em Escolher.

    2. Na secção Modelo de aprovisionamento, expanda a secção Definições avançadas do modelo de aprovisionamento de VMs.

    3. Na lista No encerramento da VM, selecione Parar (predefinição) ou Eliminar.

  6. Para criar e iniciar a instância, clique em Criar.

gcloud

Para criar a VM, use o comando gcloud compute instances create.

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

Substitua o seguinte:

  • VM_NAME: o nome da VM.
  • MACHINE_TYPE: o tipo de máquina a usar para a VM. Para mais informações, consulte Tipos de máquinas com GPU.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Detalhes do sistema operativo.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • ZONE: a zona na qual o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte o artigo Disponibilidade de GPUs por regiões e zonas.
  • DISK_SIZE: o tamanho do disco de arranque em GB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes padrão que usam gVNICs.
  • RDMA_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes que usam NICs RDMA.
  • RESERVATION: o nome da reserva ou um bloco específico numa reserva. Para obter o nome da reserva ou os blocos disponíveis, consulte o artigo Veja a capacidade reservada. Com base no seu requisito de posicionamento de instâncias, escolha uma das seguintes opções:
    • Para criar a instância em qualquer bloco:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Além disso, para criar várias instâncias no mesmo bloco, aplique a mesma política de posicionamento compacto que especifica uma colocação conjunta de blocos (maxDistance=2) quando criar cada instância. Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

    • Para criar a instância num bloco específico:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: se o Compute Engine para (STOP) ou elimina (DELETE) a VM no final do período de reserva.

REST

Para criar a VM, faça um pedido POST ao método instances.insert.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer criar a VM.
  • ZONE: a zona na qual o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte o artigo Disponibilidade de GPUs por regiões e zonas.
  • MACHINE_TYPE: o tipo de máquina a usar para a VM. Para mais informações, consulte Tipos de máquinas com GPU.
  • VM_NAME: o nome da VM.
  • DISK_SIZE: o tamanho do disco de arranque em GB.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Detalhes do sistema operativo.
  • NETWORK_PROJECT_ID: o ID do projeto da rede.
  • GVNIC_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes padrão que usam gVNICs.
  • REGION: a região da sub-rede.
  • RDMA_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes que usam NICs RDMA.
  • RESERVATION: o nome da reserva ou um bloco específico numa reserva. Para obter o nome da reserva ou os blocos disponíveis, consulte o artigo Veja a capacidade reservada. Com base no seu requisito de posicionamento de instâncias, escolha uma das seguintes opções:
    • Para criar a instância em qualquer bloco:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Além disso, para criar várias instâncias no mesmo bloco, aplique a mesma política de posicionamento compacto que especifica uma colocação conjunta de blocos (maxDistance=2) quando criar cada instância. Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

    • Para criar a instância num bloco específico:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: se o Compute Engine para (STOP) ou elimina (DELETE) a VM no final do período de reserva.

Crie uma VM do Spot

Para criar a VM do Spot, use uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Criar uma instância.

    Aceda a Criar uma instância

    É apresentado o ecrã Criar uma instância, que mostra o painel Configuração da máquina.

  2. No painel Configuração do computador, conclua os seguintes passos:

    1. Especifique um nome para a instância. Consulte a Convenção de nomenclatura de recursos.

    2. Selecione a região e a zona onde quer criar uma VM. Para verificar em que regiões e zonas as GPUs estão disponíveis, consulte o artigo Regiões e zonas de GPUs.

    3. Clique no separador GPUs e, de seguida, conclua os seguintes passos:

      1. Na lista Tipo de GPU, selecione o tipo de GPU.

        • Para instâncias A4, selecione NVIDIA B200.

        • Para instâncias A3 Ultra, selecione NVIDIA H200 141 GB.

      2. Na lista Número de GPUs, selecione 8.

  3. No menu de navegação, clique em SO e armazenamento. No painel SO e armazenamento apresentado, conclua os seguintes passos:

    1. Clique em Alterar. É apresentado o painel Configuração do disco de arranque.

    2. No separador Imagens públicas, selecione uma imagem recomendada. Para ver uma lista de imagens recomendadas, consulte Sistemas operativos.

    3. Para confirmar as opções do disco de arranque, clique em Selecionar.

  4. Para criar uma instância com várias NICs, conclua os seguintes passos. Caso contrário, para criar uma instância com uma única NIC, ignore estes passos.

    • No menu de navegação, clique em Rede. No painel Rede apresentado, conclua os seguintes passos:

      1. Na secção Interfaces de rede, conclua os seguintes passos:

      2. Elimine a interface de rede predefinida. Para eliminar a interface, clique em Eliminar.

      3. Clique em Adicionar uma interface de rede. Use esta opção para adicionar interfaces de rede que se associam às redes VPC que criou na secção anterior. Quando adicionar as interfaces de rede, lembre-se do seguinte:

        • Para uma interface de rede usada para comunicação de anfitrião para anfitrião, selecione uma rede de VPC normal e uma sub-rede nas listas Rede e Sub-rede e defina a lista Placa de rede como gVNIC.

        • Para uma interface de rede usada para comunicação de GPU para GPU, selecione a rede VPC e a sub-rede RoCE nas listas Rede e Sub-rede e defina a lista Placa de interface de rede como MRDMA para estas interfaces de rede.

  5. No menu de navegação, clique em Avançadas. No painel Avançadas apresentado, conclua os seguintes passos:

    1. Na secção Modelo de aprovisionamento, selecione Spot na lista Modelo de aprovisionamento de VMs.

    2. Opcional: para especificar a ação a tomar quando o Compute Engine preempta a instância, conclua os seguintes passos:

      1. Expanda a secção Definições avançadas do modelo de aprovisionamento de VMs.

      2. Na lista Ao terminar a VM, selecione Parar ou Eliminar.

  6. Para criar e iniciar a instância, clique em Criar.

gcloud

Para criar a VM, use o comando gcloud compute instances create.

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

Substitua o seguinte:

  • VM_NAME: o nome da VM.
  • MACHINE_TYPE: o tipo de máquina a usar para a VM. Para mais informações, consulte Tipos de máquinas com GPU.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Detalhes do sistema operativo.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • ZONE: a zona na qual o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte o artigo Disponibilidade de GPUs por regiões e zonas.
  • DISK_SIZE: o tamanho do disco de arranque em GB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes padrão que usam gVNICs.
  • RDMA_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes que usam NICs RDMA.
  • TERMINATION_ACTION: a ação a realizar quando o Compute Engine preempts a instância, STOP (predefinição) ou DELETE.

REST

Para criar a VM, faça um pedido POST ao método instances.insert.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer criar a VM.
  • ZONE: a zona na qual o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte o artigo Disponibilidade de GPUs por regiões e zonas.
  • MACHINE_TYPE: o tipo de máquina a usar para a VM. Para mais informações, consulte Tipos de máquinas com GPU.
  • VM_NAME: o nome da VM.
  • DISK_SIZE: o tamanho do disco de arranque em GB.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Detalhes do sistema operativo.
  • NETWORK_PROJECT_ID: o ID do projeto da rede.
  • GVNIC_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes padrão que usam gVNICs.
  • REGION: a região da sub-rede.
  • RDMA_NAME_PREFIX: o prefixo do nome que especificou quando criou as redes VPC e as sub-redes que usam NICs RDMA.
  • TERMINATION_ACTION: a ação a realizar quando o Compute Engine preempts a instância, STOP (predefinição) ou DELETE.

Prepare a instância para utilização

Para preparar uma instância com GPUs anexadas para utilização, conclua os seguintes passos:

  1. Para permitir que uma instância A4 ou A3 Ultra use as GPUs anexadas, a instância tem de ter os controladores de GPU instalados. A menos que a imagem na instância já inclua os controladores da GPU necessários, instale os controladores da GPU.

  2. Se criou uma VM de Spot na secção anterior, conclua os seguintes passos:

O que se segue?