本文档介绍了如何创建和运行使用图形处理单元 (GPU) 的作业。如需详细了解 GPU 的功能和限制,请参阅 Compute Engine 文档中的 GPU 简介。
创建批量作业时,您可以选择使用 GPU 来加速特定工作负载。使用 GPU 的作业的常见应用场景包括密集型数据处理和人工智能工作负载 (AI),例如机器学习 (ML)。或者,您也可以使用 TPU 来加速 AI 和机器学习工作负载。
准备工作
- 如果您之前未使用过 Batch,请参阅 Batch 使用入门,并通过完成项目和用户的前提条件来启用 Batch。
-
如需获得创建作业所需的权限,请让您的管理员为您授予以下 IAM 角色:
- 项目的 批量作业编辑器 (
roles/batch.jobsEditor) - 作业的服务账号(默认情况下为默认 Compute Engine 服务账号)的 Service Account User (
roles/iam.serviceAccountUser)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
- 项目的 批量作业编辑器 (
创建使用 GPU 的作业
如需创建使用 GPU 的作业,请执行以下操作:
- 规划使用 GPU 的作业的配置。
- 根据您确定的要求和方法创建作业。 如需查看如何使用推荐选项创建作业的示例,请参阅本文档中的创建使用 GPU 的作业。
规划使用 GPU 的作业的配置
在创建使用 GPU 的作业之前,请规划作业的配置要求,如以下部分所述:
第 1 步:选择 GPU 机器类型和使用选项
作业的要求因您首选的 GPU 机器类型和使用选项而异,并且每个选项可能相互依赖。
如需为作业选择 GPU 机器类型和使用选项,请完成以下步骤:
确定并选择您的优先事项:
- 如果您想优先考虑性能和基本价格,请参阅本文档中的选择 GPU 机器类型部分。
- 如果您想优先考虑资源可用性或折扣,请参阅本文档中的选择使用选项部分。
根据与您的第一个选择兼容的内容进行其余选择。
如需确定与您的首选选项兼容的选项,请参阅 Compute Engine 文档中的按机器类型划分的消耗选项可用性。
请分别参阅选择使用选项或选择 GPU 机器类型的其余部分。
选择 GPU 机器类型
如需为作业选择 GPU 机器类型并了解其作业要求,请完成以下步骤:
选择 GPU 机器类型:如需查看可用的 GPU 机器类型(GPU 类型、GPU 数量和机器类型 [vCPU 和内存] 的有效组合)及其推荐用例,请参阅 Compute Engine 文档中的 GPU 机器类型和加速器优化机器系列。
了解 GPU 机器类型的作业要求:作业指定 GPU 机器类型所需的字段因下表中的类别而异:
GPU 机器类型及其作业要求 加速器优化型虚拟机的 GPU:采用加速器优化型机器系列中的机器类型的虚拟机,会自动挂接特定类型和数量的此类 GPU。
如需将 GPU 用于加速器优化虚拟机,我们建议您指定机器类型。每种加速器优化机器类型仅支持特定类型和数量的 GPU,因此无论您是否在加速器优化机器类型之外指定这些值,其功能都是等效的。
具体而言,Batch 还支持仅为加速器优化虚拟机指定 GPU 的类型和数量,但生成的 vCPU 和内存选项通常非常有限。因此,我们建议您验证可用的 vCPU 和内存选项是否与作业的任务要求兼容。
适用于 N1 虚拟机的 GPU:这些 GPU 需要您指定要挂接到每个虚拟机的类型和数量,并且必须挂接到具有 N1 机器系列中的机器类型的虚拟机。
如需为 N1 虚拟机使用 GPU,我们建议您至少指定 GPU 的类型和数量。确保值组合与 N1 机器类型的有效 GPU 选项之一匹配。使用任何特定类型和数量 GPU 的 N1 虚拟机的 vCPU 和内存选项非常灵活。除非您使用 Google Cloud 控制台创建作业,否则您可以让 Batch 自动选择满足作业任务要求的机器类型。
选择使用选项
本部分总结了如何为作业选择使用选项以及每个选项的作业要求。
下表介绍了 Batch 的可用消耗选项及其作业要求。下表根据用例列出了消耗选项:从大致最高到最低的可获取性。确保您选择的使用选项也符合您对价格、运行时和机器类型支持的要求。如需详细了解如何选择使用选项,另请参阅提高资源可获取性、Compute Engine 预配模型文档和 AI Hypercomputer 使用选项文档。
| 使用选项及其作业要求 | |
|---|---|
预留
|
Batch 会将预留用于可以使用未使用的预留虚拟机的作业。如需详细了解使用预留的作业要求,请参阅使用虚拟机预留确保资源可用性页面。 |
日历模式预留
|
Batch 会将日历模式预留用于执行以下所有操作的作业:
|
灵活启动型虚拟机
|
对于执行以下所有操作的作业,Batch 会使用灵活启动型虚拟机:
|
按需 |
默认情况下,Batch 会对大多数作业使用按需模式。如果您想确保作业使用按需价格,请执行以下所有操作:1
1例外情况:对于使用 A3 机器系列的作业,默认行为是唯一的,我们建议您不要使用按需模式,也不要让 |
Spot 虚拟机
|
Batch 会将 Spot 虚拟机用于执行以下所有操作的作业:
|
第 2 步:安装 GPU 驱动程序
如需为作业使用 GPU,您必须安装 GPU 驱动程序。如需安装 GPU 驱动程序,请选择以下方法之一:
自动安装 GPU 驱动程序(如果可能,建议使用此方法):如示例中所示,如需让 Batch 从第三方位置提取所需的 GPU 驱动程序并代表您安装这些驱动程序,请将作业的
installGpuDrivers字段设置为true。如果您的作业不需要您手动安装驱动程序,建议使用此方法。(可选)如果您需要指定 Batch 安装的 GPU 驱动程序版本,请同时设置
driverVersion字段。手动安装 GPU 驱动程序:如果满足以下任一条件,则需要使用此方法:
- 作业同时使用脚本和容器可运行对象,并且没有互联网访问权限。如需详细了解作业拥有的访问权限,请参阅批量网络概览。
- 作业使用自定义虚拟机映像。如需详细了解虚拟机操作系统映像以及您可以使用的虚拟机操作系统映像,请参阅虚拟机操作系统环境概览。
如需手动安装所需的 GPU 驱动程序,建议使用以下方法:
创建包含 GPU 驱动程序的自定义虚拟机映像。
如需安装 GPU 驱动程序,请根据您要使用的操作系统运行安装脚本:
如果您的作业有任何容器可运行项,并且不使用 Container-Optimized OS,则您还必须安装 NVIDIA 容器工具包
创建并提交使用 GPU 的作业时,请指定包含 GPU 驱动程序的自定义虚拟机映像,并将作业的
installGpuDrivers字段设置为false(默认)。
第 3 步:定义兼容的虚拟机资源
如需了解为作业定义虚拟机资源的要求和选项,请参阅作业资源。
总之,在为使用 GPU 的作业定义虚拟机资源时,您必须执行以下所有操作:
确保 GPU 机器类型在作业虚拟机所在的位置可用。
如需了解哪些位置提供 GPU 机器类型,请参阅 Compute Engine 文档中的 GPU 位置。
如果您指定作业的机器类型,请确保该机器类型具有足够的 vCPU 和内存,可满足作业的任务要求。每当您使用 Google Cloud 控制台创建作业时,都必须指定作业的机器类型;每当您创建使用 GPU 的作业时,都建议指定加速器优化型虚拟机。
请确保使用有效方法为作业定义虚拟机资源:
- 直接使用
instances[].policy字段定义虚拟机资源(如果可能,建议使用此方法)。 示例中展示了此方法。 - 使用
instances[].instanceTemplate字段通过模板定义虚拟机资源。 如需通过自定义映像手动安装 GPU 驱动程序,则必须使用此方法。如需了解详情,请参阅使用虚拟机实例模板定义作业资源。
- 直接使用
创建使用 GPU 的作业
以下部分介绍了如何为每个使用选项创建示例作业。具体而言,示例作业使用推荐的选项:全部自动安装 GPU 驱动程序,并且全部直接定义虚拟机资源。
| 使用选项 | 作业说明示例 |
|---|---|
| 预留或日历模式预留 | |
| 灵活启动型虚拟机 | |
| 按需虚拟机或 Spot 虚拟机 |
根据您的 GPU 机器类型,选择以下选项之一: |
使用 GPU 和灵活启动型虚拟机
您可以使用 gcloud CLI 或 Batch API,通过动态工作负载调度器创建为 A3 虚拟机使用 GPU 的作业。
gcloud
创建一个 JSON 文件,用于安装 GPU 驱动程序、指定支持灵活启动型虚拟机的 GPU 机器类型、屏蔽预留,并在支持该 GPU 机器类型的位置运行。
例如,如需创建一个基本脚本作业,该作业使用灵活启动型虚拟机和 GPU 来运行加速器优化型虚拟机,请创建一个包含以下内容的 JSON 文件。
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel":"FLEX_START", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }替换以下内容:
INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。MACHINE_TYPE:支持灵活启动型虚拟机的 GPU 机器类型。如需了解详情,请参阅 Compute Engine 文档中的按机器类型划分的使用选项可用性。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略
如需创建并运行作业,请使用
gcloud batch jobs submit命令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE替换以下内容:
JOB_NAME:作业的名称。LOCATION:作业的位置。JSON_CONFIGURATION_FILE:包含作业配置详细信息的 JSON 文件的路径。
API
向 jobs.create 方法发出 POST 请求,该方法会安装 GPU 驱动程序、指定支持灵活启动型虚拟机的 GPU 机器类型、屏蔽预留,并在支持 GPU 机器类型的位置运行。
例如,如需创建一个基本脚本作业,该作业使用灵活启动虚拟机和 GPU 来运行加速器优化型虚拟机,请发出以下请求:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel":"FLEX_START",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
替换以下内容:
PROJECT_ID:项目的项目 ID。LOCATION:作业的位置。JOB_NAME:作业的名称。INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。MACHINE_TYPE:支持灵活启动型虚拟机的 GPU 机器类型。如需了解详情,请参阅 Compute Engine 文档中的按机器类型划分的使用选项可用性。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略
为加速器优化型虚拟机使用 GPU
您可以使用Google Cloud 控制台、gcloud CLI、Batch API、Java、Node.js 或 Python 创建一个为加速器优化虚拟机使用 GPU 的作业。
控制台
如需使用 Google Cloud 控制台创建使用 GPU 的作业,请执行以下操作:
在 Google Cloud 控制台中,前往作业列表页面。
点击 创建。 创建批量作业页面随即打开。在左侧窗格中,选择作业详情页面。
配置作业详情页面:
可选:在作业名称字段中,自定义作业名称。
例如,输入
example-gpu-job。配置任务详情部分:
在新建可运行项窗口中,为此作业添加至少一个要运行的脚本或容器。
例如,如需创建基本脚本作业,请执行以下操作:
选中脚本复选框。系统会显示一个字段。
在该字段中,输入以下脚本:
echo Hello world from task ${BATCH_TASK_INDEX}.点击完成。
在任务数字段中,输入此作业的任务数。
例如,输入
3。可选:在并行字段中,输入要并发运行的任务数。
例如,输入
1(默认值)。
配置资源规范页面:
在左侧窗格中,点击资源规范。 系统会打开资源规范页面。
在虚拟机预配模型部分中,为此作业的虚拟机选择以下使用选项之一:
如果您的作业可以承受抢占,并且您希望使用折扣 Spot 虚拟机,请选择 Spot。
否则,如需使用按需虚拟机,请选择标准(默认)。
选择此作业的位置。
在区域字段中,选择一个区域。
在可用区字段中,执行以下操作之一:
如果您希望限制此作业仅在特定可用区中运行,请选择一个可用区。
否则,请选择任意(默认)。
为此作业的虚拟机选择 GPU 机器类型:
在机器家族选项中,点击 GPU。
在 GPU 类型字段中,选择 GPU 类型。然后,在 GPU 数量字段中,选择每个虚拟机的 GPU 数量。
如果您选择了加速器优化虚拟机的 GPU 类型之一,则机器类型字段仅允许根据您选择的 GPU 类型和数量选择一种机器类型。
如需自动安装 GPU 驱动程序,请选择 GPU 驱动程序安装(默认)。
配置每项任务所需的虚拟机资源量:
在核心数字段中,输入每个任务的 vCPUs 数量。
例如,输入
1(默认值)。在内存字段中,输入每个任务的 RAM 量(以 GB 为单位)。
例如,输入
0.5(默认值)。
点击完成。
可选:配置此作业的其他字段。
可选:如需查看作业配置,请在左侧窗格中点击预览。
点击创建。
作业详情页面会显示您创建的作业。
gcloud
创建一个 JSON 文件,用于安装 GPU 驱动程序、指定加速器优化机器家族中的机器类型,并在具有 GPU 机器类型的位置运行。
例如,如需创建使用 GPU 的加速器优化型虚拟机的基本脚本作业,请创建一个包含以下内容的 JSON 文件:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel": "PROVISIONING_MODEL", "machineType": "MACHINE_TYPE", "reservation": "NO_RESERVATION" } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }替换以下内容:
INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。MACHINE_TYPE:加速器优化机器系列中的机器类型。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略
如需创建并运行作业,请使用
gcloud batch jobs submit命令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE替换以下内容:
JOB_NAME:作业的名称。LOCATION:作业的位置。JSON_CONFIGURATION_FILE:包含作业配置详细信息的 JSON 文件的路径。
API
向 jobs.create 方法发出 POST 请求,该方法会安装 GPU 驱动程序,指定加速器优化机器系列中的机器类型,并在具有 GPU 机器类型的位置运行。
例如,如需创建为加速器优化型虚拟机使用 GPU 的基本脚本作业,请发出以下请求:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel": "PROVISIONING_MODEL",
"machineType": "MACHINE_TYPE",
"reservation": "NO_RESERVATION"
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
替换以下内容:
PROJECT_ID:项目的项目 ID。LOCATION:作业的位置。JOB_NAME:作业的名称。INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。MACHINE_TYPE:加速器优化机器系列中的机器类型。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略
Java
Node.js
Python
将 GPU 用于 N1 虚拟机
您可以使用 Google Cloud 控制台、gcloud CLI、Batch API、Java、Node.js 或 Python 创建为 N1 虚拟机使用 GPU 的作业。
控制台
如需使用 Google Cloud 控制台创建使用 GPU 的作业,请执行以下操作:
在 Google Cloud 控制台中,前往作业列表页面。
点击 创建。 创建批量作业页面随即打开。在左侧窗格中,选择作业详情页面。
配置作业详情页面:
可选:在作业名称字段中,自定义作业名称。
例如,输入
example-gpu-job。配置任务详情部分:
在新建可运行项窗口中,为此作业添加至少一个要运行的脚本或容器。
例如,如需创建基本脚本作业,请执行以下操作:
选中脚本复选框。系统会显示一个字段。
在该字段中,输入以下脚本:
echo Hello world from task ${BATCH_TASK_INDEX}.点击完成。
在任务数字段中,输入此作业的任务数。
例如,输入
3。可选:在并行字段中,输入要并发运行的任务数。
例如,输入
1(默认值)。
配置资源规范页面:
在左侧窗格中,点击资源规范。 系统会打开资源规范页面。
在虚拟机预配模型部分中,为此作业的虚拟机选择以下使用选项之一:
如果您的作业可以承受抢占,并且您希望使用折扣 Spot 虚拟机,请选择 Spot。
否则,如需使用按需虚拟机,请选择标准(默认)。
选择此作业的位置。
在区域字段中,选择一个区域。
在可用区字段中,执行以下操作之一:
如果您希望限制此作业仅在特定可用区中运行,请选择一个可用区。
否则,请选择 any(默认)。
为此作业的虚拟机选择 GPU 机器类型:
在机器家族选项中,点击 GPU。
在 GPU 类型字段中,选择 GPU 类型。
如果您选择了 N1 虚拟机的 GPU 类型之一,则系列字段会设置为 N1。
在 GPU 数量字段中,选择每个虚拟机的 GPU 数量。
在机器类型字段中,选择机器类型。
如需自动安装 GPU 驱动程序,请选择 GPU 驱动程序安装(默认)。
配置每项任务所需的虚拟机资源量:
在核心数字段中,输入每个任务的 vCPUs 数量。
例如,输入
1(默认值)。在内存字段中,输入每个任务的 RAM 量(以 GB 为单位)。
例如,输入
0.5(默认值)。
点击完成。
可选:配置此作业的其他字段。
可选:如需查看作业配置,请在左侧窗格中点击预览。
点击创建。
作业详情页面会显示您创建的作业。
gcloud
创建一个 JSON 文件,用于安装 GPU 驱动程序、定义
accelerators[]字段的type和count子字段,并在具有 GPU 机器类型的位置运行。例如,如需创建一个基本脚本作业,该作业使用 GPU 运行 N1 虚拟机,并让 Batch 选择确切的 N1 机器类型,请创建一个包含以下内容的 JSON 文件:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "policy": { "provisioningModel": "PROVISIONING_MODEL", "reservation": "NO_RESERVATION", "accelerators": [ { "type": "GPU_TYPE", "count": GPU_COUNT } ] } } ], "location": { "allowedLocations": [ "ALLOWED_LOCATIONS" ] } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }替换以下内容:
INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。GPU_TYPE:GPU 类型。您可以使用gcloud compute accelerator-types list命令查看可用 GPU 类型的列表。 此字段仅适用于 N1 虚拟机的 GPU。GPU_COUNT:指定类型的 GPU 数量。如需详细了解有效选项,请参阅 N1 机器系列的 GPU 机器类型。此字段仅适用于 N1 虚拟机的 GPU。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略
如需创建并运行作业,请使用
gcloud batch jobs submit命令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE替换以下内容:
JOB_NAME:作业的名称。LOCATION:作业的位置。JSON_CONFIGURATION_FILE:包含作业配置详细信息的 JSON 文件的路径。
API
向 jobs.create 方法发出 POST 请求,该方法会安装 GPU 驱动程序,定义 accelerators[] 字段的 type 和 count 子字段,并使用具有 GPU 机器类型的位置。
例如,如需创建一个基本脚本作业,该作业使用 N1 虚拟机的 GPU,并让 Batch 选择确切的 N1 机器类型,请发出以下请求:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"policy": {
"provisioningModel": "PROVISIONING_MODEL",
"reservation": "NO_RESERVATION",
"accelerators": [
{
"type": "GPU_TYPE",
"count": GPU_COUNT
}
]
}
}
],
"location": {
"allowedLocations": [
"ALLOWED_LOCATIONS"
]
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
替换以下内容:
PROJECT_ID:项目的项目 ID。LOCATION:作业的位置。JOB_NAME:作业的名称。INSTALL_GPU_DRIVERS:是否自动安装 GPU 驱动程序。如果设置为true,Batch 会从第三方位置提取您在policy字段中指定的 GPU 类型所需的驱动程序,并代表您安装这些驱动程序。如果您将此字段设置为false(默认),则需要手动安装 GPU 驱动程序,才能为此作业使用任何 GPU。GPU_TYPE:GPU 类型。您可以使用gcloud compute accelerator-types list命令查看可用 GPU 类型的列表。 此字段仅适用于 N1 虚拟机的 GPU。GPU_COUNT:指定类型的 GPU 数量。如需详细了解有效选项,请参阅 N1 机器系列的 GPU 机器类型。此字段仅适用于 N1 虚拟机的 GPU。ALLOWED_LOCATIONS:作业的允许位置。请使用以下任一选项,确保作业的 Compute Engine 资源所在的位置提供您希望用于此作业的 GPU 机器类型:- 默认情况下,如果您省略
allowedLocations[]字段,则作业会在作业位置 (LOCATION) 区域中创建的 Compute Engine 资源上运行。 - (可选)如果您添加
allowedLocations[]字段,则作业只能在指定位置创建的 Compute Engine 资源上运行。
- 默认情况下,如果您省略