Cree una máquina virtual N1 que tenga GPU conectadas


Este documento explica cómo crear una máquina virtual que tenga GPU conectadas y utilice una familia de máquinas N1 . Puede utilizar la mayoría de los tipos de máquinas N1, excepto la N1 shared-core .

Antes de comenzar

  • Para revisar pasos de requisitos previos adicionales, como seleccionar una imagen del sistema operativo y verificar la cuota de GPU, revise el documento de descripción general .
  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

    1. 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.

    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de 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 obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Roles requeridos

Para obtener los permisos que necesita para crear máquinas virtuales, solicite a su administrador que le otorgue la función de IAM Compute Instance Admin (v1) ( roles/compute.instanceAdmin.v1 ) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Esta función predefinida contiene los permisos necesarios para crear máquinas virtuales. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

Se requieren los siguientes permisos para crear máquinas virtuales:

  • compute.instances.create en el proyecto.
  • Para usar una imagen personalizada para crear la VM: compute.images.useReadOnly en la imagen
  • Para usar una instantánea para crear la VM: compute.snapshots.useReadOnly en la instantánea
  • Para usar una plantilla de instancia para crear la VM: compute.instanceTemplates.useReadOnly en la plantilla de instancia
  • Para asignar una red heredada a la VM: compute.networks.use en el proyecto
  • Para especificar una dirección IP estática para la VM: compute.addresses.use en el proyecto
  • Para asignar una dirección IP externa a la VM cuando se usa una red heredada: compute.networks.useExternalIp en el proyecto
  • Para especificar una subred para su VM: compute.subnetworks.use en el proyecto o en la subred elegida
  • Para asignar una dirección IP externa a la VM cuando se usa una red VPC: compute.subnetworks.useExternalIp en el proyecto o en la subred elegida
  • Para configurar metadatos de instancia de VM para la VM: compute.instances.setMetadata en el proyecto
  • Para configurar etiquetas para la VM: compute.instances.setTags en la VM
  • Para configurar etiquetas para la VM: compute.instances.setLabels en la VM
  • Para configurar una cuenta de servicio para que la use la VM: compute.instances.setServiceAccount en la VM
  • Para crear un nuevo disco para la VM: compute.disks.create en el proyecto
  • Para conectar un disco existente en modo de solo lectura o lectura-escritura: compute.disks.use en el disco
  • Para conectar un disco existente en modo de solo lectura: compute.disks.useReadOnly en el disco

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Descripción general

Los siguientes modelos de GPU se pueden conectar a máquinas virtuales que utilizan familias de máquinas N1.

GPU NVIDIA:

  • NVIDIA T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

