Para usar GPUs con instancias de Confidential VM, debes crear una instancia de VM con un tipo de máquina y un modelo de aprovisionamiento de instancias compatibles. Después de crear la instancia de VM, habilita el modo de Confidential Computing en la GPU conectada.
Las instancias de Confidential VM con GPU de NVIDIA están disponibles en los siguientes tipos de máquinas:
Tipo de máquina A3 High: GPU NVIDIA H100 con Intel TDX. Admite modelos de aprovisionamiento de inicio flexible y Spot.
Tipo de máquina G4: NVIDIA RTX PRO 6000 con AMD SEV. Admite modelos de aprovisionamiento estándar (a pedido), Spot y de inicio flexible, y reservas.
El uso de GPU NVIDIA RTX Pro 6000 con instancias de Confidential VM G4 genera automáticamente una tarifa de licencia para el software y los servicios de Confidential Computing de NVIDIA. Para obtener más detalles, consulta Precios de Confidential Computing con GPU.
Antes de crear una instancia de Confidential VM con GPU, asegúrate de tener suficiente cuota de GPU. Para obtener más información, consulta Cuotas.
Crea una instancia de Confidential VM con GPU
Para crear una instancia de Confidential VM con una GPU conectada, usa uno de los siguientes modelos de aprovisionamiento:
Estándar (a pedido): Crea una instancia de VM estándar (a pedido) optimizada para aceleradores. Este modelo solo está disponible para el tipo de máquina G4. Para obtener los pasos detallados, consulta el modelo Estándar (a pedido) o Spot.
Spot: Crea una instancia de VM Spot optimizada para aceleradores para los tipos de máquinas A3 High o G4. Para obtener los pasos detallados, consulta el modelo Estándar (a pedido) o Spot.
Inicio flexible: Crea un grupo de instancias administrado (MIG) para los tipos de máquinas A3 High o G4. Para obtener los pasos detallados, consulta el modelo de inicio flexible.
Modelo estándar (a pedido) o Spot
gcloud
Para crear una instancia de VM estándar (a pedido) o
VM Spot optimizada para aceleradores con la gcloud CLI, usa el
instances create
subcomando con la --provisioning-model marca.
gcloud compute instances create INSTANCE_NAME \
--provisioning-model=PROVISIONING_MODEL \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Para habilitar el inicio seguro,
puedes usar la marca --shielded-secure-boot para los inicios de instancias de VM.
Ingresa los siguientes valores:
INSTANCE_NAME: El nombre de la instancia de VM nueva.PROVISIONING_MODEL: El modelo de aprovisionamiento compatible con el tipo de máquina. Elige una de estas opciones:Tipo de máquina A3 High:
SPOTpara instancias de VM Spot.Tipo de máquina G4:
STANDARDpara instancias de VM estándar (a pedido) oSPOTpara instancias de VM Spot. Si no se especifica, este valor se establece de forma predeterminada enSTANDARD.
CONFIDENTIAL_COMPUTING_TECHNOLOGY: El tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: El tipo de máquina de la VM. Elige una de estas opciones:a3-highgpu-1gg4-standard-48
ZONE_NAME: La zona compatible en la que se creará la VM.IMAGE_PROJECT: El proyecto que contiene la imagen del sistema operativo compatible con Confidential VM para GPU.IMAGE_FAMILY_NAME: La familia de la imagen del sistema operativo compatible con Confidential VM para GPU.
REST
Para crear una instancia de VM estándar (a pedido) o VM Spot, envía la siguiente solicitud POST con el contenido del cuerpo adecuado.
Usa el siguiente método y URL de HTTP:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Incluye el siguiente JSON de la solicitud:
{
"name": "INSTANCE_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"automaticRestart": true,
"provisioningModel": "PROVISIONING_MODEL"
},
"disks": [
{
"boot": true,
"autoDelete": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
"diskSizeGb": "30"
}
}
],
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
Ingresa los siguientes valores:
PROJECT_ID: Opcional Es el ID del proyecto en el que se creará la VM.ZONE: La zona compatible en la que se creará la VM.INSTANCE_NAME: El nombre de la instancia de VM nueva.MACHINE_TYPE_NAME: El tipo de máquina de la VM. Elige una de estas opciones:a3-highgpu-1gg4-standard-48
CONFIDENTIAL_COMPUTING_TECHNOLOGY: El tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
PROVISIONING_MODEL: El modelo de aprovisionamiento compatible con la serie de máquinas. Elige una de estas opciones:Tipo de máquina A3 High:
SPOTpara instancias de VM Spot.Tipo de máquina G4:
STANDARDpara instancias de VM estándar (a pedido) oSPOTpara instancias de VM Spot. Si no se especifica, este valor se establece de forma predeterminada enSTANDARD.
IMAGE_PROJECT: El proyecto que contiene la imagen del sistema operativo compatible con Confidential VM para GPU.IMAGE_FAMILY: La familia de la imagen del sistema operativo compatible con Confidential VM para GPU.
Modelo de inicio flexible
Para usar el modelo de inicio flexible, primero crea una plantilla de instancias y, luego, usa esa plantilla para crear un grupo de instancias administrado (MIG). Luego, puedes agregar instancias de VM de GPU al MIG con solicitudes de cambio de tamaño.
El uso de una solicitud de cambio de tamaño de MIG con el modelo de aprovisionamiento de inicio flexible mejora la capacidad de obtener instancias de VM de GPU. Para obtener más información, consulta Información sobre las solicitudes de cambio de tamaño en un MIG.
Antes de comenzar
- Para crear un MIG, consulta los requisitos previos del MIG.
- Para crear una solicitud de cambio de tamaño en un MIG, consulta las limitaciones de la solicitud de cambio de tamaño.
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=CONFIDENTIAL_COMPUTING_TECHNOLOGY \ --machine-type=MACHINE_TYPE_NAME \ --maintenance-policy=TERMINATE \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --boot-disk-size=30G \ --instance-termination-action=DELETE \ --max-run-duration=RUN_DURATION \ --project=PROJECT_IDIngresa los siguientes valores:
INSTANCE_TEMPLATE_NAME: El nombre de la nueva plantilla de instancias de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: El tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: El tipo de máquina de la VM. Elige una de estas opciones:a3-highgpu-1gg4-standard-48
IMAGE_PROJECT: El proyecto que contiene la imagen del sistema operativo compatible con Confidential VM para GPU.IMAGE_FAMILY_NAME: La familia de la imagen del sistema operativo compatible con Confidential VM para GPU que se usará.RUN_DURATION: La duración durante la que deseas que se ejecuten las instancias de VM solicitadas. Debes dar formato al valor como la cantidad de días, horas, minutos o segundos, seguida ded,h,m, ys, respectivamente. Por ejemplo:6d8h44m.PROJECT_ID: El 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.
Usa el siguiente método y URL de HTTP:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplatesIncluye el siguiente JSON de la solicitud:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY" }, "machineType": "MACHINE_TYPE_NAME", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": "RUN_DURATION_IN_SECONDS" }, "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" } ], "canIpForward": false } }Para habilitar el inicio seguro, puedes incluir el siguiente objeto para los inicios de instancias de VM.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }Ingresa los siguientes valores:
PROJECT_ID: El ID del proyecto en el que se creará la plantilla.REGION: La región en la que se creará la plantilla.INSTANCE_TEMPLATE_NAME: El nombre de la nueva plantilla de instancias de VM.CONFIDENTIAL_COMPUTING_TECHNOLOGY: El tipo de tecnología de Confidential Computing que se usará. Elige una de estas opciones:Tipo de máquina A3 High (
a3-highgpu-1g):TDXTipo de máquina G4 (
g4-standard-48):SEV
MACHINE_TYPE_NAME: El tipo de máquina de la VM. Elige una de estas opciones:a3-highgpu-1gg4-standard-48
RUN_DURATION_IN_SECONDS: La duración, en segundos, durante la que deseas que se ejecuten las instancias de VM solicitadas. El valor debe estar entre600y604800segundos.IMAGE_PROJECT: El proyecto que contiene la imagen del sistema operativo compatible con Confidential VM para GPU.IMAGE_FAMILY_NAME: La familia de la imagen del sistema operativo compatible con Confidential VM para GPU que se usará.
Crea un MIG y una solicitud de cambio de tamaño para agregar instancias de VM de 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_IDIngresa los siguientes valores:
INSTANCE_GROUP_NAME: El nombre del MIG.ZONE_NAME: La zona compatible de la que deseas obtener una lista de instancias de VM.PROJECT_ID: Opcional Es el ID del proyecto del que deseas obtener una lista de instancias de VM.
REST
Para enumerar todas las plantillas, envía la siguiente solicitud GET.
Usa el siguiente método y URL de HTTP:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplatesPara limitar la lista de instancias a una zona específica, envía la siguiente solicitud GET.
Usa el siguiente método y URL de HTTP:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplatesIngresa los siguientes valores:
ZONE_NAME: La zona compatible de la que deseas obtener una lista de instancias de VM.PROJECT_ID: El ID del proyecto del que deseas obtener una lista de instancias de VM.
Usa reservas con instancias de Confidential VM
Puedes usar reservas para asegurarte de tener capacidad para tus instancias de Confidential VM solo con el tipo de máquina G4.
Para usar una reserva para tu instancia de Confidential VM, haz lo siguiente:
Crea una reserva estándar en la zona compatible. Puedes controlar cómo las instancias consumen esta reserva con la marca
--require-specific-reservationdurante la creación de la reserva.Crea una instancia de Confidential VM para usar la reserva. Cuando crees la instancia de VM, incluye la marca
--confidential-compute-type=SEVpara que sea una instancia de Confidential VM. La forma en que esta instancia consume la reserva depende de la configuración de afinidad de la reserva.
En los siguientes ejemplos, se muestra cómo usar reservas con instancias de Confidential VM. El método para consumir la reserva depende de cómo se creó:
Consumo automático: Si se crea una reserva sin la
--require-specific-reservationmarca, puedes crear una instancia de Confidential VM G4 con propiedades coincidentes (como el tipo de máquina o la zona) para usar la reserva automáticamente.Consumo específico: Si se crea una reserva con la
--require-specific-reservationmarca, debes orientar la reserva con las--reservation-affinity=specificy--reservation=RESERVATION_NAMEmarcas cuando crees la instancia:gcloud compute instances create INSTANCE_NAME \ --project=PROJECT_ID \ --zone=ZONE_NAME \ --machine-type=g4-standard-48 \ --confidential-compute-type=SEV \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2404-lts-amd64 \ --reservation-affinity=specific \ --reservation=RESERVATION_NAMEIngresa los siguientes valores:
INSTANCE_NAME: El nombre de la instancia de VM nueva.PROJECT_ID: Opcional Es el ID del proyecto en el que se creará la VM.ZONE_NAME: La zona compatible en la que se creará la VM.RESERVATION_NAME: Es el nombre de la reserva.
Para obtener información sobre cómo las instancias de VM consumen reservas y cómo funciona la afinidad, consulta Consume reservas.
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 sshActualiza 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-12Instala 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 de inicio seguro). Te recomendamos que uses la versión 580 o posterior de los controladores de módulos de kernel abiertos de NVIDIA.
Para configurar la comunicación segura entre la GPU y el controlador de GPU, habilita la API de Crypto 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 -uHabilita el modo de persistencia para establecer una conexión segura del Protocolo de seguridad y modelo de datos (SPDM) entre la GPU y el controlador de 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-reloadReinicia la instancia de VM para aplicar las configuraciones de LKCA y del modo de persistencia.
sudo rebootConéctate a una instancia de VM en el MIG con el comando gcloud compute ssh.
gcloud compute ssh(Opcional) Instala las muestras de CUDA que admitan la versión del controlador que necesitas.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz tar xzvf cuda-samples.tar.gz
¿Qué sigue?
Obtén información para verificar que el modo confidencial esté habilitado en las GPU.
Obtén más información sobre la cuota de GPU.
Para comprender el consumo de cuota, consulta VMs de GPU y cuotas de asignación interrumpibles.