创建挂接 GPU 的虚拟机


Compute Engine 提供了可添加到虚拟机的图形处理单元 (GPU)。您可以使用这些 GPU 加速虚拟机上的特定工作负载,例如机器学习和数据处理。

本页面介绍如何创建挂接 GPU 的虚拟机。如果您要向现有虚拟机添加 GPU,请参阅添加或移除 GPU

要详细了解可以使用 GPU 执行的操作以及提供的 GPU 硬件类型,请阅读 Compute Engine 上的 GPU

准备工作

  • 如果您要使用本指南中的命令行示例,请执行以下操作:
    1. 安装或更新到 gcloud 命令行工具的最新版本。
    2. 设置默认区域和可用区
  • 如果您要使用本指南中的 API 示例,请设置 API 访问权限
  • 参阅 Compute Engine 上的 GPU 价格,了解在虚拟机上使用 GPU 的费用。
  • 了解具有 GPU 的虚拟机的限制
  • 检查您的 GPU 配额
  • 选择操作系统映像:
    • 如果您要将 GPU 用于机器学习,则可以为虚拟机使用 Deep Learning VM Image 映像。Deep Learning VM Image 映像预先安装了 GPU 驱动程序,并包含 TensorFlow 和 PyTorch 等软件包。您还可以将 Deep Learning VM Image 用于常规 GPU 工作负载。如需了解可用映像以及这些映像中安装的软件包,请参阅选择映像
    • 您还可以使用任何公共映像自定义映像,但某些映像可能需要本文档未介绍的独特驱动程序或安装过程。您必须确定哪些驱动程序适合您的映像。如需了解安装驱动程序的步骤,请参阅安装 GPU 驱动程序

检查 GPU 配额

为了保护 Compute Engine 系统和用户,新项目会有一个 GPU 全球配额,该配额限制了您可在任何受支持可用区中创建的 GPU 总数。

使用 regions describe 命令确保在您要创建具有 GPU 的虚拟机的区域中拥有足够的 GPU 配额。

gcloud compute regions describe REGION

REGION 替换为您要检查 GPU 配额的区域

如果您需要额外的 GPU 配额,请申请增加配额。申请 GPU 配额时,您必须为要在每个区域中创建的 GPU 型号申请一个配额,并根据所有可用区中所有类型的 GPU 总数另外申请一个全球配额。

如果您的项目已建立帐单历史记录,那么在您提交申请后,项目将自动获得配额。

限制

以下限制适用于挂接了 GPU (A100) 的 Windows 虚拟机:

  • Windows 操作系统不支持 a2-megagpu-16g 机器类型。使用 Windows 操作系统时,请选择其他机器类型。如需查看机器类型的列表,请参阅 NVIDIA® A100 GPU
  • 对于使用 A2 机器类型的 Windows 虚拟机,您无法对挂接的本地 SSD 快速设置格式。如需设置这些本地 SSD 的格式,您必须使用 diskpart 实用程序并指定 format fs=ntfs label=tmpfs 设置完整格式。

创建挂接 GPU 的虚拟机

要创建挂接 GPU 的虚拟机,请完成以下步骤:

  1. 创建虚拟机。用于创建虚拟机的方法取决于 GPU 型号。

  2. 如需让虚拟机使用 GPU,您需要在虚拟机上安装 GPU 驱动程序

  3. 如果您启用了 NVIDIA® GRID 虚拟工作站,请为虚拟工作站安装 GRID® 驱动程序

创建挂接 GPU 的虚拟机 (A100 GPU)

本部分介绍如何创建挂接 NVIDIA® A100 GPU 的虚拟机。对于其他 GPU 类型,请参阅创建挂接 GPU 的虚拟机(其他 GPU 类型)

如果您要创建具有 GPU 的 Windows 虚拟机,请参阅本文档中的限制

