Crie uma VM N1 que tenha GPUs anexadas


Este documento explica como criar uma VM que tenha GPUs anexadas e use uma família de máquinas N1 . Você pode usar a maioria dos tipos de máquinas N1, exceto N1 shared-core .

Antes de começar

  • Para revisar etapas adicionais de pré-requisitos, como selecionar uma imagem do sistema operacional e verificar a cota de GPU, revise o documento de visão geral .
  • 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.

Funções obrigatórias

Para obter as permissões necessárias para criar VMs, 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 VMs. 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 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 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 .

Visão 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

Estação de trabalho virtual NVIDIA RTX (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
  • Estação de trabalho virtual NVIDIA P100: nvidia-tesla-p100-vws

    Para essas estações de trabalho virtuais, uma licença de estação de trabalho virtual NVIDIA RTX (vWS) é automaticamente adicionada à sua VM.

Crie uma VM que tenha GPUs anexadas

Você pode criar uma VM N1 que tenha GPUs anexadas usando o console do Google Cloud, a CLI do Google Cloud ou REST.

Console

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

    Vá para Criar uma instância

  2. Especifique um nome para sua VM. Consulte Convenção de nomenclatura de recursos .

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

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

    1. Na lista de tipos 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 oferece suporte a estações de trabalho virtuais NVIDIA RTX (vWS) para cargas de trabalho gráficas e você planeja executar cargas de trabalho com uso intensivo de gráficos nesta VM, selecione Habilitar estação de trabalho virtual (NVIDIA GRID) .

    4. Na lista Tipo de máquina , selecione um dos tipos de máquina N1 predefinidos. Como alternativa, você também pode especificar configurações personalizadas de tipo de máquina.

  5. Na seção Disco de inicialização , clique em Alterar . Isso abre a página de configuração do disco de inicialização .

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

    1. Na guia Imagens públicas , escolha uma imagem compatível do Compute Engine ou Imagens de VM de aprendizado profundo .
    2. Especifique um tamanho de disco de inicialização de pelo menos 40 GB.
    3. Para confirmar as opções do disco de inicialização, clique em Selecionar .
  7. Opcional: Configure o modelo de provisionamento. Por exemplo, se sua carga de trabalho for tolerante a falhas e puder suportar uma possível preempção de VM, considere usar VMs spot para reduzir o custo de suas VMs e das GPUs anexadas. Para obter mais informações, consulte GPUs em VMs Spot . Para fazer isso, conclua as seguintes etapas:

    1. Na seção Políticas de disponibilidade , selecione Spot na lista de modelos de provisionamento de VM . Essa configuração desativa as opções de reinicialização automática e manutenção do host para a VM.
    2. Opcional: na lista No encerramento da VM , selecione o que acontece quando o Compute Engine interrompe a VM:
      • Para parar a VM durante a preempção, selecione Parar (padrão).
      • Para excluir a VM durante a preempção, selecione Excluir .
  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 sinalizações a seguir.

Se sua carga de trabalho for tolerante a falhas e puder suportar uma possível preempção de VM, considere usar VMs spot para reduzir o custo de suas VMs e das GPUs anexadas. Para obter mais informações, consulte GPUs em VMs Spot . O --provisioning-model=SPOT é um sinalizador opcional que configura suas VMs como Spot VMs. Para VMs Spot, os sinalizadores de opções de reinicialização automática e manutenção do host estão desabilitados.

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=SPOT]

