Crea VM con GPU adjuntas


Compute Engine proporciona unidades de procesamiento de gráficos (GPU) que puedes agregar a tus máquinas virtuales (VM). Puedes usar estas GPU para acelerar cargas de trabajo específicas en las VM, como el aprendizaje automático y el procesamiento de datos.

En esta página, se explica cómo crear una VM con GPU conectadas. Si deseas agregar GPU a VM existentes, consulta Agrega o quita GPU.

Para obtener más información sobre lo que puedes hacer con las GPU y qué tipos de hardware de GPU están disponibles, consulta GPU en Compute Engine.

Antes de comenzar

Comprueba la cuota de GPU

Para proteger los sistemas y usuarios de Compute Engine, los nuevos proyectos tienen una cuota global de GPU que limita la cantidad total de GPU que puedes crear en cualquier zona compatible.

Usa el comando regions describe para asegurarte de que tienes suficiente cuota de GPU en la región en la que deseas crear VM con GPU.

gcloud compute regions describe REGION

Reemplaza REGION por la región que deseas verificar para la cuota de GPU.

Si necesitas cuota adicional de GPU, solicita un aumento de cuota. Cuando solicitas una cuota de GPU, debes especificar una cuota de los modelos de GPU que quieres crear en cada región y también indicar la cuota global, con la cantidad total de GPU de todos los tipos en todas las zonas.

Si tu proyecto tiene un historial de facturación establecido, recibirás la cuota de forma automática después de enviar la solicitud.

Descripción general

Para crear una VM con GPU conectadas, completa los siguientes pasos:

  1. Crea la VM. El método que se usa para crear una VM depende del modelo de GPU.

  2. Para que la VM use la GPU, debes instalar el controlador de GPU en tu VM.

  3. Si habilitaste las estaciones de trabajo virtuales NVIDIA® GRID®, instala controladores de GRID® para estaciones de trabajo virtuales.

Crea VM con GPU conectadas (GPU A100)

En esta sección, se explica cómo crear VM con GPU NVIDIA® A100 adjuntas. Para otros tipos de GPU, consulta Crea VM con GPU conectadas (otros tipos de GPU).

Limitaciones (A100)

  • El sistema operativo Windows no admite los tipos de máquina a2-megagpu-16g. Cuando uses sistemas operativos Windows, elige un tipo de máquina diferente. Para obtener una lista de los tipos de máquinas, consulta GPU NVIDIA® A100.
  • Para las VM de Windows que usan tipos de máquina A2, no puedes usar un formato rápido de las SSD locales conectados. Para formatear estos SSD locales, debes realizar un formato completo mediante el uso de la utilidad diskpart y especificando format fs=ntfs label=tmpfs.

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haga clic en Crear instancia.

  3. Especifica un nombre para tu instancia. Consulta la convención de asignación de nombres de recursos.

  4. Selecciona una región y una zona en las que las GPU estén disponibles. Consulta la lista de zonas de GPU A100 disponibles.

  5. En la sección Configuración de la máquina, completa los siguientes pasos.

    1. En Familia de máquinas, haz clic en GPU.
    2. En Serie, selecciona A2.
    3. En Tipo de máquina, selecciona el tipo de máquina A2 que desees.

      La sección de configuración de la máquina.

    4. Expande la sección Plataforma de CPU y GPU.

      Sección de configuración de GPU.

    5. En Plataforma de CPU y GPU, revisa el Tipo de GPU y la Cantidad de GPU.

  6. Para configurar tu disco de arranque, en la sección Disco de arranque, haz clic en Cambiar. Se abrirá la página Configuración del disco de arranque.

  7. En la página Configuración del disco de arranque, completa los siguientes pasos.

    1. En la pestaña Imágenes públicas, elige una imagen de Compute Engine compatible o una Deep Learning VM Image.
    2. Especifica un tamaño de disco de arranque de al menos 40 GB.
    3. Haz clic en Guardar para confirmar las opciones del disco de arranque.
  8. Establece cualquier otra configuración de VM que necesites. Por ejemplo, puedes cambiar la configuración de Interrumpibilidad para establecer tu VM como instancia interrumpible. Esto reduce el costo de tu VM y las GPU adjuntas. Consulta GPU en instancias interrumpibles para obtener más información.

  9. Haz clic en el botón Crear para crear e iniciar la VM.

gcloud