控制台

  1. 在 Google Cloud Console 中,转到创建实例页面。

    转到“创建实例”

  2. 为您的虚拟机指定名称。请参阅资源命名惯例

  3. 选择 GPU 可用的区域和可用区。查看可用的 A100 GPU 可用区列表。

  4. 机器配置部分中,选择 GPU 机器系列,然后执行以下操作:

    1. GPU 类型列表中,选择 NVIDIA Tesla A100。机器类型的系列是根据 GPU 类型设置的。

      当您选择 NVIDIA Tesla A100 时,机器类型的系列设置为 A2,并且机器类型设置为 A2 机器类型

    2. GPU 数量列表中,选择 GPU 的数量。

  5. 启动磁盘部分中,点击更改。此时会打开启动磁盘配置页面。

  6. 启动磁盘配置页面上,执行以下操作:

    1. 公共映像标签页中,选择支持的 Compute Engine 映像Deep Learning VM Image 映像
    2. 请指定至少为 40 GB 的启动磁盘大小。
    3. 如需确认您的启动磁盘选项,请点击保存
  7. 配置所需的任何其他虚拟机设置。例如,您可以更改可抢占性设置,将虚拟机配置为抢占式实例。这样可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU

  8. 要创建并启动该虚拟机,请点击创建

gcloud

要创建并启动虚拟机,请使用带有以下标志的 gcloud compute instances create 命令。具有 GPU 的虚拟机无法实时迁移,请确保设置 --maintenance-policy TERMINATE 标志。

--preemptible 是一个可选标志,用于将虚拟机配置为抢占式实例。设置此标志可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU

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

请替换以下内容:

  • VM_NAME:新虚拟机的名称
  • MACHINE_TYPE:您为虚拟机选择的 A2 机器类型
  • ZONE:虚拟机的可用区。此可用区必须支持 A100 GPU
  • DISK_SIZE:您的启动磁盘的大小(以 GB 为单位)。 请指定至少为 40 GB 的启动磁盘大小。
  • 支持 GPUIMAGEIMAGE_FAMILY。指定以下其中一项:

    • IMAGE:所需的公共映像版本。例如 --image debian-10-buster-v20200309
    • IMAGE_FAMILY映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定 --image-family debian-10,则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。

    您也可以指定自定义映像或 Deep Learning VM Image 映像

  • IMAGE_PROJECT:映像系列所属的 Compute Engine 映像项目。如果使用自定义映像或 Deep Learning VM Image 映像,请指定这些映像所属的项目。

API

在 API 中,创建对 instances.insert 方法的 POST 请求。具有 GPU 的虚拟机无法实时迁移,请确保将 onHostMaintenance 参数设置为 TERMINATE

"preemptible": true 是一个可选参数,用于将虚拟机配置为抢占式实例。设置此参数可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU

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]
  },
}

请替换以下内容:

  • VM_NAME:虚拟机的名称
  • PROJECT_ID:您的项目 ID。
  • ZONE:虚拟机的可用区。此可用区必须支持 A100 GPU
  • MACHINE_TYPE:您为虚拟机选择的 A2 机器类型
  • IMAGEIMAGE_FAMILY:指定以下其中一项:

    • IMAGE:所需的公共映像版本。例如 "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定 "sourceImage": "projects/debian-cloud/global/images/family/debian-10",则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。

    您也可以指定自定义映像或 Deep Learning VM Image 映像

  • IMAGE_PROJECT:映像系列所属的 Compute Engine 映像项目。如果使用自定义映像或 Deep Learning VM Image 映像,请指定这些映像所属的项目。

  • DISK_SIZE:您的启动磁盘的大小(以 GB 为单位)。 请指定至少为 40 GB 的启动磁盘大小。

  • NETWORK:您要用于虚拟机的 VPC 网络。您可以指定 default 来使用默认网络。

接下来在虚拟机上安装 GPU 驱动程序,以便系统可以使用该设备。 对于 A100 GPU,需要 CUDA 11

示例 (A100 GPU)

在这些示例中,使用 gcloud 命令行工具创建挂接 NVIDIA® A100 GPU 的虚拟机。但是,您也可以使用 Google Cloud ConsoleCompute Engine API 来创建这些虚拟机。

以下示例展示了如何使用以下映像创建虚拟机:

DLVM 映像

最简单的方法是使用 DLVM 映像,因为这些映像预装了 NVIDIA 驱动程序和 CUDA 库。

这些映像还提供了性能优化。

