Neste documento, explicamos como criar uma VM que tenha GPUs anexadas e usa uma
família de máquinas N1.
É possível usar a maioria dos tipos de máquinas N1, exceto N1 shared-core
.
Antes de começar
- Para analisar outras etapas de pré-requisito, como selecionar uma imagem do SO e verificar a cota da GPU, consulte o documento de visão geral.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
compute.instances.create
no projeto -
Usar uma imagem personalizada a fim de criar a VM:
compute.images.useReadOnly
na imagem -
Usar um snapshot para criar a VM:
compute.snapshots.useReadOnly
no snapshot -
Usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância -
Atribuir uma rede legada à VM:
compute.networks.use
no projeto -
Especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto -
Atribuir um endereço IP externo à VM ao usar uma rede legada:
compute.networks.useExternalIp
no projeto -
Especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida -
Atribuir um endereço IP externo à VM ao usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida -
Definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto -
Definir tags para a VM:
compute.instances.setTags
na VM -
Definir rótulos para a VM:
compute.instances.setLabels
na VM -
Definir uma conta de serviço a ser usada pela VM:
compute.instances.setServiceAccount
na VM -
Criar um disco para a VM:
compute.disks.create
no projeto -
Anexar um disco atual no modo somente leitura ou de leitura e gravação:
compute.disks.use
no disco -
Anexar um disco atual no modo somente leitura:
compute.disks.useReadOnly
no disco - NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws
- NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vws
NVIDIA P100 Virtual Workstation:
nvidia-tesla-p100-vws
Para essas estações de trabalho virtuais, uma licença da NVIDIA RTX Virtual Workstation (vWS) é adicionada automaticamente à VM.
No console do Google Cloud, acesse a página Criar uma instância.
Especifique um Nome para sua VM. Consulte a Convenção de nomenclatura de recursos.
Selecione uma região e uma zona em que as GPUs estejam disponíveis. Veja a lista de zonas de GPU disponíveis.
Na seção Configuração da máquina, selecione a família de máquinas GPU e faça o seguinte:
- Na lista Tipo de GPU, selecione um dos modelos de GPU compatíveis com a máquina N1.
- Na lista Número de GPUs, selecione o número de GPUs.
Se o modelo de GPU for compatível com estação de trabalho virtual NVIDIA RTX (vWS) para cargas de trabalho gráficas e você planeja executar cargas de trabalho com muitos gráficos nessa VM, selecione Ativar Estação de trabalho virtual (NVIDIA GRID)
Na lista Tipo de máquina, selecione um dos tipos de máquina N1 predefinidos. Outra opção é especificar as configurações de tipo de máquina personalizado.
Na seção Disco de inicialização, clique em Alterar. A página Configuração do disco de inicialização será aberta.
Na página Configuração do disco de inicialização, faça o seguinte:
- Na guia Imagens públicas, escolha uma imagem do Compute Engine compatível ou Deep Learning VM Images.
- Especifique um tamanho do disco de inicialização de pelo menos 40 GB.
- Para confirmar as opções do disco de inicialização, clique em Selecionar.
Opcional: configure o modelo de provisionamento. Por exemplo, se a carga de trabalho for tolerante a falhas e resistente a possíveis preempções da VM, use as VMs do Spot para reduzir o custo das VMs e das GPUs anexadas. Para mais informações, consulte GPUs em VMs spot. Para isso, siga as seguintes etapas:
- Na seção Políticas de disponibilidade, selecione Spot na lista Modelo de provisionamento de VM. Essa configuração desativa as opções de reinicialização automática e manutenção de host para a VM.
- Opcional: na lista No encerramento da VM, selecione o que acontecerá quando o Compute Engine encerrar a VM:
- Para interromper a VM durante a preempção, selecione Parar (padrão).
- Para excluir a VM durante a preempção, selecione Excluir.
Para criar e iniciar a VM, clique em Criar.
VM_NAME
: o nome da nova VM;MACHINE_TYPE
: o tipo de máquina selecionado para a VM.ZONE
: a zona para a VM. Essa zona precisa ser compatível com o tipo de GPU.DISK_SIZE
: o tamanho do disco de inicialização em GB Especifique um tamanho do disco de inicialização de pelo menos 40 GB.IMAGE
ouIMAGE_FAMILY
compatível com GPUs. Especifique uma destas opções:IMAGE
: versão obrigató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 SO 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 SO na família de imagens Debian 10.
Também é possível 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 uma Deep Learning VM images, especifique o projeto a que essas imagens pertencem.ACCELERATOR_COUNT
: o número de GPUs que você quer adicionar à VM. Consulte GPUs no Compute Engine para ver uma lista de limites de GPUs com base no tipo de máquina da VM.ACCELERATOR_TYPE
: o modelo de GPU que você quer usar. Se você planeja executar cargas de trabalho com muitos 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
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws
- NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vws
NVIDIA P100 Virtual Workstation:
nvidia-tesla-p100-vws
Para essas estações de trabalho virtuais, uma licença da NVIDIA RTX Virtual Workstation é adicionada automaticamente à VM.
- NVIDIA T4 Virtual Workstation:
PROJECT_ID
: ID do projeto.ZONE
: zona a partir da qual você quer listar os tipos de GPU disponíveis.VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto.ZONE
: a zona para a VM. Essa zona precisa ser compatível com 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 quantidade de GPUs que você quer;IMAGE
ouIMAGE_FAMILY
: especifique uma das seguintes opções:IMAGE
: especifique a versão exigida de uma imagem pública. 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 SO 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 SO na família de imagens Debian 10.
Também é possível 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 Deep Learning VM Images, especifique o projeto a que essas imagens pertencem.DISK_SIZE
: o tamanho do disco de inicialização em GB Especifique um tamanho do disco de inicialização de pelo menos 40 GB.NETWORK
: a rede VPC que você quer usar para a VM. Você pode especificardefault
para usar sua rede padrão.ACCELERATOR_COUNT
: o número de GPUs que você quer adicionar à VM. Consulte GPUs no Compute Engine para ver uma lista de limites de GPUs com base no tipo de máquina da VM.ACCELERATOR_TYPE
: o modelo de GPU que você quer usar. Se você planeja executar cargas de trabalho com muitos 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
- NVIDIA T4:
NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):
- NVIDIA T4 Virtual Workstation:
nvidia-tesla-t4-vws
- NVIDIA P4 Virtual Workstation:
nvidia-tesla-p4-vws
NVIDIA P100 Virtual Workstation:
nvidia-tesla-p100-vws
Para essas estações de trabalho virtuais, uma licença da NVIDIA RTX Virtual Workstation é adicionada automaticamente à VM.
- NVIDIA T4 Virtual Workstation:
- Se você planeja executar cargas de trabalho com muitos gráficos, como as de jogos e visualização, instale drivers para a estação de trabalho virtual NVIDIA RTX.
- Para a maioria das cargas de trabalho, instale os drivers da GPU.
- Saiba mais sobre as plataformas de GPU.
- Adicione SSDs locais a instâncias. Dispositivos SSD locais funcionam bem com GPUs quando os aplicativos exigem armazenamento de alto desempenho.
- Instale os drivers da GPU. Se você ativou a estação de trabalho virtual NVIDIA RTX, instale um driver para a estação de trabalho virtual.
- Para lidar com a manutenção do host da GPU, consulte "Como manipular eventos de manutenção do host da GPU".
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para receber as permissões necessárias para criar VMS, peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Esse papel predefinido contém as permissões necessárias para criar VMs. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar VMs:
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Visão geral
Os seguintes modelos de GPU podem ser anexados a VMs que usam famílias de máquinas N1.
GPUs NVIDIA:
NVIDIA RTX Virtual Workstation (vWS) (anteriormente conhecida como NVIDIA GRID):
Criar uma VM com GPUs anexadas
É possível criar uma VM N1 que tenha GPUs anexadas usando o console do Google Cloud, a CLI do Google Cloud ou a REST.
Console
gcloud
Para criar e iniciar uma VM, use o comando
gcloud compute instances create
com as sinalizações a seguir.Se a carga de trabalho for tolerante a falhas e resistente a possíveis preempções da VM, use as VMs spot para reduzir o custo das VMs e das GPUs anexadas. Para mais informações, consulte GPUs em VMs spot. O
--provisioning-model=SPOT
é uma flag opcional que configura suas VMs como VMs do Spot. Para VMs do Spot, as flags de opções de reinicialização automática e manutenção do host estão desativadas.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:
Exemplo
Por exemplo, é possível usar o seguinte comando
gcloud
para iniciar uma VM do Ubuntu 22.04 com uma GPU NVIDIA T4 e duas vCPUs na zonaus-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 você quer adicionar à VM. Envie uma solicitação GET para listar os tipos de GPU disponíveis para o projeto em uma zona específica.
Se a carga de trabalho for tolerante a falhas e resistente a possíveis preempções da VM, use as VMs spot para reduzir o custo das VMs e das GPUs anexadas. Para mais informações, consulte GPUs em VMs spot. O
"provisioningModel": "SPOT"
é um parâmetro opcional que configura suas VMs como VMs spot. Para VMs do Spot, as flags de opções de reinicialização automática e manutenção do host estão desativadas.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes
Substitua:
Envie uma solicitação POST ao método
instances.insert
. Inclua o parâmetroacceleratorType
para especificar o tipo de GPU que quer usar e inclua o parâmetroacceleratorCount
para especificar quantas GPUs você quer adicionar. Também defina o parâmetroonHostMaintenance
comoTERMINATE
.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:
Instalar drivers
Para instalar os drivers, escolha uma das seguintes opções:
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.
-