Para crear y, luego, iniciar una VM, usa el comando gcloud compute instances create con las siguientes marcas. Las VM con GPU no se pueden migrar en vivo, asegúrate de configurar la marca --maintenance-policy TERMINATE.

--preemptible es una marca opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de tu VM y las GPU adjuntas. Para obtener más información, consulta GPU en instancias interrumpibles.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM nueva
  • MACHINE_TYPE: El tipo de máquina A2 que seleccionaste para la VM.
  • ZONE: La zona para la VM. Esta zona debe ser compatible con las GPU A100.
  • IMAGE o IMAGE_FAMILY que admiten GPU Especifica una de las siguientes opciones:

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

    Tambié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 familia de imágenes Si usas una imagen personalizada o una Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.

API

En la API, crea una solicitud para el método instances.insert. Las VM con GPU no pueden migrar en vivo; asegúrate de configurar el parámetro onHostMaintenance como TERMINATE.

"preemptible": true es un parámetro opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de tu VM y las GPU adjuntas. Para obtener más información, consulta GPU en instancias interrumpibles.

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"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM
  • PROJECT_ID: el ID de tu proyecto
  • ZONE: La zona para la VM. Esta zona debe ser compatible con las GPU A100.
  • MACHINE_TYPE: El tipo de máquina A2 que seleccionaste para la VM.
  • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:

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

    Tambié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 familia de imágenes Si usas una imagen personalizada o una Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.

  • DISK_SIZE: El tamaño de tu disco de arranque en GB

  • NETWORK: la red de VPC que quieres usar para la VM Puedes especificar default para usar tu red predeterminada

Siguiente: Instala el controlador de GPU en tu VM para que tu sistema pueda usar el dispositivo. Para las GPU A100, se requiere CUDA 11.

Ejemplos (GPU A100)

En estos ejemplos, las VM se crean con las GPU NVIDIA® A100 conectadas mediante la herramienta de línea de comandos de gcloud. Sin embargo, también puedes usar Google Cloud Console o la API de Compute Engine para crear estas VM.

En los siguientes ejemplos, se muestra cómo crear VM mediante las siguientes imágenes:

Imagen de DLVM

El uso de imágenes DLVM es la forma más fácil de comenzar porque estas imágenes ya tienen preinstalados los controladores NVIDIA y las bibliotecas CUDA.

Estas imágenes también proporcionan optimizaciones de rendimiento.

Las siguientes imágenes de DLVM son compatibles con NVIDIA® A100:

  • common-cu110: Controlador NVIDIA y CUDA preinstalados
  • tf-ent-1-15-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 1.15.3 preinstalados
  • tf2-ent-2-1-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 2.1.1 preinstalados
  • tf2-ent-2-3-cu110: controlador NVIDIA, CUDA y TensorFlow Enterprise 2.3.1 preinstalados
  • pytorch-1-6-cu110: controlador de NVIDIA, CUDA, Pytorch 1.6

Para obtener más información sobre las imágenes de DLVM disponibles y los paquetes instalados en ellas, consulta la documentación de VM de aprendizaje profundo.

  1. Crea una VM mediante la imagen tf2-ent-2-3-cu110 y el tipo de máquina a2-highgpu-1g. En este ejemplo, se especifican marcas opcionales, como el tamaño del disco de arranque y el permiso.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-c \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family tf2-ent-2-3-cu110 \
       --image-project deeplearning-platform-release \
       --boot-disk-size 200GB \
       --metadata "install-nvidia-driver=True,proxy-mode=project_editors" \
       --scopes https://www.googleapis.com/auth/cloud-platform
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de tu VM.
    • PROJECT_ID: El ID de tu proyecto
  2. Con el comando de ejemplo anterior, también se genera un notebook de AI Platform para la VM. Para acceder al notebook, ve a la página AI Platform de Google Cloud Console.

    Ir a la página AI Platform

Imagen pública o personalizada

Puedes crear VM con GPU adjuntas que usen una imagen pública disponible en Compute Engine o una imagen personalizada.

