Crie uma VM N1 com GPUs anexadas

Este documento explica como criar uma VM com GPUs anexadas e que usa uma família de máquinas N1. Pode usar a maioria dos tipos de máquinas N1, exceto o N1 shared-core.

Antes de começar

  • Para rever passos pré-requisitos adicionais, como selecionar uma imagem do SO e verificar a quota de GPU, reveja o documento de vista geral.
  • 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 necessárias para criar VMs, peça ao seu administrador para lhe conceder a função de IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) 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 VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

As seguintes autorizações são necessárias para criar VMs:

  • 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.

Vista geral

Os seguintes modelos de GPU podem ser anexados a VMs que usam famílias de máquinas N1.

GPUs NVIDIA:

  • NVIDIA T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):

  • Estação de trabalho virtual NVIDIA T4: nvidia-tesla-t4-vws
  • Estação de trabalho virtual NVIDIA P4: nvidia-tesla-p4-vws
  • NVIDIA P100 Virtual Workstation: nvidia-tesla-p100-vws

    Para estas estações de trabalho virtuais, é adicionada automaticamente uma licença da estação de trabalho virtual (vWS) NVIDIA RTX à sua instância.

Crie uma VM com GPUs anexadas

Pode criar uma VM N1 com GPUs anexadas através daGoogle Cloud consola, da Google Cloud CLI ou da API REST.

Consola

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

    Aceda a Criar uma instância

  2. Especifique um Nome para a VM. Consulte a Convenção de nomenclatura de recursos.

  3. Selecione uma região e uma zona onde as GPUs estão disponíveis. Consulte a lista de zonas de GPU disponíveis.

  4. Na secção Configuração da máquina, selecione a família de máquinas GPUs e, de seguida, faça o seguinte:

    1. Na lista Tipo de GPU, selecione um dos modelos de GPU suportados em máquinas N1.
    2. Na lista Número de GPUs, selecione o número de GPUs.
    3. Se o seu modelo de GPU suportar estações de trabalho virtuais (vWS) NVIDIA RTX para cargas de trabalho de gráficos e planeia executar cargas de trabalho com utilização intensiva de gráficos nesta VM, selecione Ativar estação de trabalho virtual (NVIDIA GRID).

    4. Na lista Tipo de máquina, selecione um dos tipos de máquinas N1 predefinidos. Em alternativa, também pode especificar definições de tipo de máquina personalizadas.

  5. Na secção Disco de arranque, clique em Alterar. É apresentada a página Configuração do disco de arranque.

  6. Na página Configuração do disco de arranque, faça o seguinte:

    1. No separador Imagens públicas, escolha uma imagem do Compute Engine suportada ou imagens de VMs de aprendizagem avançada.
    2. Especifique um tamanho do disco de arranque de, pelo menos, 40 GB.
    3. Para confirmar as opções do disco de arranque, clique em Selecionar.
  7. Opcional: na lista Modelo de aprovisionamento de VMs, selecione um modelo de aprovisionamento.

  8. Para criar e iniciar a VM, clique em Criar.

gcloud

Para criar e iniciar uma VM, use o comando gcloud compute instances create com as seguintes flags.

Se a sua carga de trabalho for tolerante a falhas ou puder ser iniciada em qualquer altura, considere usar um modelo de aprovisionamento diferente para reduzir os custos. Para alterar o modelo de aprovisionamento, inclua a flag --provisioning-model=<var>PROVISIONING_MODEL</var> no comando. Para mais informações acerca dos modelos disponíveis, consulte o artigo Modelos de aprovisionamento de instâncias do Compute Engine.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE \
    [--provisioning-model=PROVISIONING_MODEL]

Substitua o seguinte:

  • VM_NAME: o nome da nova VM.
  • MACHINE_TYPE: o tipo de máquina que selecionou para a sua VM.
  • ZONE: a zona para a VM. Esta zona tem de suportar o tipo de GPU.
  • DISK_SIZE: o tamanho do disco de arranque em GB. Especifique um tamanho do disco de arranque de, pelo menos, 40 GB.
  • IMAGE ou IMAGE_FAMILY que suportam GPUs. Especifique uma das seguintes opções:

    • IMAGE: a versão necessária de uma imagem pública. Por exemplo, --image debian-10-buster-v20200309.
    • IMAGE_FAMILY: uma família de imagens. Isto cria a VM a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificar --image-family debian-10, o Compute Engine cria uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.

    Também pode especificar uma imagem personalizada ou imagens de VMs de aprendizagem profunda.

  • IMAGE_PROJECT: o projeto de imagem do Compute Engine ao qual a família de imagens pertence. Se usar uma imagem personalizada ou imagens de VMs de aprendizagem profunda, especifique o projeto ao qual essas imagens pertencem.

  • PROVISIONING_MODEL: o modelo de aprovisionamento para a VM. Especifique SPOT ou FLEX_START. Se não especificar um modelo de aprovisionamento, é usado o modelo padrão. Esta flag é opcional.

  • ACCELERATOR_COUNT: o número de GPUs que quer adicionar à sua VM. Consulte o artigo GPUs no Compute Engine para ver uma lista dos limites de GPU com base no tipo de máquina da sua VM.

  • ACCELERATOR_TYPE: o modelo da GPU que quer usar. Se planeia executar cargas de trabalho com grande exigência gráfica nesta VM, use um dos modelos de estação de trabalho virtual.

    Escolha um dos seguintes valores:

    • GPUs NVIDIA:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):

      • Estação de trabalho virtual NVIDIA T4: nvidia-tesla-t4-vws
      • Estação de trabalho virtual NVIDIA P4: nvidia-tesla-p4-vws
      • NVIDIA P100 Virtual Workstation: nvidia-tesla-p100-vws

        Para estas estações de trabalho virtuais, é adicionada automaticamente uma licença da NVIDIA RTX Virtual Workstation (vWS) à sua instância.

