Crie uma instância A3 Ultra ou A4


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

Antes de começar

  • Para revisar as limitações e etapas adicionais de pré-requisitos para a criação de instâncias com GPUs anexadas, como selecionar uma imagem do sistema operacional e verificar a cota de GPU, consulte Visão geral da criação de uma instância com GPUs anexadas .
  • 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.

Antes de começar

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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Set a default region and zone.

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.

Funções obrigatórias

Para obter as permissões necessárias para criar instâncias, peça ao administrador para conceder a você a função do IAM Compute Instance Admin (v1) ( roles/compute.instanceAdmin.v1 ) no projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .

Esta função predefinida contém as permissões necessárias para criar instâncias. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :

Permissões necessárias

As seguintes permissões são necessárias 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 atribuir uma rede legada à VM: compute.networks.use no projeto
  • Para especificar um endereço IP estático para a VM: compute.addresses.use no projeto
  • Para atribuir um endereço IP externo à VM ao usar uma rede legada: compute.networks.useExternalIp no projeto
  • Para especificar uma sub-rede para sua VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
  • Para atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
  • Para definir metadados de instância de VM para a VM: compute.instances.setMetadata no projeto
  • Para definir tags para a VM: compute.instances.setTags na VM
  • Para definir rótulos 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 somente leitura ou leitura-gravação: compute.disks.use no disco
  • Para anexar um disco existente no modo somente leitura: compute.disks.useReadOnly no disco

Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .

Crie uma instância A3 Ultra ou A4

As instâncias A3 Ultra ou A4 estão disponíveis por meio das opções de criação a seguir, cada uma com procedimentos de criação, disponibilidade de recursos e preços diferentes. Identifique qual opção você deseja usar com base na sua carga de trabalho.

  • Se você precisar executar cargas de trabalho de IA e ML de longa duração, como treinamento e inferência de modelos grandes que exigem a latência mais baixa, recomendamos a criação de VMs ou clusters que possam usar os recursos e serviços disponíveis no Cluster Director. Com o Cluster Director, você pode reservar máquinas densamente alocadas que fornecem agendamento com reconhecimento de topologia e monitoramento e manutenção aprimorados dessa capacidade reservada. Para saber mais sobre o Cluster Director, consulte Cluster Director na documentação do AI Hypercomputer.

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

  • Se você precisar executar cargas de trabalho de IA e ML de prioridade mais baixa que sejam tolerantes a interrupções de disponibilidade, poderá obter descontos significativos usando VMs Spot. Embora você possa criar e excluir VMs do Spot conforme necessário, as VMs do Spot são recursos finitos que podem nem sempre estar disponíveis, e o Compute Engine pode interromper (interromper ou excluir automaticamente) VMs do Spot a qualquer momento. Para saber mais sobre VMs spot, consulte VMs spot .

    Para obter instruções sobre como criar instâncias A3 Ultra ou A4 usando VMs Spot, consulte a seção Criar uma instância A3 Ultra ou A4 usando VMs Spot a seguir neste documento.

Crie uma instância A3 Ultra ou A4 usando VMs Spot

Para criar uma instância A3 Ultra ou A4 usando VMs Spot, conclua as etapas nas seções a seguir:

  1. Crie redes VPC .
  2. Crie a VM Spot .
  3. Prepare uma VM Spot com GPUs anexadas para uso .

Criar redes VPC

Com base no tipo de máquina que você deseja usar e no número de interfaces de rede no tipo de máquina, você precisa criar redes de nuvem privada virtual (VPC) da seguinte maneira:

Tipo de máquina Contagem física de NICs * Interfaces de rede Número de redes VPC a serem criadas
a4-highgpu-8g 10
  • 2 interfaces de rede gVNIC usadas para comunicação host a host
  • 1 interface de rede RDMA (conectada a uma rede com 8 sub-redes) para comunicação de GPU para GPU
3
a3-ultragpu-8g 10
  • 2 interfaces de rede gVNIC usadas para comunicação de host para host.
  • 1 interface de rede RDMA (conectada a uma rede com 8 sub-redes) para comunicação de GPU para GPU.
3
* Para obter mais informações sobre a organização da NIC, consulte Revise a largura de banda da rede e a disposição da NIC .
Para obter mais informações sobre as interfaces de rede, consulte Usando perfis de rede Google Virtual NIC e RDMA .

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

Guias de instruções

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

Roteiro

Para criar as redes, você pode usar o seguinte script.

  #!/bin/bash

  # Create standard VPCs (network and subnets) for the gVNICs
  for N in $(seq 0 1); do
    gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
      --subnet-mode=custom

    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
  gcloud compute network-profiles list

  # Create network for CX-7
  gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
    --network-profile=ZONE-vpc-roce \
    --subnet-mode custom

  # 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 a ser usado para redes e sub-redes VPC padrão que usam NICs gVNIC.
  • RDMA_NAME_PREFIX : o prefixo do nome a ser usado para redes VPC e sub-redes que usam NICs RDMA.
  • ZONE : especifique uma zona na qual o tipo de máquina que você deseja usar está disponível. Para obter informações sobre regiões, consulte Regiões e zonas de GPU .
  • REGION : a região onde você deseja criar as redes. Isto deve corresponder à zona especificada. Por exemplo, se a sua zona for europe-west1-b , então a sua região será europe-west1 .
  • IP_RANGE : o intervalo de IP a ser usado para as regras de firewall SSH .

