本文档介绍如何创建挂接 GPU 并使用 N1 机器家族的虚拟机。您可以使用大多数 N1 机器类型,但 N1 shared-core
除外。
准备工作
- 如需查看其他前提条件步骤(例如选择操作系统映像和检查 GPU 配额),请参阅概览文档。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
针对项目的
compute.instances.create
权限 -
使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 -
使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 -
使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 -
为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 -
为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 -
使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 -
为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 -
在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 -
为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 -
为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 -
为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 -
为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 -
为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 -
以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 -
以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限 - NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4 虚拟工作站:
nvidia-tesla-t4-vws
- NVIDIA P4 虚拟工作站:
nvidia-tesla-p4-vws
NVIDIA P100 虚拟工作站:
nvidia-tesla-p100-vws
对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。
在 Google Cloud 控制台中,转到创建实例页面。
为您的虚拟机指定名称。请参阅资源命名惯例。
选择 GPU 可用的区域和可用区。查看可用的 GPU 可用区列表。
在机器配置部分中,选择 GPU 机器系列,然后执行以下操作:
- 在 GPU 类型列表中,选择 N1 机器支持的一个 GPU 模型。
- 在 GPU 数量列表中,选择 GPU 的数量。
如果 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划在此虚拟机上运行图形密集型工作负载,请选择启用虚拟工作站 (NVIDIA GRID)。
在机器类型列表中,选择一个预设的 N1 机器类型。或者,您可以指定自定义机器类型设置。
在启动磁盘部分中,点击更改。此时会打开启动磁盘配置页面。
在启动磁盘配置页面上,执行以下操作:
- 在公共映像标签页中,选择支持的 Compute Engine 映像或 Deep Learning VM Image 映像。
- 请指定至少为 40 GB 的启动磁盘大小。
- 如需确认您的启动磁盘选项,请点击选择。
可选:配置预配模型。例如,如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。为此,请完成以下步骤:
- 在可用性政策部分中,从虚拟机预配模型列表中选择 Spot。此设置会对虚拟机停用自动重启和主机维护选项。
- 可选:在虚拟机终止时列表中,选择要在 Compute Engine 抢占虚拟机时执行的操作:
- 如需在抢占期间停止虚拟机,请选择停止(默认)。
- 如需在抢占期间删除虚拟机,请选择删除。
要创建并启动该虚拟机,请点击创建。
VM_NAME
:新虚拟机的名称。MACHINE_TYPE
:您为虚拟机选择的机器类型。ZONE
:虚拟机的可用区。此可用区必须支持该 GPU 类型。DISK_SIZE
:您的启动磁盘的大小(以 GB 为单位)。 请指定至少为 40 GB 的启动磁盘大小。支持 GPU 的
IMAGE
或IMAGE_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 GPU:
- NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):
- NVIDIA T4 虚拟工作站:
nvidia-tesla-t4-vws
- NVIDIA P4 虚拟工作站:
nvidia-tesla-p4-vws
NVIDIA P100 虚拟工作站:
nvidia-tesla-p100-vws
对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。
- NVIDIA T4 虚拟工作站:
PROJECT_ID
:项目 ID。ZONE
:要列出其提供的 GPU 类型的可用区。VM_NAME
:虚拟机的名称。PROJECT_ID
:您的项目 ID。ZONE
:虚拟机的可用区。此可用区必须支持该 GPU 类型。MACHINE_TYPE
:您为虚拟机选择的机器类型。如需查看基于您所需的 GPU 数量适用的机器类型,请参阅 Compute Engine 上的 GPUIMAGE
或IMAGE_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 GPU:
- NVIDIA T4:
nvidia-tesla-t4
- NVIDIA P4:
nvidia-tesla-p4
- NVIDIA P100:
nvidia-tesla-p100
- NVIDIA V100:
nvidia-tesla-v100
- NVIDIA T4:
NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):
- NVIDIA T4 虚拟工作站:
nvidia-tesla-t4-vws
- NVIDIA P4 虚拟工作站:
nvidia-tesla-p4-vws
NVIDIA P100 虚拟工作站:
nvidia-tesla-p100-vws
对于这些虚拟工作站,系统会自动将 NVIDIA RTX 虚拟工作站 (vWS) 许可添加到虚拟机。
- NVIDIA T4 虚拟工作站:
- 如果您计划运行图形密集型工作负载(例如用于游戏和可视化的工作负载),请为 NVIDIA RTX 虚拟工作站安装驱动程序。
- 对于大多数工作负载,请安装 GPU 驱动程序。
- 详细了解 GPU 平台。
- 将本地 SSD 添加到实例。 如果您的应用需要高性能存储空间,本地 SSD 设备和 GPU 是绝佳拍档。
- 安装 GPU 驱动程序。 如果您启用了 NVIDIA RTX 虚拟工作站,请为虚拟工作站安装驱动程序。
- 如需处理 GPU 主机维护,请参阅处理 GPU 主机维护事件。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得创建虚拟机所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色可提供创建虚拟机所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建虚拟机需要以下权限:
概览
以下 GPU 型号可以挂接到使用 N1 机器家族的虚拟机。
NVIDIA GPU:
NVIDIA RTX 虚拟工作站 (vWS)(以前称为 NVIDIA GRID):
创建挂接了 GPU 的虚拟机
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建挂接 GPU 的 N1 虚拟机。
控制台
gcloud
要创建并启动虚拟机,请使用带有以下标志的
gcloud compute instances create
命令。如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。
--provisioning-model=SPOT
是一个可选标志,用于将虚拟机配置为 Spot 虚拟机。对于 Spot 虚拟机,自动重启和主机维护选项标志处于停用状态。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]
替换以下内容:
示例
例如,您可以使用以下
gcloud
命令在us-east1-d
可用区中启动配备 1 个 NVIDIA T4 GPU 和 2 个 vCPU 的 Ubuntu 22.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-t4,count=1 \ --image-family ubuntu-2204-lts \ --image-project ubuntu-os-cloud \ --maintenance-policy TERMINATE
REST
确定要添加到虚拟机的 GPU 类型。提交 GET 请求,列出在特定区域中可用于项目的 GPU 类型。
如果您的工作负载具有容错能力,并且可以承受可能的虚拟机抢占,请考虑使用 Spot 虚拟机来降低虚拟机和挂接的 GPU 的费用。如需了解详情,请参阅 Spot 虚拟机上的 GPU。
"provisioningModel": "SPOT"
是一个可选参数,用于将虚拟机配置为 Spot 虚拟机。对于 Spot 虚拟机,自动重启和主机维护选项标志处于停用状态。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/acceleratorTypes
替换以下内容:
向
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": { ["automaticRestart": true], "onHostMaintenance": "TERMINATE", ["provisioningModel": "SPOT"] }, }
请替换以下内容:
安装驱动程序
如需安装驱动程序,请选择以下选项之一:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-