Para usar GPUs con Confidential VM, debes crear una instancia de Confidential VM con el modelo de aprovisionamiento de inicio flexible o de instancia Spot basado en el tipo de máquina a3-highgpu-1g y usar Intel TDX. Después de crear la instancia de VM, debes habilitar el modo de Confidential Computing en la GPU conectada.
Requisito de cuota de GPU
Antes de crear una instancia de VM confidencial con GPU, asegúrate de tener suficiente cuota de GPU asignada a tu proyecto de Google Cloud. Necesitas suficiente cuota en los siguientes tipos para crear correctamente una instancia de VM confidencial con GPU:
Cuota interrumpible para los modelos de GPU que quieres crear en cada región.
Es la cuota global para la cantidad total de GPUs de todos los tipos en todas las regiones.
Para solicitar un aumento de estas cuotas de GPU, consulta Solicita cuota interrumpible y Solicita cuota global.
Solicita cuota interrumpible
Para solicitar un aumento de la cuota regional de GPU NVIDIA H100 interrumpibles, haz lo siguiente:
En la consola de Google Cloud , ve a la página Cuotas.
En la casilla Filtro, ingresa
PREEMPTIBLE_NVIDIA_H100_GPUS
y, luego, presiona la tecla Intro o Volver.En la columna Dimensiones de la tabla, busca la fila con la región cuya cuota deseas aumentar.
En esa fila, haz clic en
Más acciones y, luego, en Editar cuota.En el panel Cambios en la cuota, ingresa la cantidad de GPUs que deseas en el cuadro Valor nuevo.
Haz clic en Enviar solicitud.
Solicita una cuota global
Para solicitar un aumento de la cuota global, haz lo siguiente:
En la consola de Google Cloud , ve a la página Cuotas.
En el cuadro Filtro, ingresa
GPUS_ALL_REGIONS
y, luego, presiona la tecla Intro o Retorno.En la fila resultante, haz clic en
Más acciones y, luego, en Editar cuota.En el panel Cambios en la cuota, ingresa la cantidad de GPUs que deseas en el cuadro Valor nuevo.
Haz clic en Enviar solicitud.
Qué sucede después de una solicitud de cuota
Si tu solicitud de cuota se aprueba, recibirás un correo electrónico de aprobación. Espera 15 minutos después de recibir el correo electrónico y, luego, actualiza la página Cuotas para verificar la cuota actualizada. Si la cuota aún no se actualizó después de 15 minutos, comunícate con Atención al cliente de Cloud.
Si se rechaza tu solicitud de cuota, es posible que recibas un correo electrónico en el que se expliquen los próximos pasos que puedes seguir. Para volver a solicitar más cuota, sigue las instrucciones que se indican en el correo electrónico.
Crea una instancia de Confidential VM con GPU
Para crear una instancia de VM con el modelo Spot o de inicio flexible, haz lo siguiente:
Para usar el modelo Spot, crea una instancia de VM Spot optimizada para aceleradores. Para obtener pasos detallados, consulta Modelo de Spot.
Para usar el modelo de inicio flexible, crea un grupo de instancias administrado (MIG). Para ver los pasos detallados, consulta Modelo de inicio flexible.
Modelo de Spot
gcloud
Para crear una instancia de VM Spot optimizada para aceleradores con gcloud CLI, usa el subcomando instances create
con la marca --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
Ingresa los siguientes valores:
INSTANCE_NAME
: Es el nombre de la instancia de VM nueva.IMAGE_PROJECT
: Es el proyecto que contiene la imagen del sistema operativo compatible. Recomendamos usar el proyecto de imágenesubuntu-os-cloud
para las imágenes de Ubuntu. De manera opcional, puedes usar el proyecto de imágenesconfidential-vm-images
para las imágenes de Container-Optimized OS.IMAGE_FAMILY_NAME
: Es la familia de la imagen del sistema operativo compatible con Confidential VMs. Cuando uses el proyecto de imagenubuntu-os-cloud
, te recomendamos que uses la familia de imágenesubuntu-2204-lts
. Para las imágenes de Container-Optimized OS del proyectoconfidential-vm-images
, usa la familia de imágenescos-tdx-113-lts
.ZONE_NAME
: Es la zona admitida en la que se creará la VM.
REST
Para crear una instancia de VM Spot, envía la siguiente solicitud POST con el contenido del cuerpo adecuado.
El método HTTP y la URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Cuerpo JSON de la solicitud:
{ "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" } ] }
Ingresa los siguientes valores:
INSTANCE_NAME
: Es el nombre de la plantilla de instancias de VM nueva.IMAGE_PROJECT
: Es el proyecto que contiene la imagen del sistema operativo compatible. Recomendamos usar el proyecto de imágenesubuntu-os-cloud
para las imágenes de Ubuntu. De manera opcional, puedes usar el proyecto de imágenesconfidential-vm-images
para las imágenes de Container-Optimized OS.IMAGE_FAMILY_NAME
: Es la familia de la imagen del sistema operativo compatible con Confidential VMs. Cuando uses el proyecto de imagenubuntu-os-cloud
, te recomendamos que uses la familia de imágenesubuntu-2204-lts
. Para las imágenes de Container-Optimized OS del proyectoconfidential-vm-images
, usa la familia de imágenescos-tdx-113-lts
.PROJECT_ID
: Opcional ID del proyecto en el que se creará la VM.ZONE_NAME
: Es la zona admitida en la que se creará la VM.
Modelo de inicio flexible
Para usar el modelo de inicio flexible, primero debes crear una plantilla de instancias y, luego, crear un grupo de instancias administrado (MIG) con esa plantilla. Luego, puedes agregar instancias de VM con GPU al MIG con solicitudes de cambio de tamaño.
Usar una solicitud de cambio de tamaño del MIG con el modelo de aprovisionamiento de inicio flexible mejora la capacidad de obtener instancias de VM con GPU. Para obtener más información, consulta Información sobre las solicitudes de cambio de tamaño en un MIG.
Antes de comenzar
Consulta los requisitos previos para crear un MIG y las limitaciones para crear una solicitud de cambio de tamaño en un MIG.
Crea un MIG con instancias de VM de GPU
Para crear una plantilla de instancias y, luego, usarla para crear un MIG, completa los siguientes pasos.
Crea una plantilla de instancias.
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 habilitar el inicio seguro, puedes usar de forma opcional la marca
--shielded-secure-boot
para los inicios de instancias de VM.Ingresa los siguientes valores:
INSTANCE_TEMPLATE_NAME
: Es el nombre de la nueva plantilla de instancias de VM.IMAGE_PROJECT
: Es el proyecto que contiene la imagen del sistema operativo compatible. Recomendamos usar el proyecto de imágenesubuntu-os-cloud
para las imágenes de Ubuntu. De manera opcional, puedes usar el proyecto de imágenesconfidential-vm-images
para las imágenes de Container-Optimized OS.IMAGE_FAMILY_NAME
: Es la familia de la imagen del sistema operativo compatible con Confidential VMs. Cuando uses el proyecto de imagenubuntu-os-cloud
, te recomendamos que uses la familia de imágenesubuntu-2204-lts
. Para las imágenes de Container-Optimized OS del proyectoconfidential-vm-images
, usa la familia de imágenescos-tdx-113-lts
.RUN_DURATION
: Es la duración de la que deseas que se ejecuten las instancias de VM solicitadas. Debes darle formato al valor como la cantidad de días, horas, minutos o segundos, seguidos ded
,h
,m
ys
, respectivamente. Por ejemplo, especifica30m
para 30 minutos o1d2h3m4s
para un día, dos horas, tres minutos y cuatro segundos. El valor debe ser de entre 10 minutos y siete días.PROJECT_ID
: Opcional ID del proyecto en el que se creará la VM.
REST
Para crear una plantilla de instancias de Confidential VM, envía la siguiente solicitud POST con el contenido del cuerpo adecuado.
El método HTTP y la URL:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Cuerpo JSON de la solicitud:
{ "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 habilitar el inicio seguro, puedes incluir de forma opcional el siguiente objeto para los inicios de instancias de VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Ingresa los siguientes valores:
PROJECT_ID
: Opcional ID del proyecto en el que se creará la VM.ZONE_NAME
: Es la zona admitida en la que se creará el MIG.INSTANCE_TEMPLATE_NAME
: Es el nombre de la nueva plantilla de instancias de VM.IMAGE_PROJECT
: Es el proyecto que contiene la imagen del sistema operativo compatible. Recomendamos usar el proyecto de imágenesubuntu-os-cloud
para las imágenes de Ubuntu. De manera opcional, puedes usar el proyecto de imágenesconfidential-vm-images
para las imágenes de Container-Optimized OS.IMAGE_FAMILY_NAME
: Es la familia de la imagen del sistema operativo compatible con Confidential VMs. Cuando uses el proyecto de imagenubuntu-os-cloud
, te recomendamos que uses la familia de imágenesubuntu-2204-lts
. Para las imágenes de Container-Optimized OS del proyectoconfidential-vm-images
, usa la familia de imágenescos-tdx-113-lts
.RUN_DURATION
: Es la duración, en segundos, por la que deseas que se ejecuten las instancias de VM solicitadas. El valor debe estar entre600
y604800
segundos, lo que corresponde a un rango de entre 10 minutos y siete días.
Crea un MIG y una solicitud de cambio de tamaño para agregar instancias de VM con GPU de una sola vez.
Enumera las instancias presentes en el MIG.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE_NAME \ --project=PROJECT_ID
Ingresa los siguientes valores:
INSTANCE_GROUP_NAME
: el nombre del MIGZONE_NAME
: Es la zona admitida desde la que se obtendrá una lista de instancias de VM.PROJECT_ID
: Opcional Es el ID del proyecto del que se obtendrá una lista de instancias de VM.
REST
Para enumerar todas las instancias, envía la siguiente solicitud GET.
El método HTTP y la URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Para limitar la lista de instancias a una zona específica, envía la siguiente solicitud GET.
El método HTTP y la URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
Ingresa los siguientes valores:
ZONE_NAME
: Es la zona admitida desde la que se obtendrá una lista de instancias de VM.PROJECT_ID
: Es el ID del proyecto del que se obtendrá una lista de instancias de VM.
Habilita el modo de Confidential Computing en la GPU
Conéctate a una instancia de VM en el MIG con el comando gcloud compute ssh.
gcloud compute ssh
Actualiza la lista de paquetes y, luego, instala las herramientas y bibliotecas necesarias.
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
Instala los controladores de GPU adecuados en la instancia de VM. Para las instancias de VM con el inicio seguro habilitado, consulta Instala controladores de GPU (VMs con inicio seguro). Recomendamos usar la versión del controlador
nvidia-driver-575-open
.Para configurar una comunicación segura entre la GPU y el controlador de GPU, habilita la API de criptografía del kernel de Linux (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
Habilita el modo de persistencia para establecer una conexión segura de Security Protocol and Data Model (SPDM) entre la GPU y el controlador de la 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
Reinicia la instancia de VM para aplicar la LKCA y la configuración del modo de persistencia.
sudo reboot
(Opcional) Instala los siguientes ejemplos 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
¿Qué sigue?
Obtén más información para verificar que el modo confidencial esté habilitado en las GPUs.
Obtén más información para verificar tu cuota de GPU.
Lee VMs de GPU y cuotas de asignación interrumpibles para comprender el consumo de cuotas.