Para crear una VM con la imagen más reciente y no obsoleta de la familia de imágenes de CentOS 7 y el tipo de máquina a2-highgpu-1g, sigue los pasos que se indican a continuación:

  1. Crea la VM. En este ejemplo, también se especifican marcas opcionales, como el tipo y el tamaño del disco de arranque.

    gcloud compute instances create VM_NAME \
        --project PROJECT_ID \
        --zone us-central1-c \
        --machine-type a2-highgpu-1g \
        --maintenance-policy TERMINATE --restart-on-failure \
        --image-family centos-7 \
        --image-project centos-cloud \
        --boot-disk-size 200GB \
        --boot-disk-type pd-ssd
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de tu VM.
    • PROJECT_ID: El ID de tu proyecto
  2. Instala el controlador NVIDIA y CUDA. Para las GPU NVIDIA® A100, se requiere la versión 11 o superior de CUDA.

COS

Puedes crear VM con GPU conectadas que usen imágenes de Container-optimized (COS).

Para crear una VM con la imagen cos-85-lts y el tipo de máquina a2-highgpu-1g, completa los siguientes pasos desde tu cliente local. Los siguientes ejemplos se pueden ejecutar en un cliente de Mac o Linux:

  1. Si aún no existe uno, crea un directorio /tmp.

    mkdir /tmp
  2. Agrega un archivo de configuración /cloud-init.yaml al directorio /tmp.

    Esta información es necesaria para configurar tu VM de Container-optimized y, también, instala el controlador NVIDIA y CUDA cuando la VM se inicia.

    cat <<'EOF' > /tmp/cloud-init.yaml
    #cloud-config
    
    write_files:
      - path: /etc/systemd/system/cos-gpu-installer.service
        permissions: 0755
        owner: root
        content: |
          [Unit]
          Description=Run the GPU driver installer container
          Requires=network-online.target gcr-online.target
          After=network-online.target gcr-online.target
    
          [Service]
          User=root
          Type=oneshot
          RemainAfterExit=true
          Environment=INSTALL_DIR=/var/lib/nvidia
          ExecStartPre=/bin/mkdir -p ${INSTALL_DIR}
          ExecStartPre=/bin/mount --bind ${INSTALL_DIR} ${INSTALL_DIR}
          ExecStartPre=/bin/mount -o remount,exec ${INSTALL_DIR}
          ExecStart=/usr/bin/docker run --privileged \
                                        --net=host  \
                                        --pid=host \
                                        --volume ${INSTALL_DIR}:/usr/local/nvidia \
                                        --volume /dev:/dev \
                                        --volume /:/root \
                                        --env NVIDIA_DRIVER_VERSION=450.80.02 \
                                        gcr.io/cos-cloud/cos-gpu-installer:v20200701
          StandardOutput=journal+console
          StandardError=journal+console
    
    runcmd:
      - systemctl daemon-reload
      - systemctl enable cos-gpu-installer.service
      - systemctl start cos-gpu-installer.service
    
    EOF
    
  3. Crea una VM optimizada para contenedores con la familia de imágenes cos-85-lts y a2-highgpu-1g.

    Debes proporcionar el archivo de configuración mediante la marca -metadata-from-file user-data.

    En este ejemplo, también se especifica el tamaño del disco de arranque de la marca opcional.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-a \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family cos-85-lts \
       --image-project cos-cloud \
       --boot-disk-size 200GB \
       --metadata-from-file user-data=/tmp/cloud-init.yaml
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de tu VM.
    • PROJECT_ID: El ID de tu proyecto

    Después de crear la VM, accede a ella y ejecuta el siguiente comando para verificar que el controlador de NVIDIA esté instalado.

    /var/lib/nvidia/bin/nvidia-smi

    El controlador demora aproximadamente 5 minutos en instalarse.

GPU de varias instancias (A100)

Una GPU de varias instancias particiona una sola GPU de NVIDIA A100 dentro de la misma VM en hasta siete instancias de GPU independientes. Se ejecutan de manera simultánea, cada uno con su propio procesador de memoria, caché y transmisión. Esta configuración permite que la GPU A100 entregue una calidad de servicio garantizada (QoS) hasta 7 veces mayor en comparación con los modelos de GPU anteriores.

Para obtener más información sobre el uso de GPU de varias instancias, consulta Guía del usuario de GPU de varias instancias de NVIDIA.