Crie a VM Spot

Para criar a VM Spot, use um dos seguintes métodos:

Console

  1. No console do Google Cloud, acesse a página Criar uma instância .

    Vá para Criar uma instância

    A tela Criar uma instância é exibida e exibe o painel Configuração da máquina .

  2. No painel Configuração da máquina , conclua as seguintes etapas:

    1. Especifique um nome para sua instância. Consulte Convenção de nomenclatura de recursos .
    2. Selecione a região e zona onde deseja reservar capacidade. Veja a lista de regiões e zonas de GPU disponíveis.
    3. Clique na guia GPUs e conclua as etapas a seguir:
      1. Na lista de tipos de GPU , selecione seu tipo de GPU.
        • Para instâncias A4, selecione NVIDIA B200
        • Para instâncias A3 Ultra, selecione NVIDIA H200 141GB
      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 exibido, conclua as seguintes etapas:

    1. Clique em Alterar . O painel de configuração do disco de inicialização é aberto.
    2. Na guia Imagens públicas , selecione uma imagem recomendada. Para obter uma lista de imagens recomendadas, consulte Sistemas operacionais .
    3. Para confirmar as opções do disco de inicialização, clique em Selecionar .
  4. Para criar uma instância multi-NIC, conclua as etapas a seguir. Caso contrário, para criar uma instância de NIC única, ignore estas etapas.

    1. No menu de navegação, clique em Rede . No painel Rede exibido, conclua as seguintes etapas:

      1. Na seção Interfaces de rede , conclua as etapas a seguir:

      2. Exclua a interface de rede padrão. Para excluir a interface, clique em Excluir .

      3. Clique em Adicionar uma interface de rede . Use esta opção para adicionar as redes gVNIC e RDMA que você criou na seção anterior. Ao adicionar as redes, lembre-se do seguinte:

        • Especifique suas redes host nas listas Rede e Sub-rede e defina a lista Placa de interface de rede como gVNIC .
        • Especifique suas redes GPU nas listas Rede e Sub-rede e defina a lista de placas de interface de rede como MRDMA para essas redes.
  5. No menu de navegação, clique em Avançado . No painel Avançado exibido, execute as seguintes etapas:

    1. Na seção Modelo de provisionamento , selecione Spot na lista de modelos de provisionamento de VM .

    2. Opcional: para especificar a ação a ser tomada quando o Compute Engine interromper a instância (interromper (padrão) ou excluir), conclua as seguintes etapas:

      1. Expanda a seção de configurações avançadas do modelo de provisionamento de VM .
      2. Na lista No encerramento da VM , selecione uma opção.
  6. Para criar e iniciar a instância, clique em Criar .

gcloud

Para criar a instância, use o comando gcloud beta compute instances create :

gcloud beta compute instance create INSTANCE_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --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

Substitua o seguinte:

  • INSTANCE_NAME : o nome da instância.
  • MACHINE_TYPE : o tipo de máquina a ser usado para a instância, a3-ultragpu-8g ou a4-highgpu-8g .
  • IMAGE_FAMILY : a família de imagens da imagem do sistema operacional que você deseja usar. Para opções, consulte Detalhes do sistema operacional .
  • IMAGE_PROJECT : o ID do projeto da imagem do sistema operacional.
  • TERMINATION_ACTION : opcional: especifique qual ação tomar quando o Compute Engine interromper a instância, STOP (comportamento padrão) ou DELETE .
  • ZONE : a zona onde você deseja criar a instância. Para opções, consulte Regiões e zonas de GPU .
  • DISK_SIZE : o tamanho do disco de inicialização em GB.

DESCANSAR

Para criar a instância, faça uma solicitação POST ao método instances.insert da seguinte forma:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/
{
  {
    "machineType":"projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
    "name":"INSTANCE_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"
        }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
      },
      {
        "network": "projects/PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
        "nicType": "MRDMA",
        "subnetwork": "projects/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 você deseja criar a instância.
  • ZONE : a zona onde você deseja criar a instância. Para opções, consulte Regiões e zonas de GPU .
  • MACHINE_TYPE : o tipo de máquina a ser usado para a instância, a3-ultragpu-8g ou a4-highgpu-8g .
  • INSTANCE_NAME : o nome da instância.
  • DISK_SIZE : o tamanho do disco de inicialização em GB.
  • IMAGE_PROJECT : o ID do projeto da imagem do sistema operacional.
  • IMAGE_FAMILY : a família de imagens da imagem do sistema operacional que você deseja usar. Para opções, consulte Detalhes do sistema operacional .
  • TERMINATION_ACTION : opcional: especifique qual ação tomar quando o Compute Engine interromper a instância, STOP (comportamento padrão) ou DELETE .

Preparar uma VM Spot com GPUs anexadas para uso

Para preparar uma VM Spot com GPUs anexadas para uso, conclua as seguintes etapas:

  1. Para permitir que uma instância use suas GPUs anexadas, a instância requer drivers de GPU. A menos que você tenha especificado uma imagem que já inclua os drivers de GPU necessários, siga as etapas para Instalar drivers de GPU .
  2. Para preparar uma VM Spot para uso, conclua as seguintes etapas:

O que vem a seguir