Para obtener más información sobre la creación masiva, consulta Acerca de la creación masiva de VMs. Para obtener más información sobre cómo crear VMs con GPU conectadas, consulta la Descripción general de la creación de una instancia con GPU conectadas.
Antes de comenzar
- Para revisar las limitaciones y los pasos de requisitos previos adicionales para crear instancias con GPU conectadas, como seleccionar una imagen de SO y verificar la cuota de GPU, consulta la Descripción general de la creación de una instancia con GPU conectadas.
- Para revisar las limitaciones de la creación masiva, consulta Acerca de la creación masiva de VMs.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
- Configura una región y una zona predeterminadas.
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para crear VMs,
pídele a tu administrador que te otorgue el rol de IAM
Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1)
en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear VM. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear VM:
-
compute.instances.createen el proyecto -
Si deseas usar una imagen personalizada para crear la VM, sigue estos pasos:
compute.images.useReadOnlyen la imagen -
Para usar una instantánea a fin de crear la VM, haz lo siguiente:
compute.snapshots.useReadOnlyen la instantánea -
Si quieres usar una plantilla de instancias para crear la VM, sigue estos pasos:
compute.instanceTemplates.useReadOnlyen la plantilla de instancias -
A fin de especificar una subred para tu VM:
compute.subnetworks.useen el proyecto o en la subred elegida -
Si deseas especificar una dirección IP estática para la VM:
compute.addresses.useen el proyecto -
Para asignar una dirección IP externa a la VM cuando se usa una red de VPC,
compute.subnetworks.useExternalIpen el proyecto o en la subred elegida. -
Para asignar una red heredada a la VM, ejecuta
compute.networks.useen el proyecto. -
Para asignar una dirección IP externa a la VM cuando se usa una red heredada, ejecuta
compute.networks.useExternalIpen el proyecto -
Para configurar los metadatos de la instancia de VM para la VM,
compute.instances.setMetadataen el proyecto. -
Para configurar etiquetas en la VM, haz lo siguiente:
compute.instances.setTagsen la VM -
Para configurar etiquetas en la VM, haz lo siguiente:
compute.instances.setLabelsen la VM -
A fin de configurar una cuenta de servicio para que la VM use:
compute.instances.setServiceAccounten la VM -
Crear un disco nuevo para la VM:
compute.disks.createen el proyecto -
Para conectar un disco existente en modo de solo lectura o de lectura y escritura, usa
compute.disks.useen el disco. -
Para conectar un disco existente en modo de solo lectura, haz lo siguiente:
compute.disks.useReadOnlyen el disco
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Descripción general
Cuando creas VMs con GPU conectadas mediante el método de creación masiva, puedes elegir crear VMs en una región (como us-central1) o en una zona específica, como (us-central1-a).
Si eliges especificar una región, Compute Engine coloca las VMs en cualquier zona dentro de la región que admite las GPU.
Tipos de máquina
La familia de máquinas optimizadas para aceleradores contiene varios tipos de máquinas.
Cada tipo de máquina optimizada para aceleradores tiene un modelo específico de GPU de NVIDIA conectada para admitir el tipo de carga de trabajo recomendado.
| Cargas de trabajo de IA y AA | Gráficos y visualización |
|---|---|
|
Los tipos de máquinas de la serie A optimizados para aceleradores están diseñados para cargas de trabajo de computación de alto rendimiento (HPC), inteligencia artificial (IA) y aprendizaje automático (AA).
En estos tipos de máquinas, el modelo de GPU se conecta automáticamente a la instancia. |
Los tipos de máquinas de la serie G optimizados para aceleradores están diseñados para cargas de trabajo como las de simulación de NVIDIA Omniverse, aplicaciones de alto procesamiento gráfico, transcodificación de video y escritorios virtuales. Estos tipos de máquinas admiten estaciones de trabajo virtuales (vWS) NVIDIA RTX.
En estos tipos de máquinas, el modelo de GPU se conecta automáticamente a la instancia. |
|
Crea grupos de A4X, A4 y A3 Ultra
Para crear instancias de forma masiva para las series de máquinas A4X, A4 y A3 Ultra, consulta la descripción general de las opciones de implementación en la documentación de AI Hypercomputer.
Crea grupos de VMs A3, A2, G4 y G2
En esta sección, se explica cómo puedes crear instancias de forma masiva para las series de máquinas A3 High, A3 Mega, A3 Edge, A2 Standard, A2 Ultra, G4 y G2 con Google Cloud CLI o REST.
gcloud
Para crear un grupo de VMs, usa el comando gcloud compute instances bulk create. Para obtener más información sobre los parámetros y cómo usar este comando, consulta Crea VMs de forma masiva.
Ejemplo
En este ejemplo, se crean dos VMs que tienen GPUs conectadas mediante las siguientes especificaciones:
- Nombres de las VM:
my-test-vm-1,my-test-vm-2 - Cada VM tiene dos GPU conectadas, especificadas mediante el tipo de máquina optimizado para aceleradores adecuado
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--region=REGION \
--count=2 \
--machine-type=MACHINE_TYPE \
--boot-disk-size=200 \
--image=IMAGE \
--image-project=IMAGE_PROJECT \
--on-host-maintenance=TERMINATE
Reemplaza lo siguiente:
REGION: la región para las VMs. Esta región debe ser compatible con el tipo de máquina optimizado para aceleradores que seleccionaste.MACHINE_TYPE: el tipo de máquina que seleccionaste. Elige una de las siguientes opciones:- Un tipo de máquina A3 High
- Un tipo de máquina A3 Mega
- Un tipo de máquina A3 Edge
- Un tipo de máquina A2 Standard
- Un tipo de máquina A2 Ultra
- Un tipo de máquina G4
- Un tipo de máquina G2
Los tipos de máquinas G2 también admiten memoria personalizada. La memoria debe ser un múltiplo de 1,024 MB y debe estar dentro del rango de memoria admitido. Por ejemplo, para crear una VM con 4 CPU virtuales y 19 GB de memoria, especifica
--machine-type=g2-custom-4-19456.
IMAGE: una imagen del sistema operativo que admite GPU.Si deseas usar la imagen más reciente en una familia de imágenes, reemplaza la marca
--imagepor la marca--image-familyy configura su valor en una familia de imágenes que admita GPU. Por ejemplo:--image-family=rocky-linux-8-optimized-gcpTambién puedes especificar una imagen personalizada o una Deep Learning VM Image.
IMAGE_PROJECT: el proyecto de imagen de Compute Engine al que pertenece la imagen de SO. Si usas una imagen personalizada o una Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.VWS_ACCELERATOR_COUNTes la cantidad de GPUs virtuales que necesitas.
Si se ejecuta de forma correcta, el resultado es similar al siguiente:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
Marcas opcionales
Para configurar aún más tu instancia y satisfacer las necesidades de tu carga de trabajo o sistema operativo, incluye una o más de las siguientes marcas cuando ejecutes el comando gcloud compute instances bulk create.
| Función | Descripción |
|---|---|
| Modelo de aprovisionamiento | Establece el modelo de aprovisionamiento para la instancia. Puedes especificar STANDARD o SPOT. Si no especificas un modelo de aprovisionamiento, Compute Engine establece el valor en STANDARD. Para obtener más información, consulta los modelos de aprovisionamiento de instancias de Compute Engine.
--provisioning-model=PROVISIONING_MODEL |
| Estación de trabajo virtual | Especifica estaciones de trabajo virtuales (vWS) NVIDIA RTX para cargas de trabajo de gráficos.
Esta función solo es compatible con las instancias G4 y G2.
--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT Reemplaza lo siguiente:
|
| SSD local | Conecta uno o más SSD locales a tu instancia. Las SSD locales se pueden usar como discos rápidos para instalación nueva o para ingresar datos a las GPU y evitar los cuellos de botella de E/S.
--local-ssd=interface=nvme \
--local-ssd=interface=nvme \
--local-ssd=interface=nvme ... |
| Interfaz de red | Asocia varias interfaces de red a tu instancia. En el caso de las instancias g4-standard-384, puedes adjuntar hasta dos interfaces de red. Puedes usar esta marca para crear una instancia con interfaces de red dobles (2 veces 200 Gbps). Cada interfaz de red debe estar en una red de VPC única.
--network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \ --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC Las interfaces de red duales solo son compatibles con los tipos de máquinas Reemplaza lo siguiente:
|
| Política de posición | Controla la ubicación de tu instancia dentro de una zona. Puedes especificar una política de compactación para minimizar la latencia de red en tus instancias G2 o una política de distribución para mejorar la resiliencia de tus instancias G4 o G2 ante interrupciones específicas de la zona.
--resource-policies=POLICY_NAME Reemplaza |
REST
Usa el método instances.bulkInsert con los parámetros necesarios para crear varias VM en una región. Para obtener más información sobre los parámetros y cómo usar este comando, consulta Crea VMs de forma masiva.
Ejemplo
En este ejemplo, se crean dos VMs que tienen GPUs conectadas mediante las siguientes especificaciones:
- Nombres de las VM:
my-test-vm-1,my-test-vm-2 Cada VM tiene dos GPU conectadas, especificadas mediante el tipo de máquina optimizado para aceleradores adecuado
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "namePattern":"my-test-vm-#", "count":"2", "instanceProperties": { "machineType":MACHINE_TYPE, "disks":[ { "type":"PERSISTENT", "initializeParams":{ "diskSizeGb":"200", "sourceImage":SOURCE_IMAGE_URI }, "boot":true } ], "name": "default", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/default" } ], "scheduling":{ "onHostMaintenance":"TERMINATE", ["automaticRestart":true] } } }
Reemplaza lo siguiente:
PROJECT_ID: El ID de tu proyectoREGION: la región para las VMs. Esta región debe ser compatible con el modelo de GPU seleccionado.MACHINE_TYPE: el tipo de máquina que seleccionaste. Elige una de las siguientes opciones:- Un tipo de máquina A3 High
- Un tipo de máquina A3 Mega
- Un tipo de máquina A3 Edge
- Un tipo de máquina A2 Standard
- Un tipo de máquina A2 Ultra
- Un tipo de máquina G4
- Un tipo de máquina G2.
Los tipos de máquinas G2 también admiten memoria personalizada. La memoria debe ser un múltiplo de 1,024 MB y debe estar dentro del rango de memoria admitido. Por ejemplo, el nombre del tipo de máquina para una instancia con 4 CPU virtuales y 19 GB de memoria sería
g2-custom-4-19456.
SOURCE_IMAGE_URI: el URI de la imagen o familia de imágenes específicas que deseas usar.Por ejemplo:
- Imagen específica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719" - Familia de imágenes:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp".
Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO no obsoleta más reciente de esa familia. Para obtener más información sobre el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.
- Imagen específica:
Campos opcionales
Para configurar aún más tu instancia y satisfacer las necesidades de tu carga de trabajo o sistema operativo, incluye una o más de las siguientes marcas cuando ejecutes el método instances.bulkInsert.
| Función | Descripción |
|---|---|
| Modelo de aprovisionamiento | Para reducir los costos, puedes especificar un modelo de aprovisionamiento diferente agregando el campo "provisioningModel": "PROVISIONING_MODEL" al objeto scheduling en tu solicitud. Para obtener más información, consulta los modelos de aprovisionamiento de instancias de Compute Engine.
"scheduling":
{
"onHostMaintenance": "TERMINATE",
"provisioningModel": "PROVISIONING_MODEL"
}
Reemplaza
|
| Estación de trabajo virtual | Especifica estaciones de trabajo virtuales (vWS) NVIDIA RTX para cargas de trabajo de gráficos.
Esta función solo es compatible con las instancias G4 y G2.
"guestAccelerators":
[
{
"acceleratorCount": VWS_ACCELERATOR_COUNT,
"acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
}
]
Reemplaza lo siguiente:
|
| SSD local | Conecta uno o más SSD locales a tu instancia. Las SSD locales se pueden usar como discos rápidos para instalación nueva o para ingresar datos a las GPU y evitar los cuellos de botella de E/S.
{
"type": "SCRATCH",
"autoDelete": true,
"initializeParams": {
"diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
}
}
|
| Interfaz de red | Asocia varias interfaces de red a tu instancia. En el caso de las instancias g4-standard-384, puedes adjuntar hasta dos interfaces de red. Esto crea una instancia con interfaces de red dobles (2 x 200 Gbps). Cada interfaz de red debe estar en una red de VPC única.
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
"nicType": "GVNIC"
},
{
"network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
"nicType": "GVNIC"
}
]
Las interfaces de red duales solo son compatibles con los tipos de máquinas Reemplaza lo siguiente:
|
| Política de posición | Controla la ubicación de tu instancia dentro de una zona. Puedes especificar una política de compactación para minimizar la latencia de red en tus instancias G2 o una política de distribución para mejorar la resiliencia de tus instancias G4 o G2 ante interrupciones específicas de la zona.
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
Reemplaza lo siguiente:
|
Crear grupos de VMs de uso general N1
Puedes crear un grupo de VMs con GPU conectadas mediante Google Cloud CLI o REST.
En esta sección, se describe cómo crear varias VM con los siguientes tipos de GPU:
GPU de NVIDIA:
- NVIDIA T4:
nvidia-tesla-t4 - NVIDIA P4:
nvidia-tesla-p4 - NVIDIA P100:
nvidia-tesla-p100 - NVIDIA V100:
nvidia-tesla-v100
NVIDIA RTX Virtual Workstation (vWS) (antes conocida como NVIDIA GRID):
- Estación de trabajo virtual NVIDIA T4:
nvidia-tesla-t4-vws - Estación de trabajo virtual NVIDIA P4:
nvidia-tesla-p4-vws Estación de trabajo virtual NVIDIA P100:
nvidia-tesla-p100-vwsPara estas estaciones de trabajo virtuales, se agrega de forma automática una licencia de estación de trabajo virtual NVIDIA RTX (vWS) a tu instancia.
gcloud
Para crear un grupo de VMs, usa el comando gcloud compute instances bulk create.
Para obtener más información sobre los parámetros y cómo usar este comando, consulta Crea VMs de forma masiva.
Ejemplo
En el siguiente ejemplo, se crean dos VMs con GPU conectadas mediante las siguientes especificaciones:
- Nombres de las VM:
my-test-vm-1,my-test-vm-2 - VM creadas en cualquier zona de
us-central1que admita GPU - Cada VM tiene dos GPU T4 conectadas, especificadas mediante el tipo de acelerador y las marcas de recuento de aceleradores.
- Cada VM tiene instalados controladores de GPU
- Cada VM usa Deep Learning VM Image
pytorch-latest-gpu-v20211028-debian-10
gcloud compute instances bulk create \
--name-pattern="my-test-vm-#" \
--count=2 \
--region=us-central1 \
--machine-type=n1-standard-2 \
--accelerator type=nvidia-tesla-t4,count=2 \
--boot-disk-size=200 \
--metadata="install-nvidia-driver=True" \
--scopes="https://www.googleapis.com/auth/cloud-platform" \
--image=pytorch-latest-gpu-v20211028-debian-10 \
--image-project=deeplearning-platform-release \
--on-host-maintenance=TERMINATE --restart-on-failure
Si se ejecuta de forma correcta, el resultado es similar al siguiente:
NAME ZONE my-test-vm-1 us-central1-b my-test-vm-2 us-central1-b Bulk create request finished with status message: [VM instances created: 2, failed: 0.]
REST
Usa el método instances.bulkInsert con los parámetros necesarios para crear varias VM en una región.
Para obtener más información sobre los parámetros y cómo usar este comando, consulta Crea VMs de forma masiva.
Ejemplo
En el siguiente ejemplo, se crean dos VMs con GPU conectadas mediante las siguientes especificaciones:
- Nombres de las VM:
my-test-vm-1,my-test-vm-2 - VM creadas en cualquier zona de
us-central1que admita GPU - Cada VM tiene dos GPU T4 conectadas, especificadas mediante el tipo de acelerador y las marcas de recuento de aceleradores.
- Cada VM tiene instalados controladores de GPU
- Cada VM usa Deep Learning VM Image
pytorch-latest-gpu-v20211028-debian-10
Reemplaza PROJECT_ID con el ID del proyecto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/instances/bulkInsert
{
"namePattern":"my-test-vm-#",
"count":"2",
"instanceProperties": {
"machineType":"n1-standard-2",
"disks":[
{
"type":"PERSISTENT",
"initializeParams":{
"diskSizeGb":"200",
"sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
},
"boot":true
}
],
"name": "default",
"networkInterfaces":
[
{
"network": "projects/PROJECT_ID/global/networks/default"
}
],
"guestAccelerators":
[
{
"acceleratorCount": 2,
"acceleratorType": "nvidia-tesla-t4"
}
],
"scheduling":{
"onHostMaintenance":"TERMINATE",
"automaticRestart":true
},
"metadata":{
"items":[
{
"key":"install-nvidia-driver",
"value":"True"
}
]
}
}
}
Próximos pasos
Aprende a controlar el rendimiento de la GPU.
Obtén más información para usar un ancho de banda de red más alto.
Obtén información para controlar los eventos de mantenimiento del host de GPU.
- Obtén información para ver el uso real y previsto de tus VMs y GPUs.