Para crear GPU de varias instancias, completa los siguientes pasos:

  1. Crea una VM con las GPU A100 conectadas.

  2. Habilita los controladores de GPU de NVIDIA.

  3. Habilita las GPU de varias instancias y reinicia la VM.

    sudo nvidia-smi -mig 1
    sudo reboot
    
  4. Revisa las formas de GPU de varias instancias que están disponibles.

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    El resultado es similar al siguiente:

    +--------------------------------------------------------------------------+
    | GPU instance profiles:                                                   |
    | GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                           Free/Total   GiB              CE    JPEG  OFA  |
    |==========================================================================|
    |   0  MIG 1g.5gb     19     7/7        4.75       No     14     0     0   |
    |                                                          1     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 2g.10gb    14     3/3        9.75       No     28     1     0   |
    |                                                          2     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 3g.20gb     9     2/2        19.62      No     42     2     0   |
    |                                                          3     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 4g.20gb     5     1/1        19.62      No     56     2     0   |
    |                                                          4     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 7g.40gb     0     1/1        39.50      No     98     5     0   |
    |                                                          7     1     1   |
    +--------------------------------------------------------------------------+
    
  5. Crea la GPU de varias instancias (SIG) y las instancias de procesamiento asociadas (CI) que desees. Puedes crear estas instancias si especificas el nombre completo o abreviado del nombre del perfil, el ID del perfil, o una combinación de ambos. Para obtener más información, consulta Crea instancias de GPU.

    En el siguiente ejemplo, se crean dos instancias de GPU MIG 3g.20gb mediante una combinación del nombre del perfil abreviado (3g.20gb) y el ID del perfil (9).

    También se especifica la marca -C, que crea las instancias de procesamiento asociadas con el perfil requerido.

    sudo nvidia-smi mig -cgi 9,3g.20gb -C
    

    El resultado es similar al siguiente:

    Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
    Successfully created GPU instance ID  1 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  1 using profile MIG 3g.20gb (ID  2)
    
  6. Verifica que se creen ambas GPU de varias instancias:

    sudo nvidia-smi mig -lgi
    

    El resultado es similar al siguiente:

    +----------------------------------------------------+
    | GPU instances:                                     |
    | GPU   Name          Profile  Instance   Placement  |
    |                       ID       ID       Start:Size |
    |====================================================|
    |   0  MIG 3g.20gb       9        1          0:4     |
    +----------------------------------------------------+
    |   0  MIG 3g.20gb       9        2          4:4     |
    +----------------------------------------------------+
    
  7. Comprueba que se hayan creado las GI y las IC correspondientes.

    sudo nvidia-smi
    

    El resultado es similar al siguiente:

    Tue May 18 18:32:22 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                   On |
    | N/A   43C    P0    52W / 350W |     22MiB / 40537MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

Crea VM con GPU conectadas (otros tipos de GPU)

Puedes crear una VM con una o más GPU mediante Google Cloud Console, la herramienta de línea de comandos de gcloud o la API de Compute Engine.

En esta sección, se describe cómo crear VM con los siguientes tipos de GPU:

  • NVIDIA® T4: nvidia-tesla-t4
  • NVIDIA® T4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-t4-vws
  • NVIDIA® V100: nvidia-tesla-v100
  • NVIDIA® P100: nvidia-tesla-p100
  • NVIDIA® P100 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p100-vws

  • NVIDIA® P4: nvidia-tesla-p4

  • NVIDIA®P4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p4-vws

  • NVIDIA® K80: nvidia-tesla-k80

Console

  1. En Google Cloud Console, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haga clic en Crear instancia.

  3. Especifica un nombre para tu instancia. Consulta la convención de asignación de nombres de recursos.

  4. Seleccione una región y zona Consulta la lista de zonas disponibles con GPU.

  5. En la sección Configuración de la máquina, completa los siguientes pasos.

    1. En Serie, selecciona N1.
    2. En Tipo de máquina, selecciona el tipo de máquina N1 que desees. Como alternativa, puedes especificar la configuración de tipo personalizado de máquina si lo deseas.
    3. Expande la sección Plataforma de CPU y GPU.
    4. Haz clic en Agregar GPU.

      La sección de configuración de la máquina.

    5. Especifica el Tipo de GPU y la Cantidad de GPU.
    6. Si tu modelo de GPU es compatible con estaciones de trabajo virtuales y planeas ejecutar cargas de trabajo de alto contenido gráfico en esta VM, selecciona Habilitar Virtual Workstation (NVIDIA GRID).

      Si deseas obtener información sobre las estaciones de trabajo virtuales de NVIDIA® GRID®, consulta GPU de NVIDIA® GRID® para cargas de trabajo gráficas.

      Sección de configuración de GPU.

  6. Para seleccionar tu sistema operativo, en la sección Disco de arranque, haz clic en Cambiar. Se abrirá la página Configuración del disco de arranque.

  7. En la página Configuración del disco de arranque, completa los siguientes pasos.

    1. En la pestaña Imágenes públicas, elige una imagen de Compute Engine compatible o una Deep Learning VM Image.
    2. Especifica un tamaño de disco de arranque de al menos 40 GB.
    3. Haz clic en Guardar para confirmar las opciones del disco de arranque.
  8. Establece cualquier otra configuración de instancia que necesites. Por ejemplo, puedes cambiar la configuración de Interrumpibilidad para establecer tu instancia como interrumpible. Esto reduce el costo de tu instancia y las GPU adjuntas. Consulta GPU en instancias interrumpibles para obtener más información.

  9. Haz clic en el botón Crear para crear e iniciar la VM.