Exemplo

Por exemplo, pode usar o seguinte comando gcloud para iniciar uma VM do Ubuntu 22.04 com 1 GPU NVIDIA T4 e 2 vCPUs na zona us-east1-d.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

REST

Identifique o tipo de GPU que quer adicionar à sua VM. Envie um pedido GET para listar os tipos de GPU disponíveis para o seu projeto numa zona específica.

Para criar VMs a um preço com desconto, pode especificar um modelo de aprovisionamento diferente adicionando o campo "provisioningModel": "PROVISIONING_MODEL" ao objeto scheduling no seu pedido. Para mais informações sobre os modelos disponíveis, consulte o artigo Modelos de aprovisionamento de instâncias do Compute Engine.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

Substitua o seguinte:

  • PROJECT_ID: ID do projeto.
  • ZONE: zone a partir da qual quer listar os tipos de GPU disponíveis.

Envie um pedido POST para o método instances.insert. Inclua o parâmetro acceleratorType para especificar que tipo de GPU quer usar e inclua o parâmetro acceleratorCount para especificar quantas GPUs quer adicionar. Defina também o parâmetro onHostMaintenance como TERMINATE.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    "provisioningModel": "PROVISIONING_MODEL"
  },
}

Substitua o seguinte:

  • VM_NAME: o nome da VM.
  • PROJECT_ID: o ID do seu projeto.
  • ZONE: a zona para a VM. Esta zona tem de suportar o tipo de GPU.
  • MACHINE_TYPE: o tipo de máquina que selecionou para a VM. Consulte o artigo GPUs no Compute Engine para ver que tipos de máquinas estão disponíveis com base na quantidade de GPUs escolhida.
  • IMAGE ou IMAGE_FAMILY: especifique uma das seguintes opções:

    • IMAGE: a versão necessária de uma imagem pública. Por exemplo, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: uma família de imagens. Isto cria a VM a partir da imagem do SO mais recente e não descontinuada. Por exemplo, se especificar "sourceImage": "projects/debian-cloud/global/images/family/debian-10", o Compute Engine cria uma VM a partir da versão mais recente da imagem do SO na família de imagens Debian 10.

    Também pode especificar uma imagem personalizada ou imagens de VMs de aprendizagem profunda.

  • IMAGE_PROJECT: o projeto de imagem do Compute Engine ao qual a família de imagens pertence. Se usar uma imagem personalizada ou imagens de VMs de aprendizagem profunda, especifique o projeto ao qual essas imagens pertencem.

  • DISK_SIZE: o tamanho do disco de arranque em GB. Especifique um tamanho do disco de arranque de, pelo menos, 40 GB.

  • NETWORK: a rede VPC que quer usar para a VM. Pode especificar default para usar a sua rede predefinida.

  • ACCELERATOR_COUNT: o número de GPUs que quer adicionar à sua VM. Consulte o artigo GPUs no Compute Engine para ver uma lista dos limites de GPU com base no tipo de máquina da sua VM.

  • ACCELERATOR_TYPE: o modelo da GPU que quer usar. Se planeia executar cargas de trabalho com grande exigência gráfica nesta VM, use um dos modelos de estação de trabalho virtual.

    Escolha um dos seguintes valores:

    • GPUs NVIDIA:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):

      • Estação de trabalho virtual NVIDIA T4: nvidia-tesla-t4-vws
      • Estação de trabalho virtual NVIDIA P4: nvidia-tesla-p4-vws
      • NVIDIA P100 Virtual Workstation: nvidia-tesla-p100-vws

        Para estas estações de trabalho virtuais, é adicionada automaticamente uma licença da NVIDIA RTX Virtual Workstation (vWS) à sua instância.

  • PROVISIONING_MODEL: o modelo de aprovisionamento para a VM. Especifique SPOT ou FLEX_START. Se não especificar um modelo de aprovisionamento, é usado o modelo padrão. Esta propriedade é opcional. Para mais informações sobre modelos de aprovisionamento, consulte o artigo Modelos de aprovisionamento de instâncias do Compute Engine.

Instale controladores

Para instalar os controladores, escolha uma das seguintes opções:

O que se segue?