NVIDIA® A100 支持以下 DLVM 映像:

  • common-cu110:预装 NVIDIA 驱动程序和 CUDA
  • tf-ent-1-15-cu110:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 1.15.3
  • tf2-ent-2-1-cu110:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 2.1.1
  • tf2-ent-2-3-cu110:预装 NVIDIA 驱动程序、CUDA、TensorFlow 企业版 2.3.1
  • pytorch-1-6-cu110:NVIDIA 驱动程序、CUDA、Pytorch 1.6

如需详细了解可用的 DLVM 映像以及这些映像上安装的软件包,请参阅 Deep Learning VM 文档

  1. 使用 tf2-ent-2-3-cu110 映像和 a2-highgpu-1g 机器类型创建虚拟机。本示例指定了可选标志,例如启动磁盘大小和范围。

    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
    

    请替换以下内容:

    • VM_NAME:您的虚拟机的名称
    • PROJECT_ID:您的项目 ID。
  2. 上述示例命令还会为虚拟机生成 AI Platform Notebooks 笔记本。要访问该笔记本,请在 Google Cloud Console 中转到 AI Platform 页面。

    转到 AI Platform 页面

公共映像或自定义映像

您可以使用 Compute Engine 上提供的公共映像自定义映像创建挂接 GPU 的虚拟机。

要使用 CentOS 7 映像系列中最新的未弃用映像和 a2-highgpu-1g 机器类型创建虚拟机,请完成以下步骤:

  1. 创建虚拟机。本示例还指定了可选标志,如启动磁盘类型和大小。

    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
    

    请替换以下内容:

    • VM_NAME:您的虚拟机的名称
    • PROJECT_ID:您的项目 ID。
  2. 安装 NVIDIA 驱动程序和 CUDA。对于 NVIDIA® A100 GPU,需要 CUDA 11 或更高版本。

COS

您可以创建使用 Container-Optimized (COS) 映像的挂接 GPU 的虚拟机。

要使用 cos-85-lts 映像和 a2-highgpu-1g 机器类型创建虚拟机,请在本地客户端完成以下步骤。以下示例可以在 Mac 或 Linux 客户端上运行:

  1. 如果 /tmp 目录尚不存在,请创建一个。

    mkdir /tmp
  2. /tmp 目录添加配置文件 /cloud-init.yaml

    您需要这些信息来设置 Container-Optimized 虚拟机,并在虚拟机启动时安装 NVIDIA 驱动程序和 CUDA。

    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. 使用 cos-85-lts 映像系列和 a2-highgpu-1g 创建 Container-Optimized 虚拟机。

    您需要使用 -metadata-from-file user-data 标志提供配置文件。

    在此示例中,还指定了启动磁盘大小这一可选标志。

    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
    

    请替换以下内容:

    • VM_NAME:您的虚拟机的名称
    • PROJECT_ID:您的项目 ID。

    创建虚拟机后,登录虚拟机并运行以下命令以验证 NVIDIA 驱动程序是否已安装。

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

    驱动程序大约需要 5 分钟才能完成安装。

多实例 GPU (A100)

多实例 GPU 可将一个虚拟机中的单个 NVIDIA A100 GPU 划分为最多七个独立的 GPU 实例。这些实例同时运行,每个实例都有自己的内存、缓存和流式多处理器。与以前的 GPU 型号相比,此设置让 A100 GPU 以最多 7 倍的利用率提供保证服务质量 (QoS)。

如需详细了解如何使用多实例 GPU,请参阅 NVIDIA 多实例 GPU 用户指南

要创建多实例 GPU,请完成以下步骤:

  1. 创建挂接 A100 GPU 的虚拟机。

  2. 启用 NVIDIA GPU 驱动程序

  3. 启用多实例 GPU 并重新启动虚拟机。

    sudo nvidia-smi -mig 1
    sudo reboot
    
  4. 查看可用的多实例 GPU 形式。

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

    输出内容类似如下:

    +--------------------------------------------------------------------------+
    | 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. 创建所需的多实例 GPU (GI) 和关联的计算实例 (CI)。您可以通过指定完整或缩短的配置文件名称、配置文件 ID 或两者的组合来创建这些实例。如需了解详情,请参阅创建 GPU 实例

    以下示例通过结合使用缩短的配置文件名称 (3g.20gb) 和配置文件 ID (9) 来创建两个 MIG 3g.20gb GPU 实例。

    还指定了 -C 标志,用于为所需的配置文件创建关联的计算实例。

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

    输出内容类似如下:

    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. 检查是否已创建两个多实例 GPU:

    sudo nvidia-smi mig -lgi
    

    输出内容类似如下:

    +----------------------------------------------------+
    | 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. 检查是否已创建 GI 和相应的 CI。

    sudo nvidia-smi
    

    输出内容类似如下:

    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                                                 |
    +-----------------------------------------------------------------------------+
    

