Para usar GPUs com a VM confidencial, tem de criar uma instância de VM confidencial com o modelo de aprovisionamento spot ou flex-start com base no tipo de máquina a3-highgpu-1g e usar o Intel TDX. Depois de criar a instância de VM, ative o modo de computação confidencial na GPU anexada.
Requisito de quota de GPU
Antes de criar uma instância de VM confidencial com GPU, certifique-se de que tem quota de GPU suficiente alocada ao seu Google Cloudprojeto. Precisa de quota suficiente nos seguintes tipos de quotas para criar com êxito uma instância de VM confidencial com GPU:
Quota preemptível para os modelos de GPU que quer criar em cada região.
Quota global para o número total de GPUs de todos os tipos em todas as regiões.
Para pedir um aumento destas quotas de GPU, consulte os artigos Peça uma quota preemptível e Peça uma quota global.
Peça uma quota preemptível
Para pedir um aumento da quota de GPUs NVIDIA H100 regionais preemptíveis, faça o seguinte:
Na Google Cloud consola, aceda à página Quotas.
Na caixa Filtrar, introduza
PREEMPTIBLE_NVIDIA_H100_GPUS
e, de seguida, prima a tecla Enter ou Return.Na coluna Dimensões da tabela, encontre a linha com a região cuja quota quer aumentar.
Nessa linha, clique em
Mais ações e, de seguida, clique em Editar quota.No painel Alterações de quota, introduza o número de GPUs que quer na caixa Novo valor.
Clique em Enviar pedido.
Peça uma quota global
Para pedir um aumento da quota global, faça o seguinte:
Na Google Cloud consola, aceda à página Quotas.
Na caixa Filtrar, introduza
GPUS_ALL_REGIONS
e, de seguida, prima a tecla Enter ou Return.Na linha resultante, clique em
Mais ações e, de seguida, clique em Editar quota.No painel Alterações de quota, introduza o número de GPUs que quer na caixa Novo valor.
Clique em Enviar pedido.
O que acontece após um pedido de quota
Se o seu pedido de quota for bem-sucedido, recebe um email de aprovação. Aguarde 15 minutos após receber o email e, em seguida, atualize a página Quotas para verificar a quota atualizada. Se a quota ainda não tiver sido atualizada após 15 minutos, contacte o apoio ao cliente do Google Cloud.
Se o seu pedido de quota for recusado, pode receber um email a explicar os passos seguintes que pode dar. Para voltar a candidatar-se a mais quota, siga as instruções no email.
Crie uma instância de VM confidencial com GPU
Para criar uma instância de VM com o modelo de início flexível ou de instância de reserva, faça o seguinte:
Para usar o modelo de spot, crie uma instância de VM do Spot otimizada para aceleradores. Para ver passos detalhados, consulte o artigo Modelo Spot.
Para usar o modelo de início flexível, crie um grupo de instâncias geridas (MIG). Para ver passos detalhados, consulte o artigo Modelo de início flexível.
Modelo de espaço
gcloud
Para criar uma instância de VM Spot otimizada para aceleradores com a CLI gcloud, use o subcomando instances create
com a flag --provisioning-model
.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=SPOT \
--confidential-compute-type=TDX \
--machine-type=a3-highgpu-1g \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Indique os seguintes valores:
INSTANCE_NAME
: o nome da nova instância de VM.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado. Recomendamos que use oubuntu-os-cloud
image project para imagens do Ubuntu. Opcionalmente, pode usar o projeto de imagemconfidential-vm-images
para imagens do SO otimizado para contentores.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando usar o projeto de imagemubuntu-os-cloud
, recomendamos que use a família de imagensubuntu-2204-lts
. Para imagens do SO otimizado para contentores do projetoconfidential-vm-images
, use a família de imagenscos-tdx-113-lts
.ZONE_NAME
: A zona suportada para criar a VM.
REST
Para criar uma instância de VM de Spot, envie o seguinte pedido POST com o conteúdo do corpo adequado.
O método HTTP e o URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Corpo JSON do pedido:
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "TDX"
},
"machineType": "zones/ZONE_NAME/machineTypes/a3-highgpu-1g",
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT"
},
"disks": [
{
"autoDelete": true,
"boot": true,
"index": 0,
"initializeParams": {
"diskSizeGb": "30",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
},
"kind": "compute#attachedDisk",
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT",
"kind": "compute#accessConfig",
"networkTier": "PREMIUM"
}
],
"kind": "compute#networkInterface",
"name": "nic0",
"network": "projects/PROJECT_ID/global/networks/default"
}
]
}
Indique os seguintes valores:
INSTANCE_NAME
: o nome do novo modelo de instância de VM.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado. Recomendamos que use oubuntu-os-cloud
image project para imagens do Ubuntu. Opcionalmente, pode usar o projeto de imagemconfidential-vm-images
para imagens do SO otimizado para contentores.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando usar o projeto de imagemubuntu-os-cloud
, recomendamos que use a família de imagensubuntu-2204-lts
. Para imagens do SO otimizado para contentores do projetoconfidential-vm-images
, use a família de imagenscos-tdx-113-lts
.PROJECT_ID
: opcional. O ID do projeto no qual criar a VM.ZONE_NAME
: A zona suportada para criar a VM.
Modelo de início flexível
Para usar o modelo de início flexível, primeiro, cria um modelo de instância e, de seguida, cria um grupo de instâncias gerido (MIG) com esse modelo. Em seguida, pode adicionar instâncias de VM com GPU ao MIG através de pedidos de redimensionamento.
A utilização de um pedido de redimensionamento de MIG com o modelo de aprovisionamento de início flexível melhora a obtenção de instâncias de VM de GPU. Para mais informações, consulte o artigo Acerca dos pedidos de redimensionamento num MIG.
Antes de começar
Veja os pré-requisitos para criar um MIG e as limitações para criar um pedido de redimensionamento num MIG.
Crie um MIG com instâncias de VM de GPU
Para criar um modelo de instância e, em seguida, usar o modelo para criar um MIG, conclua os seguintes passos.
Crie um modelo de instância.
gcloud
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=TDX \ --machine-type=a3-highgpu-1g \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --reservation-affinity=none \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_ID
Para ativar o Arranque seguro, pode usar opcionalmente a flag
--shielded-secure-boot
para arranques de instâncias de VM.Indique os seguintes valores:
INSTANCE_TEMPLATE_NAME
: o nome do novo modelo de instância de VM.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado. Recomendamos que use oubuntu-os-cloud
image project para imagens do Ubuntu. Opcionalmente, pode usar o projeto de imagemconfidential-vm-images
para imagens do SO otimizado para contentores.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando usar o projeto de imagemubuntu-os-cloud
, recomendamos que use a família de imagensubuntu-2204-lts
. Para imagens do SO otimizado para contentores do projetoconfidential-vm-images
, use a família de imagenscos-tdx-113-lts
.RUN_DURATION
: A duração durante a qual quer que as instâncias de VM pedidas sejam executadas. Tem de formatar o valor como o número de dias, horas, minutos ou segundos, seguido ded
,h
,m
es
, respetivamente. Por exemplo, especifique30m
para 30 minutos ou1d2h3m4s
para um dia, duas horas, três minutos e quatro segundos. O valor tem de estar compreendido entre 10 minutos e sete dias.PROJECT_ID
: opcional. O ID do projeto no qual criar a VM.
REST
Para criar um modelo de instância de VM confidencial, envie o seguinte pedido POST com o conteúdo do corpo adequado.
O método HTTP e o URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Corpo JSON do pedido:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "TDX" }, "machineType": "a3-highgpu-1g", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": RUN_DURATION }, "automaticRestart": true, "onHostMaintenance": "TERMINATE", "provisioningModel": "FLEX_START", "preemptible": false }, "disks": [ { "autoDelete": true, "index": 0, "boot": true, "kind": "compute#attachedDisk", "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME", "diskSizeGb": "30" }, "type": "PERSISTENT" } ], "networkInterfaces": [ { "accessConfigs": [ { "kind": "compute#accessConfig", "name": "external-nat", "networkTier": "PREMIUM", "type": "ONE_TO_ONE_NAT" } ], "kind": "compute#networkInterface", "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false } }
Para ativar o arranque seguro, pode incluir opcionalmente o seguinte objeto para arrancar instâncias de VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Indique os seguintes valores:
PROJECT_ID
: opcional. O ID do projeto no qual criar a VM.ZONE_NAME
: A zona suportada para criar o MIG.INSTANCE_TEMPLATE_NAME
: o nome do novo modelo de instância de VM.IMAGE_PROJECT
: O projeto que contém a imagem do sistema operativo suportado. Recomendamos que use oubuntu-os-cloud
image project para imagens do Ubuntu. Opcionalmente, pode usar o projeto de imagemconfidential-vm-images
para imagens do SO otimizado para contentores.IMAGE_FAMILY_NAME
: a família para a imagem do sistema operativo suportada pela VM confidencial. Quando usar o projeto de imagemubuntu-os-cloud
, recomendamos que use a família de imagensubuntu-2204-lts
. Para imagens do SO otimizado para contentores do projetoconfidential-vm-images
, use a família de imagenscos-tdx-113-lts
.RUN_DURATION
: a duração, em segundos, durante a qual quer que as instâncias de VM pedidas sejam executadas. O valor tem de estar entre600
e604800
segundos, o que corresponde a um intervalo entre 10 minutos e sete dias.
Crie um MIG e um pedido de redimensionamento para adicionar instâncias de VM de GPU de uma só vez.
Liste as instâncias presentes no MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Indique os seguintes valores:
INSTANCE_GROUP_NAME
: o nome do MIG.ZONE_NAME
: a zona suportada para obter uma lista de instâncias de VM.PROJECT_ID
: opcional. O ID do projeto a partir do qual quer obter uma lista de instâncias de VM.
REST
Para listar todas as instâncias, envie o seguinte pedido GET.
O método HTTP e o URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Para restringir a lista de instâncias a uma zona específica, envie o seguinte pedido GET.
O método HTTP e o URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Indique os seguintes valores:
ZONE_NAME
: a zona suportada para obter uma lista de instâncias de VM.PROJECT_ID
: o ID do projeto a partir do qual obter uma lista de instâncias de VM.
Ative o modo de computação confidencial na GPU
Estabeleça ligação a uma instância de VM no MIG através do comando gcloud compute ssh.
gcloud compute ssh
Atualize a lista de pacotes e instale as ferramentas e as bibliotecas necessárias.
sudo apt-get update --yes sudo apt-get install linux-headers-$(uname -r) sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12
Instale os controladores de GPU adequados na instância de VM. Para instâncias de VM com o arranque seguro ativado, consulte o artigo Instale controladores de GPU (VMs de arranque seguro). Recomendamos que use a versão
nvidia-driver-575-open
do controlador.Para configurar uma comunicação segura entre a GPU e o controlador da GPU, ative a API Linux Kernel Crypto (LKCA).
echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf sudo update-initramfs -u
Ative o modo de persistência para estabelecer uma ligação segura do protocolo de segurança e modelo de dados (SPDM) entre a GPU e o controlador da GPU.
sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service sudo systemctl daemon-reload
Reinicie a instância de VM para aplicar as configurações do LKCA e do modo de persistência.
sudo reboot
(Opcional) Instale os seguintes exemplos de CUDA.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.5.tar.gz tar xzvf cuda-samples.tar.gz
O que se segue?
Saiba como verificar se o modo confidencial está ativado nas GPUs.
Saiba como verificar a sua quota de GPU.
Leia o artigo VMs com GPU e quotas de alocação preemptíveis para compreender o consumo de quotas.