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 adjuntas. 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 adjuntas, completa los siguientes pasos:

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

  2. Para que la VM utilice 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 adjuntas (GPU A100)

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

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 zona en las que haya GPU 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. Esto abre 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 imagen de VM de aprendizaje profundo.
    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 pueden migrarse en vivo, asegúrate de configurar la marca --maintenance-policy TERMINATE.

El --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 imagen de VM de aprendizaje profundo.

  • IMAGE_PROJECT: El proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si usas una imagen personalizada o una imagen de VM de aprendizaje profundo, 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.

El "preemptible": true es un parámetro opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de tu instancia 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 imagen de VM de aprendizaje profundo.

  • IMAGE_PROJECT: El proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si usas una imagen personalizada o una imagen de VM de aprendizaje profundo, 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

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 GPU NVIDIA® A100 adjuntas 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 con las siguientes imágenes:

Imagen de DLVM

El uso de imágenes de 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 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 NVIDIA, CUDA, PyTorch 1.6

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

  1. Crea una VM con 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 y el alcance 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 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. El comando de ejemplo anterior también genera un Notebook de AI Platform para la VM. Para acceder al notebook, en Google Cloud Console, ve a la página AI Platform.

    Ir a la página de AI Platform

Imagen pública o personalizada

Puedes crear VM con GPU adjuntas que usen una imagen pública que esté 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 de NVIDIA y el CUDA. En las GPU NVIDIA® A100, se requiere la versión 11 o posterior de CUDA.

COS

Puedes crear VM con GPU adjuntas que usen imágenes optimizadas de contenedor (COS).

Para crear una VM con la imagen cos-85-lts y el tipo de máquina a2-highgpu-1g, completa los siguientes pasos de tu cliente local:

  1. Crea un archivo de configuración.

    mkdir /tmp/cloud-init.yaml
  2. Agrega la información de configuración a tu archivo /tmp/cloud-init.yaml.

    Esta información es necesaria para configurar tu VM optimizada para contenedores y también instala el controlador NVIDIA y CUDA cuando se inicia la VM.

    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 la a2-highgpu-1g.

    Debes proporcionar el archivo de configuración con 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 la VM y ejecuta el siguiente comando para verificar que el controlador NVIDIA esté instalado.

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

    El controlador tarda aproximadamente 5 minutos en instalarse.

GPU de varias instancias (A100)

Una GPU de varias instancias divide una sola GPU de NVIDIA A100 en la misma VM en un máximo de siete instancias de GPU independientes. Se ejecutan simultáneamente, cada uno con su propia memoria, caché y múltiples procesadores de transmisión. Esta configuración permite que la GPU A100 entregue una calidad de servicio garantizada (QoS) garantizada, con una utilización de 7 veces mayor en comparación con los modelos de GPU anteriores.

Para obtener más información sobre el uso de GPU de instancia múltiple, consulta la 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 GPU A100 adjuntas.

  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 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 que desees. En el siguiente ejemplo, se crean dos instancias de GPU MIG 3g.20gb con el ID de perfil para esta forma, que es 9.

    sudo nvidia-smi mig -i 0 --create-gpu-instance 9,9
    
  6. Comprueba que se hayan creado las dos GPU de varias instancias y obtén los ID:

    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. Con Instance IDs, habilita las GPU de varias instancias para cargas de trabajo de procesamiento:

    sudo nvidia-smi mig -i 0 --create-compute-instance -gi 1,2
    
  8. Comprueba que los dispositivos de GPU estén listos para las cargas de trabajo de procesamiento.

    sudo nvidia-smi
    

    El resultado es similar al siguiente:

    Fri Oct 30 20:23:30 2020
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    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   39C    P0    53W / 400W |     22MiB / 40537MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |                      | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

Crea VM con GPU adjuntas (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. Esto abre 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 imagen de VM de aprendizaje profundo.
    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.

El --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.
  • 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 imagen de VM de aprendizaje profundo.

  • IMAGE_PROJECT: El proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si usas una imagen personalizada o una imagen de VM de aprendizaje profundo, 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 de 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.

El "preemptible": true es un parámetro opcional que configura tu VM como una instancia interrumpible. Esto reduce el costo de las 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.
  • 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 imagen de VM de aprendizaje profundo.

  • IMAGE_PROJECT: El proyecto de imagen de Compute Engine al que pertenece la familia de imágenes. Si usas una imagen personalizada o una imagen de VM de aprendizaje profundo, 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