Substitua o seguinte:

  • VM_NAME : o nome da nova VM.
  • MACHINE_TYPE : o tipo de máquina que você selecionou para sua VM.
  • ZONE : a zona da VM. Esta zona deve suportar o tipo de GPU .
  • DISK_SIZE : o tamanho do seu disco de inicialização em GB. Especifique um tamanho de disco de inicialização de pelo menos 40 GB.
  • IMAGE ou IMAGE_FAMILY que suporta GPUs . Especifique um dos seguintes:

    • 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 . Isso cria a VM a partir da imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificar --image-family debian-10 , o Compute Engine criará uma VM a partir da versão mais recente da imagem do sistema operacional na família de imagens Debian 10.

    Você também pode especificar uma imagem personalizada ou Deep Learning VM Images .

  • IMAGE_PROJECT : o projeto de imagem do Compute Engine ao qual a família de imagens pertence. Se estiver usando uma imagem personalizada ou imagens de VM de aprendizado profundo, especifique o projeto ao qual essas imagens pertencem.

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

  • ACCELERATOR_TYPE : o modelo de GPU que você deseja usar. Se você planeja executar cargas de trabalho com uso intensivo de gráficos 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
    • Estação de trabalho virtual NVIDIA RTX (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
      • Estação de trabalho virtual NVIDIA P100: nvidia-tesla-p100-vws

        Para essas estações de trabalho virtuais, uma licença de estação de trabalho virtual NVIDIA RTX (vWS) é automaticamente adicionada à sua VM.

Exemplo

Por exemplo, você pode usar o seguinte comando gcloud para iniciar uma VM 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

DESCANSAR

Identifique o tipo de GPU que você deseja adicionar à sua VM. Envie uma solicitação GET para listar os tipos de GPU disponíveis para seu projeto em uma zona específica.

Se sua carga de trabalho for tolerante a falhas e puder suportar uma possível preempção de VM, considere usar VMs spot para reduzir o custo de suas VMs e das GPUs anexadas. Para obter mais informações, consulte GPUs em VMs Spot . O "provisioningModel": "SPOT" é um parâmetro opcional que configura suas VMs como Spot VMs. Para VMs Spot, os sinalizadores de opções de reinicialização automática e manutenção do host estão desabilitados.

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

Substitua o seguinte:

  • PROJECT_ID : ID do projeto.
  • ZONE : zona da qual você deseja listar os tipos de GPU disponíveis.

Envie uma solicitação POST para o método instances.insert . Inclua o parâmetro acceleratorType para especificar qual tipo de GPU você deseja usar e inclua o parâmetro acceleratorCount para especificar quantas GPUs você deseja 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": "SPOT"]
  },
}

Substitua o seguinte:

  • VM_NAME : o nome da VM.
  • PROJECT_ID : seu ID do projeto.
  • ZONE : a zona da VM. Esta zona deve suportar o tipo de GPU .
  • MACHINE_TYPE : o tipo de máquina que você selecionou para a VM. Consulte GPUs no Compute Engine para ver quais tipos de máquinas estão disponíveis com base na contagem de GPU desejada.
  • IMAGE ou IMAGE_FAMILY : especifique um dos seguintes:

    • 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 . Isso cria a VM a partir da imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificar "sourceImage": "projects/debian-cloud/global/images/family/debian-10" , o Compute Engine criará uma VM a partir da versão mais recente da imagem do sistema operacional na família de imagens Debian 10.

    Você também pode especificar uma imagem personalizada ou Deep Learning VM Images .

  • IMAGE_PROJECT : o projeto de imagem do Compute Engine ao qual a família de imagens pertence. Se estiver usando uma imagem personalizada ou imagens de VM de aprendizado profundo, especifique o projeto ao qual essas imagens pertencem.

  • DISK_SIZE : o tamanho do seu disco de inicialização em GB. Especifique um tamanho de disco de inicialização de pelo menos 40 GB.

  • NETWORK : a rede VPC que você deseja usar para a VM. Você pode especificar default para usar sua rede padrão.

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

  • ACCELERATOR_TYPE : o modelo de GPU que você deseja usar. Se você planeja executar cargas de trabalho com uso intensivo de gráficos 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
    • Estação de trabalho virtual NVIDIA RTX (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
      • Estação de trabalho virtual NVIDIA P100: nvidia-tesla-p100-vws

        Para essas estações de trabalho virtuais, uma licença de estação de trabalho virtual NVIDIA RTX (vWS) é automaticamente adicionada à sua VM.

Instalar drivers

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

O que vem a seguir?