Estación de trabajo virtual NVIDIA RTX (vWS) (anteriormente 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-vws

    Para estas estaciones de trabajo virtuales, se agrega automáticamente una licencia de estación de trabajo virtual NVIDIA RTX (vWS) a su máquina virtual.

Cree una máquina virtual que tenga GPU conectadas

Puede crear una máquina virtual N1 que tenga GPU conectadas mediante la consola de Google Cloud, la CLI de Google Cloud o REST.

Consola

  1. En la consola de Google Cloud, vaya a la página Crear una instancia .

    Ir a Crear una instancia

  2. Especifique un nombre para su VM. Consulte Convención de nomenclatura de recursos .

  3. Seleccione una región y zona donde las GPU estén disponibles. Consulta la lista de zonas de GPU disponibles.

  4. En la sección Configuración de la máquina , seleccione la familia de máquinas GPU y luego haga lo siguiente:

    1. En la lista de tipos de GPU , seleccione uno de los modelos de GPU compatibles con las máquinas N1.
    2. En la lista Número de GPU , seleccione la cantidad de GPU.
    3. Si su modelo de GPU admite estaciones de trabajo virtuales NVIDIA RTX (vWS) para cargas de trabajo de gráficos y planea ejecutar cargas de trabajo con uso intensivo de gráficos en esta máquina virtual, seleccione Habilitar estación de trabajo virtual (NVIDIA GRID) .

    4. En la lista Tipo de máquina , seleccione uno de los tipos de máquina N1 preestablecidos. Alternativamente, también puede especificar configuraciones de tipo de máquina personalizadas.

  5. En la sección Disco de arranque , haga clic en Cambiar . Esto abre la página de configuración del disco de arranque .

  6. En la página de configuración del disco de arranque , haga lo siguiente:

    1. En la pestaña Imágenes públicas , elija una imagen de Compute Engine compatible o Imágenes de VM de aprendizaje profundo .
    2. Especifique un tamaño de disco de arranque de al menos 40 GB.
    3. Para confirmar las opciones de su disco de arranque, haga clic en Seleccionar .
  7. Opcional: Configure el modelo de aprovisionamiento. Por ejemplo, si su carga de trabajo es tolerante a fallas y puede soportar una posible apropiación de VM, considere usar Spot VM para reducir el costo de sus VM y las GPU conectadas. Para obtener más información, consulte GPU en máquinas virtuales puntuales . Para hacer esto, complete los siguientes pasos:

    1. En la sección Políticas de disponibilidad , seleccione Spot en la lista de modelos de aprovisionamiento de VM . Esta configuración deshabilita las opciones de reinicio automático y mantenimiento del host para la VM.
    2. Opcional: en la lista Al finalizar la VM , selecciona qué sucede cuando Compute Engine se adelanta a la VM:
      • Para detener la máquina virtual durante la preferencia, seleccione Detener (predeterminado).
      • Para eliminar la VM durante la preferencia, seleccione Eliminar .
  8. Para crear e iniciar la VM, haga clic en Crear .

nube de gcloud

Para crear e iniciar una VM, use el comando gcloud compute instances create con las siguientes marcas.

Si su carga de trabajo es tolerante a fallas y puede soportar una posible apropiación de VM, considere usar Spot VM para reducir el costo de sus VM y las GPU conectadas. Para obtener más información, consulte GPU en máquinas virtuales puntuales . --provisioning-model=SPOT es un indicador opcional que configura sus máquinas virtuales como máquinas virtuales de spot. Para las máquinas virtuales puntuales, los indicadores de opciones de reinicio automático y mantenimiento del host están deshabilitados.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE \
    [--provisioning-model=SPOT]

Reemplace lo siguiente:

  • VM_NAME : el nombre de la nueva VM.
  • MACHINE_TYPE : el tipo de máquina que seleccionó para su VM.
  • ZONE : la zona para la VM. Esta zona debe admitir el tipo de GPU .
  • DISK_SIZE : el tamaño de su disco de arranque en GB. Especifique un tamaño de disco de arranque de al menos 40 GB.
  • IMAGE o IMAGE_FAMILY que admita GPU . Especifique uno de los siguientes:

    • IMAGE : la versión requerida de una imagen pública. Por ejemplo, --image debian-10-buster-v20200309 .
    • IMAGE_FAMILY : una familia de imágenes . Esto crea la máquina virtual a partir de la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica --image-family debian-10 , Compute Engine crea una VM a partir de la última versión de la imagen del sistema operativo en la familia de imágenes de Debian 10.

    También puede especificar una imagen personalizada o imágenes de VM de aprendizaje profundo .

  • IMAGE_PROJECT : el proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si utiliza una imagen personalizada o imágenes de VM de aprendizaje profundo, especifique el proyecto al que pertenecen esas imágenes.

  • ACCELERATOR_COUNT : la cantidad de GPU que desea agregar a su VM. Consulta GPU en Compute Engine para obtener una lista de límites de GPU según el tipo de máquina de tu VM.

  • ACCELERATOR_TYPE : el modelo de GPU que desea utilizar. Si planea ejecutar cargas de trabajo con uso intensivo de gráficos en esta máquina virtual, use uno de los modelos de estación de trabajo virtual .

    Elija uno de los siguientes valores:

    • GPU NVIDIA:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • Estación de trabajo virtual NVIDIA RTX (vWS) (anteriormente 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-vws

        Para estas estaciones de trabajo virtuales, se agrega automáticamente una licencia de estación de trabajo virtual NVIDIA RTX (vWS) a su máquina virtual.

Ejemplo

Por ejemplo, puedes usar el siguiente comando de gcloud para iniciar una máquina virtual Ubuntu 22.04 con 1 GPU NVIDIA T4 y 2 vCPU en la zona us-east1-d .

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

DESCANSAR

Identifique el tipo de GPU que desea agregar a su VM. Envíe una solicitud GET para enumerar los tipos de GPU que están disponibles para su proyecto en una zona específica.

Si su carga de trabajo es tolerante a fallas y puede soportar una posible apropiación de VM, considere usar Spot VM para reducir el costo de sus VM y las GPU conectadas. Para obtener más información, consulte GPU en máquinas virtuales puntuales . El "provisioningModel": "SPOT" es un parámetro opcional que configura sus máquinas virtuales como máquinas virtuales puntuales. Para las máquinas virtuales puntuales, los indicadores de opciones de reinicio automático y mantenimiento del host están deshabilitados.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes

Reemplace lo siguiente:

  • PROJECT_ID : ID del proyecto.
  • ZONE : zona desde la que desea enumerar los tipos de GPU disponibles.

Envíe una solicitud POST al método instances.insert . Incluya el parámetro acceleratorType para especificar qué tipo de GPU desea usar e incluya el parámetro acceleratorCount para especificar cuántas GPU desea agregar. También establezca el parámetro onHostMaintenance en 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": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    ["provisioningModel": "SPOT"]
  },
}