gcloud

Para crear y, luego, iniciar una VM, usa el comando gcloud compute instances create con las siguientes marcas.

--preemptible es una marca opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de tu VM y las GPU adjuntas. Para obtener más información, consulta GPU en instancias interrumpibles.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM nueva
  • MACHINE_TYPE: El tipo de máquina que seleccionaste para la VM.
  • ZONE: La zona para la VM. Esta zona debe ser compatible con el tipo de GPU especificado.
  • IMAGE o IMAGE_FAMILY que admiten GPU Especifica una de las siguientes opciones:

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

    Tambié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 familia de imágenes Si usas una imagen personalizada o una Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.

  • ACCELERATOR_COUNT: la cantidad de GPU que deseas agregar a tu VM Consulta GPU en Compute Engine para obtener una lista de los límites de GPU en función del tipo de máquina de tu VM.

  • ACCELERATOR_TYPE: el modelo de GPU que deseas usar. Si planeas ejecutar cargas de trabajo de alto contenido gráfico en esta VM, usa uno de los modelos de estación de trabajo virtual.

    Elige uno de los siguientes valores:

    • NVIDIA® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA®P4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

Ejemplo

Por ejemplo, puedes usar el siguiente comando gcloud para iniciar una VM de Ubuntu 16.04 con 1 GPU NVIDIA K80 y 2 CPU virtuales en la zona us-east1-d.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 \
    --zone us-east1-d \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure

API

Identifica el tipo de GPU que deseas agregar a tu VM. Envía una solicitud GET a fin de enumerar los tipos de GPU que están disponibles para tu proyecto en una zona específica.

"preemptible": true es un parámetro opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de tu VM y las GPU adjuntas. Para obtener más información, consulta GPU en instancias interrumpibles.

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

Reemplaza lo siguiente:

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

En la API, crea una solicitud para el método instances.insert. Incluye el parámetro acceleratorType a fin de especificar qué tipo de GPU deseas usar y el parámetro acceleratorCount para especificar cuántas GPU deseas agregar. Establece también 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":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Reemplaza lo siguiente:

  • VM_NAME: el nombre de la VM
  • PROJECT_ID: el ID de tu proyecto
  • ZONE: La zona para la VM. Esta zona debe ser compatible con el tipo de GPU especificado.
  • MACHINE_TYPE: El tipo de máquina que seleccionaste para la instancia. Consulta GPU en Compute Engine para ver qué tipos de máquinas están disponibles en función del conteo de GPU deseado
  • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:

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

    Tambié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 familia de imágenes Si usas una imagen personalizada o una Deep Learning VM Image, especifica el proyecto al que pertenecen esas imágenes.

  • DISK_SIZE: El tamaño de tu disco de arranque en GB

  • NETWORK: la red de VPC que deseas usar para la VM Puedes especificar default para usar tu red predeterminada

  • ACCELERATOR_COUNT: la cantidad de GPU que deseas agregar a tu VM Consulta GPU en Compute Engine para obtener una lista de los límites de GPU en función del tipo de máquina de tu VM.

  • ACCELERATOR_TYPE: el modelo de GPU que deseas usar. Si planeas ejecutar cargas de trabajo de alto contenido gráfico en esta VM, usa uno de los modelos de estación de trabajo virtual.

    Elige uno de los siguientes valores:

    • NVIDIA® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA®P4 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation con NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

Siguiente: Para asegurarte de que tu sistema pueda usar las GPU, completa los siguientes pasos:

Próximos pasos