创建挂接 GPU 的虚拟机(其他 GPU 类型)

本部分介绍如何使用以下 GPU 类型创建虚拟机:

  • NVIDIA® T4:nvidia-tesla-t4
  • 配有 NVIDIA® GRID® 的 NVIDIA® T4 虚拟工作站:nvidia-tesla-t4-vws
  • NVIDIA® V100:nvidia-tesla-v100
  • NVIDIA® P100:nvidia-tesla-p100
  • 配有 NVIDIA® GRID® 的 NVIDIA® P100 虚拟工作站:nvidia-tesla-p100-vws

  • NVIDIA® P4:nvidia-tesla-p4

  • 配有 NVIDIA® GRID® 的 NVIDIA® P4 虚拟工作站:nvidia-tesla-p4-vws

  • NVIDIA® K80:nvidia-tesla-k80

控制台

  1. 在 Google Cloud Console 中,转到创建实例页面。

    转到“创建实例”

  2. 为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例

  3. 选择支持 GPU 型号的区域和可用区。

    如需了解不同区域和可用区支持的 GPU 型号,请参阅 GPU 区域和可用区可用性

  4. 机器配置部分中,完成以下步骤:

    1. 系列中,选择 N1
    2. 机器类型中,选择 N1 机器类型。或者,可以指定自定义机器类型设置。
    3. 展开 CPU 平台和 GPU 部分。

      1. 点击添加 GPU
      2. 指定 GPU 类型和 GPU 数量。
      3. 如果您的 GPU 模型支持虚拟工作站,并且您计划在此虚拟机上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)

        如需了解 NVIDIA® GRID 虚拟工作站,请参阅适用于图形工作负载的 NVIDIA® GRID® GPU

  5. 要选择操作系统,请在启动磁盘部分中点击更改。此时会打开启动磁盘配置页面。

  6. 启动磁盘配置页面上,执行以下操作:

    1. 公共映像标签页中,选择支持的 Compute Engine 映像Deep Learning VM Image 映像
    2. 请指定至少为 40 GB 的启动磁盘大小。
    3. 如需确认您的启动磁盘选项,请点击保存
  7. 配置所需的其他虚拟机设置。例如,您可以更改可抢占性设置,将虚拟机配置为抢占式虚拟机。这样可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式虚拟机上的 GPU

  8. 要创建并启动该虚拟机,请点击创建

gcloud

要创建并启动虚拟机,请使用带有以下标志的 gcloud compute instances create 命令。

--preemptible 是一个可选标志,用于将虚拟机配置为抢占式实例。这样可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU

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 --restart-on-failure \
    [--preemptible]

请替换以下内容:

  • VM_NAME:新虚拟机的名称
  • MACHINE_TYPE:您为虚拟机选择的机器类型
  • ZONE:虚拟机的可用区。此可用区必须支持该 GPU 类型
  • DISK_SIZE:您的启动磁盘的大小(以 GB 为单位)。 请指定至少为 40 GB 的启动磁盘大小。
  • 支持 GPUIMAGEIMAGE_FAMILY。指定以下其中一项:

    • IMAGE:所需的公共映像版本。例如 --image debian-10-buster-v20200309
    • IMAGE_FAMILY映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定 --image-family debian-10,则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。

    您也可以指定自定义映像或 Deep Learning VM Image 映像

  • IMAGE_PROJECT:映像系列所属的 Compute Engine 映像项目。如果使用自定义映像或 Deep Learning VM Image 映像,请指定这些映像所属的项目。

  • ACCELERATOR_COUNT:要添加到虚拟机的 GPU 数量。如需查看基于虚拟机机器类型的 GPU 限制列表,请参阅 Compute Engine 上的 GPU

  • ACCELERATOR_TYPE:您要使用的 GPU 模型。如果您计划在此虚拟机上运行图形密集型工作负载,请使用一个虚拟工作站模型

    请选择以下某个值:

    • NVIDIA® T4:nvidia-tesla-t4
    • 配有 NVIDIA® GRID® 的 NVIDIA® T4 虚拟工作站:nvidia-tesla-t4-vws
    • NVIDIA® P4:nvidia-tesla-p4
    • 配有 NVIDIA® GRID® 的 NVIDIA® P4 虚拟工作站:nvidia-tesla-p4-vws
    • NVIDIA® P100:nvidia-tesla-p100
    • 配有 NVIDIA® GRID® 的 NVIDIA® P100 虚拟工作站:nvidia-tesla-p100-vws
    • NVIDIA® V100:nvidia-tesla-v100
    • NVIDIA® K80:nvidia-tesla-k80

