Criar uma VM A3, A2 ou G2 (original) (raw)
Linux Windows
Neste documento, explicamos como criar uma VM que usa um tipo de máquina das séries A3 High, A3 Mega, A3 Edge, A2 e G2. Para saber mais sobre como criar VMs com GPUs anexadas, consulteVisão geral da criação de uma instância com GPUs anexadas.
Antes de começar
- Para analisar as limitações e outras etapas de pré-requisito para criar instâncias com GPUs anexadas, como selecionar uma imagem do SO e verificar a cota da GPU, consulteVisão geral da criação de uma instância com GPUs anexadas.
- 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 em 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
- 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. - 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 a CLI gcloud.
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, consulteAutenticar 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ê oAdministrador da instância da computação (v1) (roles/compute.instanceAdmin.v1
) papel do IAM 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:
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
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar uma VM com GPUs anexadas
É possível criar uma VM otimizada para aceleradores A3 High, A3 Mega, A3 Edge, A2 ou G2 usando o Google Cloud console, a Google Cloud CLI ou o REST.
Para fazer algumas personalizações nas VMs G2, talvez seja necessário usar a CLI do Google Cloud ou REST. Consulte as limitações da G2.
Console
- No console Google Cloud , acesse a página Criar uma instância.
Acesse "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. Confira a lista de regiões e zonas de GPU disponíveis.
- Na seção Configuração da máquina, selecione a família de máquinas GPUs.
- Siga uma das etapas a seguir para selecionar um tipo de máquina predefinido ou personalizado com base na série de máquinas:
- Para todas as séries de máquinas de GPU, é possível selecionar um tipo de máquina predefinido da seguinte maneira:
1. Na lista Tipo de GPU, selecione o tipo de GPU.
* Para VMs com otimização de aceleradores A3 High, A3 Mega ou A3 Edge, selecioneNVIDIA H100 80GB
ouNVIDIA H100 80GB MEGA
.
* Para VMs com otimização de aceleradores A2, selecioneNVIDIA A100 40GB
ouNVIDIA A100 80GB
.
* Para VMs otimizadas para acelerador G2, selecioneNVIDIA L4
.
2. Na lista Número de GPUs, selecione o número de GPUs. - Para a série de máquinas G2, é possível selecionar um tipo de máquina personalizado da seguinte forma:
1. Na lista Tipo de GPU, selecioneNVIDIA L4
.
2. Na seção Tipo de máquina, selecione Personalizado.
3. Para especificar o número de vCPUs e a quantidade de memória da instância, arraste os controles deslizantes ou insira os valores nas caixas de texto. O console exibe um custo estimado para a instância à medida que você altera o número de vCPUs e a memória.
- Para todas as séries de máquinas de GPU, é possível selecionar um tipo de máquina predefinido da seguinte maneira:
- Opcional: a série de máquinas G2 oferece suporte aestações de trabalho virtuais (vWS) NVIDIA RTX para cargas de trabalho de gráficos. Se você planeja executar cargas de trabalho com muitos gráficos na VM G2, selecione Ativar estação de trabalho virtual (NVIDIA GRID).
- Siga uma das etapas a seguir para selecionar um tipo de máquina predefinido ou personalizado com base na série de máquinas:
- 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 umaimagem do Compute Engine compatívelou 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, consulteGPUs 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.
gcloud
Para criar e iniciar uma VM, use o comando gcloud compute instances create com as sinalizações a seguir. Não é possível migrar VMs com GPUs em tempo real. Defina a sinalização --maintenance-policy=TERMINATE
.
As seguintes sinalizações opcionais são mostradas no comando de amostra:
A flag
--provisioning-model=SPOT
, que configura suas VMs como VMs spot. 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, consulteGPUs em VMs spot. Para VMs do Spot, as flags de opções de reinicialização automática e manutenção do host estão desativadas.A sinalização
--accelerator
para especificar uma estação de trabalho virtual. A NVIDIA RTX Virtual Workstations (vWS) é compatível apenas com VMs do G2.gcloud compute instances create VM_NAME
--machine-type=MACHINE_TYPE
--zone=ZONE
--boot-disk-size=DISK_SIZE
--image=IMAGE
--image-project=IMAGE_PROJECT
--maintenance-policy=TERMINATE
[--provisioning-model=SPOT]
[--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
Substitua:
VM_NAME
: o nome da nova VM;MACHINE_TYPE
: o tipo de máquina selecionado. Escolha uma das seguintes opções:- Um tipo de máquina A3.
- Um tipo de máquina A2
- Um tipo de máquina G2 Os tipos de máquina G2 também oferecem suporte a memória personalizada. A memória precisa ser um múltiplo de 1.024 MB e estar dentro do intervalo de memória compatível. Por exemplo, para criar uma VM com 4 vCPUs e 19 GB de memória, especifique
--machine-type=g2-custom-4-19456
.
ZONE
: a zona para a VM. Essa zona precisa ser compatível como modelo de GPU selecionado.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
: uma imagem de sistema operacionalcompatível com GPUs. Se você quiser usar a imagem mais recente em uma família de imagens, substitua a sinalização--image
pela sinalização--image-family
e defina o valor dela como uma imagem família compatível com GPUs. Exemplo:--image-family=rocky-linux-8-optimized-gcp
.
Também é possível especificar uma imagem personalizada ou Deep Learning VM ImagesIMAGE_PROJECT
: oprojeto de imagemdo Compute Engine a que a imagem do SO pertence. Se estiver usando uma imagem personalizada ou Deep Learning VM Images, especifique o projeto a que essas imagens pertencem.VWS_ACCELERATOR_COUNT
: o número necessário de GPUs virtuais.
REST
Envie uma solicitação POST aométodo instances.insert. VMs com GPUs não podem ser migradas em tempo real, verifique se você define 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": "SOURCE_IMAGE_URI" }, "boot": true } ], "name": "VM_NAME", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK" } ], "scheduling": { "onHostMaintenance": "terminate", ["automaticRestart": true] }, }
Substitua o seguinte:
VM_NAME
: o nome da nova VM;PROJECT_ID
: o ID do projeto.ZONE
: a zona para a VM. Essa zona precisa ser compatível como modelo de GPU selecionado.MACHINE_TYPE
: o tipo de máquina selecionado. Escolha uma das seguintes opções:- Um tipo de máquina A3.
- Um tipo de máquina A2
- Um tipo de máquina G2 Os tipos de máquina G2 também oferecem suporte a memória personalizada. A memória precisa ser um múltiplo de 1.024 MB e estar dentro do intervalo de memória compatível. Por exemplo, para criar uma VM com 4 vCPUs e 19 GB de memória, especifique
--machine-type=g2-custom-4-19456
.SOURCE_IMAGE_URI
: o URI da imagem ou família de imagens específica que você quer usar. Exemplo: - Imagem específica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- Família de imagens:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
Quando você especifica uma família de imagens, o Compute Engine cria uma VM a partir da imagem do SO mais recente e não obsoleta nessa família. Para mais informações sobre quando usar famílias de imagens, consultePráticas recomendadas para famílias de imagens.
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 especificar para usar sua rede padrão. Outras configurações:- 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, consulteGPUs em VMs spot. Para especificar VMs spot, adicione a opção
"provisioningModel": "SPOT"
à solicitação. Para VMs do Spot, as flags de opções de reinicialização automática e manutenção do host estão desativadas.
"scheduling":
{
"provisioningModel": "SPOT"
} - Para VMs G2, a NVIDIA RTX Virtual Workstations (vWS) é compatível. Para especificar uma estação de trabalho virtual, adicione a opção "guestAccelerators" à sua solicitação. Substitua
VWS_ACCELERATOR_COUNT
pelo número de GPUs virtuais necessárias.
"guestAccelerators":
[
{
"acceleratorCount": VWS_ACCELERATOR_COUNT,
"acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws"
}
]
Instalar drivers
Para que a VM use a GPU, é necessárioinstalar o driver da GPU na VM.
Exemplos
Nestes exemplos, a maioria das VMs é criada usando a CLI do Google Cloud. No entanto, também é possível usar o Google Cloud console ou oREST para criar essas VMs.
Os exemplos a seguir mostram como criar VMs usando as seguintes imagens:
- Deep Learning VM Images Este exemplo usa a VM padrão A2 (
a2-highgpu-1g
). - Imagem do Container-Optimized OS (COS). Este exemplo usa uma VM
a3-highgpu-8g
oua3-edgegpu-8g
. - Imagem pública. Este exemplo usa uma VM G2.
COS (A3 Edge/High)
É possível criar VMs a3-edgegpu-8g
ou a3-highgpu-8g
com GPUs H100 anexadas usandoimagens otimizadas para contêiner (COS).
Para instruções detalhadas sobre como criar essas VMs a3-edgegpu-8g
oua3-highgpu-8g
que usam o Container-Optimized OS, consulteCriar uma VM A3 com o GPUDirect-TCPX ativado.
Imagem do SO público (G2)
É possível criar VMs com GPUs anexadas que usam umaimagem pública disponível no Compute Engine ou uma imagem personalizada.
Para criar uma VM usando a imagem mais recente e não descontinuada daRocky Linux 8 otimizada para a família de imagens Google Cloud que usa o tipo de máquina g2-standard-8e tem uma estação de trabalho virtual NVIDIA RTX, conclua as seguintes etapas:
- Crie a VM. Neste exemplo, as sinalizações opcionais, como o tipo e o tamanho do disco de inicialização, também são especificadas.
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=g2-standard-8 \
--maintenance-policy=TERMINATE --restart-on-failure \
--network-interface=nic-type=GVNIC \
--accelerator=type=nvidia-l4-vws,count=1 \
--image-family=rocky-linux-8-optimized-gcp \
--image-project=rocky-linux-cloud \
--boot-disk-size=200GB \
--boot-disk-type=pd-ssd
Substitua:VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto.ZONE
: a zona para a VM.
- Instale o driver NVIDIA e o CUDA. Para GPUs NVIDIA L4, a versão XX de CUDA é necessária.
Imagem de DLVM (A2)
Usar imagens de DLVM é a maneira mais fácil de começar, porque essas imagens já têm os drivers NVIDIA e bibliotecas CUDA pré-instaladas.
Essas imagens também fornecem otimizações de desempenho.
As seguintes imagens de DLVM são compatíveis com NVIDIA A100:
common-cu110
: driver NVIDIA e CUDA pré-instaladostf-ent-1-15-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 1.15.3 pré-instaladostf2-ent-2-1-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 2.1.1 pré-instaladostf2-ent-2-3-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 2.3.1 pré-instaladospytorch-1-6-cu110
: driver NVIDIA, CUDA, Pytorch 1.6
Para mais informações sobre as imagens de DLVM disponíveis e os pacotes instalados nas imagens, consulte a documentação sobre VMs de aprendizado profundo.
- Crie uma VM usando a imagem
tf2-ent-2-3-cu110
e o tipo de máquina a2-highgpu-1g. Neste exemplo, são especificadas as sinalizações opcionais, como tamanho e escopo do disco de inicialização.
gcloud compute instances create VM_NAME \
--project PROJECT_ID \
--zone ZONE \
--machine-type a2-highgpu-1g \
--maintenance-policy TERMINATE \
--image-family tf2-ent-2-3-cu110 \
--image-project deeplearning-platform-release \
--boot-disk-size 200GB \
--metadata "install-nvidia-driver=True,proxy-mode=project_editors" \
--scopes https://www.googleapis.com/auth/cloud-platform
Substitua:VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto.ZONE
: a zona da VM.
- O comando de exemplo anterior também gera uma instância de notebooks gerenciados pelo usuário do Vertex AI Workbench para a VM. Para acessar o notebook, no console Google Cloud , acesse a páginaVertex AI Workbench > Notebooks gerenciados pelo usuário.
Acessar a página Notebooks gerenciados pelo usuário
GPU com várias instâncias (somente VMs A3 e A2)
Uma GPU com várias instânciasparticiona uma única GPU NVIDIA H100 ou A100 na mesma VM em até sete instâncias de GPU independentes. Elas são executadas simultaneamente, cada uma com a própria memória, o próprio cache e os próprios multiprocessadores de streaming. Essa configuração permite que a GPU NVIDIA H100 ou A100 ofereça qualidade de serviço (QoS) garantida com utilização até sete vezes maior em comparação com os modelos de GPU anteriores.
É possível criar até sete GPUs com várias instâncias. No caso das GPUs A100 de 40 GB, cada GPU com várias instâncias recebe 5 GB de memória. No caso das GPUs A100 e H100 de 80 GB, a memória alocada dobra para 10 GB cada.
Para mais informações sobre o uso de GPUs com várias instâncias, consulte oGuia do usuário de GPUs NVIDIA com várias instâncias.
Para criar GPUs de várias instâncias, conclua as seguintes etapas:
- Crie uma VM otimizada para aceleradores A3 High, A3 Mega, A3 Edge ou A2.
- Ative os drivers de GPU NVIDIA.
- Ative as GPUs com várias instâncias.
sudo nvidia-smi -mig 1 - Revise os formatos de GPU com várias instâncias disponíveis.
sudo nvidia-smi mig --list-gpu-instance-profiles
A resposta será semelhante a:
+-----------------------------------------------------------------------------+
| GPU instance profiles: |
| GPU Name ID Instances Memory P2P SM DEC ENC |
| Free/Total GiB CE JPEG OFA |
|=============================================================================|
| 0 MIG 1g.10gb 19 7/7 9.62 No 16 1 0 |
| 1 1 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 1g.10gb+me 20 1/1 9.62 No 16 1 0 |
| 1 1 1 |
+-----------------------------------------------------------------------------+
| 0 MIG 1g.20gb 15 4/4 19.50 No 26 1 0 |
| 1 1 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 2g.20gb 14 3/3 19.50 No 32 2 0 |
| 2 2 0 |
+-----------------------------------------------------------------------------+
| 0 MIG 3g.40gb 9 2/2 39.25 No 60 3 0 |
| 3 3 0 |
+-----------------------------------------------------------------------------+
.......
5. Crie a GPU de várias instâncias (GI, na sigla em inglês) e as instâncias de computação (CI, na sigla em inglês) associadas que você quer. Para criar essas instâncias, especifique o nome completo ou abreviado do perfil, o ID do perfil ou uma combinação de ambos. Para saber mais, consulteComo criar instâncias de GPU.
O exemplo a seguir cria duas instâncias de GPU MIG 3g.20gb
usando o ID do perfil (9
).
A flag -C
também é especificada, a fim de criar as instâncias de computação associadas para o perfil necessário.
sudo nvidia-smi mig -cgi 9,9 -C
6. Verifique se as duas GPUs de várias instâncias foram criadas:
sudo nvidia-smi mig -lgi
7. Verifique se as GIs e as CIs correspondentes foram criadas.
sudo nvidia-smi
A resposta será semelhante a:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06 Driver Version: 525.125.06 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA H100 80G... Off | 00000000:04:00.0 Off | On |
| N/A 33C P0 70W / 700W | 39MiB / 81559MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA H100 80G... Off | 00000000:05:00.0 Off | On |
| N/A 32C P0 69W / 700W | 39MiB / 81559MiB | N/A Default |
| | | Enabled |
+-------------------------------+----------------------+----------------------+
......
+-----------------------------------------------------------------------------+
| MIG devices: |
+------------------+----------------------+-----------+-----------------------+
| GPU GI CI MIG | Memory-Usage | Vol| Shared |
| ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG|
| | | ECC| |
|==================+======================+===========+=======================|
| 0 1 0 0 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 |
| | 0MiB / 65535MiB | | |
+------------------+----------------------+-----------+-----------------------+
| 0 2 0 1 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 |
| | 0MiB / 65535MiB | | |
+------------------+----------------------+-----------+-----------------------+
......
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
A seguir
- 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".