Reemplace lo siguiente:

  • VM_NAME : el nombre de la VM.
  • PROJECT_ID : su ID de proyecto.
  • ZONE : la zona para la VM. Esta zona debe admitir el tipo de GPU .
  • MACHINE_TYPE : el tipo de máquina que seleccionó para la VM. Consulta GPU en Compute Engine para ver qué tipos de máquinas están disponibles según el número de GPU que desees.
  • IMAGE o IMAGE_FAMILY : especifique uno de los siguientes:

    • IMAGE : la versión requerida de una imagen pública. Por ejemplo, "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY : una familia de imágenes . Esto crea la máquina virtual a partir de la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especifica "sourceImage": "projects/debian-cloud/global/images/family/debian-10" , Compute Engine crea una VM a partir de la última versión de la imagen del sistema operativo en la familia de imágenes de Debian 10.

    También puede especificar una imagen personalizada o imágenes de VM de aprendizaje profundo .

  • IMAGE_PROJECT : el proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si utiliza una imagen personalizada o imágenes de VM de aprendizaje profundo, especifique el proyecto al que pertenecen esas imágenes.

  • DISK_SIZE : el tamaño de su disco de arranque en GB. Especifique un tamaño de disco de arranque de al menos 40 GB.

  • NETWORK : la red VPC que desea utilizar para la VM. Puede especificar default para usar su red predeterminada.

  • ACCELERATOR_COUNT : la cantidad de GPU que desea agregar a su VM. Consulta GPU en Compute Engine para obtener una lista de límites de GPU según el tipo de máquina de tu VM.

  • ACCELERATOR_TYPE : el modelo de GPU que desea utilizar. Si planea ejecutar cargas de trabajo con uso intensivo de gráficos en esta máquina virtual, use uno de los modelos de estación de trabajo virtual .

    Elija uno de los siguientes valores:

    • GPU NVIDIA:

      • NVIDIA T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • Estación de trabajo virtual NVIDIA RTX (vWS) (anteriormente 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-vws

        Para estas estaciones de trabajo virtuales, se agrega automáticamente una licencia de estación de trabajo virtual NVIDIA RTX (vWS) a su máquina virtual.

Instalar controladores

Para instalar los controladores, elija una de las siguientes opciones:

¿Qué sigue?