示例

例如,您可以使用以下 gcloud 命令启动位于 us-east1-d 可用区并配有 1 个 NVIDIA K80 GPU 和 2 个 vCPU 的 Ubuntu 16.04 虚拟机。

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

API

确定要添加到虚拟机的 GPU 类型。提交 GET 请求,列出在特定区域中可用于项目的 GPU 类型。

"preemptible": true 是一个可选参数,用于将虚拟机配置为抢占式实例。设置此参数可以降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅抢占式实例上的 GPU

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

请替换以下内容:

  • PROJECT_ID:项目 ID。
  • ZONE:要列出其提供的 GPU 类型的可用区

在 API 中,创建对 instances.insert 方法的 POST 请求。加入 acceleratorType 参数以指定要使用的 GPU 类型,并加入 acceleratorCount 参数以指定要添加的 GPU 数量。另外,请将 onHostMaintenance 参数设置为 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]
  },
}

请替换以下内容:

  • VM_NAME:虚拟机的名称
  • PROJECT_ID:您的项目 ID。
  • ZONE:虚拟机的可用区。此可用区必须支持该 GPU 类型
  • MACHINE_TYPE:您为虚拟机选择的机器类型。如需查看基于您所需的 GPU 数量适用的机器类型,请参阅 Compute Engine 上的 GPU
  • IMAGEIMAGE_FAMILY:指定以下其中一项:

    • IMAGE:所需的公共映像版本。例如 "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定 "sourceImage": "projects/debian-cloud/global/images/family/debian-10",则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。

    您也可以指定自定义映像或 Deep Learning VM Image 映像

  • IMAGE_PROJECT:映像系列所属的 Compute Engine 映像项目。如果使用自定义映像或 Deep Learning VM Image 映像,请指定这些映像所属的项目。

  • DISK_SIZE:您的启动磁盘的大小(以 GB 为单位)。 请指定至少为 40 GB 的启动磁盘大小。

  • NETWORK:您要用于虚拟机的 VPC 网络。您可以指定 default 来使用默认网络。

  • ACCELERATOR_COUNT:要添加到虚拟机的 GPU 数量。如需查看基于虚拟机机器类型的 GPU 限制列表,请参阅 Compute Engine 上的 GPU

  • ACCELERATOR_TYPE:您要使用的 GPU 模型。如果您计划在此虚拟机上运行图形密集型工作负载,请使用一个虚拟工作站模型

    请选择以下某个值:

    • NVIDIA® T4:nvidia-tesla-t4
    • 配有 NVIDIA® GRID® 的 NVIDIA® T4 虚拟工作站:nvidia-tesla-t4-vws
    • NVIDIA® P4:nvidia-tesla-p4
    • 配有 NVIDIA® GRID® 的 NVIDIA® P4 虚拟工作站:nvidia-tesla-p4-vws
    • NVIDIA® P100:nvidia-tesla-p100
    • 配有 NVIDIA® GRID® 的 NVIDIA® P100 虚拟工作站:nvidia-tesla-p100-vws
    • NVIDIA® V100:nvidia-tesla-v100
    • NVIDIA® K80:nvidia-tesla-k80

下一步:如需确保系统可以使用 GPU,请完成以下步骤:

后续步骤