本文說明如何建立及執行使用繪圖處理單元 (GPU) 的工作。如要進一步瞭解 GPU 的功能和限制,請參閱 Compute Engine 說明文件中的「關於 GPU」一文。
建立 Batch 工作時,您可以選擇使用 GPU 加速處理特定工作負載。使用 GPU 的工作常見用途包括密集資料處理和人工智慧 (AI) 工作負載,例如機器學習 (ML)。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
-
如要取得建立作業所需的權限,請要求管理員授予下列 IAM 角色:
-
專案的批次工作編輯者 (
roles/batch.jobsEditor) -
服務帳戶使用者 (
roles/iam.serviceAccountUser) 在作業的服務帳戶上,預設為預設 Compute Engine 服務帳戶
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
-
專案的批次工作編輯者 (
建立使用 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 機器類型及其工作需求 加速器最佳化 VM 的 GPU:如果 VM 的機型來自加速器最佳化機型系列,系統會自動連接特定類型和數量的 GPU。
如要將 GPU 用於加速器最佳化 VM,建議您指定機器類型。 每個加速器最佳化機器類型僅支援特定類型和數量的 GPU,因此無論您是否指定這些值,功能上都等同於加速器最佳化機器類型。
具體來說,Batch 也支援只為加速器最佳化 VM 指定 GPU 類型和數量,但產生的 vCPU 和記憶體選項通常非常有限。因此,建議您確認可用的 vCPU 和記憶體選項是否符合作業的工作需求。
N1 VM 的 GPU:您必須指定要附加至每個 VM 的 GPU 類型和數量,且必須附加至N1 機器系列的 VM。
如要將 GPU 用於 N1 VM,建議您至少指定 GPU 類型和 GPU 數量。請確認值組合符合N1 機器類型的有效 GPU 選項。使用任何特定類型和數量的 GPU 時,N1 VM 的 vCPU 和記憶體選項相當彈性。除非您使用 Google Cloud 控制台建立工作,否則 Batch 會自動選取符合工作任務需求的機器類型。
選取用量方案
本節將摘要說明如何為工作選取用量選項,以及每個選項的工作需求。
下表根據用例列出 Batch 的可用用量選項和相關規定,並依資源可用性從大致最高到最低排序。
總而言之,我們建議大多數使用者為工作選取下列用量選項:
- 除非其他條件成立,否則請使用彈性啟動 VM (搶先版) (如果符合您的需求,建議使用此選項) 或隨選 VM。
- 如果您的工作需要極高的資源可用性保證,或您有任何無法刪除的未使用預訂,請使用日曆模式預訂 (搶先版) (如果符合您的需求,建議使用此模式) 或預訂。
- (選用) 如果工作負載的容錯能力極高,不妨嘗試使用 Spot VM,或許能降低成本。
| 用量方案和工作需求 | |
|---|---|
預訂 |
Batch 會為可耗用未使用的預留 VM 的工作使用預留項目。如要進一步瞭解使用預留項目的工作需求,請參閱「使用 VM 預留項目確保資源可用性」頁面。 |
日曆模式預訂 (搶先體驗)
|
Batch 會為符合下列所有條件的工作使用日曆模式預訂:
|
彈性啟動 VM (預先發布版)
|
Batch 會針對符合下列所有條件的工作使用彈性啟動 VM:
|
以量計價
|
根據預設,Batch 會對大多數其他工作使用以量計價模式。如要確保作業使用隨選執行個體,請完成下列所有步驟:1
1例外狀況:對於使用 A3 系列機器的作業,預設行為較為特殊,建議您不要使用隨選 VM,也不要將 |
Spot VM
|
Batch 會針對符合下列所有條件的工作使用 Spot VM:
|
步驟 2:安裝 GPU 驅動程式
如要使用 GPU 執行工作,請務必安裝 GPU 驅動程式。如要安裝 GPU 驅動程式,請選用下列其中一種方法:
自動安裝 GPU 驅動程式 (建議盡可能採用):如範例所示,如要讓 Batch 從第三方位置擷取並安裝必要的 GPU 驅動程式,請將工作的
installGpuDrivers欄位設為true。如果您的工作不需要手動安裝驅動程式,建議使用這個方法。如要指定 Batch 安裝的 GPU 驅動程式版本,請一併設定
driverVersion欄位。手動安裝 GPU 驅動程式:如果符合下列任一條件,就必須採用這個方法:
- 作業會使用指令碼和容器可執行檔,且沒有網際網路存取權。如要進一步瞭解工作擁有的存取權,請參閱「Batch 網路總覽」。
- 工作使用自訂 VM 映像檔。如要進一步瞭解 VM OS 映像檔和可使用的 VM OS 映像檔,請參閱「VM OS 環境總覽」。
如要手動安裝必要的 GPU 驅動程式,建議使用下列方法:
建立包含 GPU 驅動程式的自訂 VM 映像檔。
如要安裝 GPU 驅動程式,請根據要使用的 OS 執行安裝指令碼:
如果作業有任何容器可執行檔,且未使用 Container-Optimized OS,您也必須安裝 NVIDIA Container Toolkit
建立及提交使用 GPU 的工作時,請指定包含 GPU 驅動程式的自訂 VM 映像檔,並將工作的
installGpuDrivers欄位設為false(預設值)。
步驟 3:定義相容的 VM 資源
如要瞭解定義作業 VM 資源的規定和選項,請參閱「作業資源」。
總而言之,定義使用 GPU 的工作適用的 VM 資源時,您必須完成下列所有步驟:
請確認 GPU 機型適用於作業 VM 的位置。
如要瞭解哪些區域提供 GPU 機器類型,請參閱 Compute Engine 說明文件中的「加速器可用性」一文。
如果您指定工作機型,請確認該機型有足夠的 vCPU 和記憶體,可滿足工作任務需求。使用 Google Cloud 控制台建立工作時,必須指定工作的機器類型。建立使用 GPU 的工作時,建議指定機器類型,以便使用加速器最佳化 VM。
請務必使用有效方法,為工作定義 VM 資源:
- 直接使用
instances[].policy欄位定義 VM 資源 (建議盡可能採用)。 如範例所示。 - 使用
instances[].instanceTemplate欄位,透過範本定義 VM 資源。 如要透過自訂映像檔手動安裝 GPU 驅動程式,就必須使用這個方法。詳情請參閱使用 VM 執行個體範本定義工作資源。
- 直接使用
建立使用 GPU 的範例工作
以下各節說明如何為每個用量選項建立範例工作。具體來說,範例工作使用建議選項:全部自動安裝 GPU 驅動程式,並全部直接定義 VM 資源。
| 用量方案 | 工作指示範例 |
|---|---|
| 預訂或日曆模式預訂 (搶先體驗) | |
| 彈性啟動 VM (預先發布版) | |
| 隨選或 Spot VM |
根據 GPU 機器類型選取下列其中一個選項: |
使用 GPU 和彈性啟動 VM
您可以透過 Dynamic Workload Scheduler,使用 gcloud CLI 或 Batch API 建立工作,讓 A3 VM 使用 GPU。
gcloud
建立 JSON 檔案,安裝 GPU 驅動程式、指定支援彈性啟動 VM 的 GPU 機器類型、封鎖預訂,並在支援 GPU 機器類型的位置執行。
舉例來說,如要建立使用 Flex-start VM 和 GPU 的基本指令碼工作,以加速器最佳化 VM 執行,請建立包含下列內容的 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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代您安裝。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。MACHINE_TYPE:支援彈性啟動 VM 的 GPU 機器類型。詳情請參閱 Compute Engine 說明文件中的「依機器類型提供的用量選項」。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。
如要建立及執行作業,請使用
gcloud alpha batch jobs submit指令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE更改下列內容:
JOB_NAME:作業名稱。LOCATION:工作地點。JSON_CONFIGURATION_FILE:JSON 檔案的路徑,內含作業的設定詳細資料。
API
向 v1alpha jobs.create 方法發出 POST 要求,安裝 GPU 驅動程式、指定支援彈性啟動 VM 的 GPU 機器類型、封鎖預訂,並在支援 GPU 機器類型的位置執行。
舉例來說,如要建立基本指令碼工作,並使用彈性啟動 VM 和 GPU 進行加速器最佳化 VM,請提出下列要求:
POST https://batch.googleapis.com/v1alpha/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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代您安裝。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。MACHINE_TYPE:支援彈性啟動 VM 的 GPU 機器類型。詳情請參閱 Compute Engine 說明文件中的「依機器類型提供的用量選項」。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。
使用 GPU 搭配加速器最佳化 VM
您可以使用Google Cloud 主控台、gcloud CLI、Batch API、Java、Node.js 或 Python,建立使用 GPU 的工作,以搭配加速器最佳化 VM。
控制台
如要使用 Google Cloud 控制台建立使用 GPU 的工作,請按照下列步驟操作:
前往 Google Cloud 控制台的「Job list」(工作清單) 頁面。
按一下 「建立」。「建立批次工作」頁面隨即開啟。左側窗格會選取「工作詳細資料」頁面。
設定「工作詳細資料」頁面:
選用:在「Job name」(工作名稱) 欄位中,自訂工作名稱。
例如輸入
example-gpu-job。設定「工作詳細資料」部分:
在「新增可執行項目」視窗中,為這項工作新增至少一個指令碼或容器,以供執行。
舉例來說,如要建立基本指令碼工作,請按照下列步驟操作:
勾選「指令碼」核取方塊。系統會顯示一個欄位。
在欄位中輸入下列指令碼:
echo Hello world from task ${BATCH_TASK_INDEX}.按一下 [完成]。
在「Task count」(工作數) 欄位中,輸入這項工作的工作數。
例如輸入
3。選用:在「Parallelism」(平行處理) 欄位中,輸入要同時執行的工作數量。
例如,輸入
1(預設值)。
設定「資源規格」頁面:
在左側窗格中,按一下「資源規格」。 「資源規格」頁面隨即開啟。
在「VM 佈建模型」部分,為這項作業的 VM 選取下列其中一個消耗選項:
如果您的工作可以承受先占,且您想要使用折扣價的 Spot VM,請選取「Spot」。
如要使用隨選 VM,請選取「標準」 (預設)。
選取這項工作的地點。
在「Region」(區域) 欄位中選取區域。
在「區域」欄位中,執行下列其中一項操作:
如要限制這項工作只能在特定區域中執行,請選取區域。
否則請選取「不限」 (預設)。
為這項工作的 VM 選取 GPU 機器類型:
在機器系列選項中,按一下「GPU」。
在「GPU type」(GPU 類型) 欄位中,選取 GPU 類型。然後在「Number of GPUs」(GPU 數量) 欄位中,選取每個 VM 的 GPU 數量。
如果您選取加速器最佳化 VM 的其中一種 GPU 類型,則「機器類型」欄位只會根據您選取的 GPU 類型和數量,提供一種機器類型選項。
如要自動安裝 GPU 驅動程式,請選取「GPU driver installation」(安裝 GPU 驅動程式) (預設)。
設定各項工作所需的 VM 資源量:
在「Cores」(核心) 欄位中,輸入每個工作使用的 vCPUs 數量。
例如,輸入
1(預設值)。在「記憶體」欄位中,輸入每個工作使用的 RAM 容量 (以 GB 為單位)。
例如,輸入
0.5(預設值)。
按一下 [完成]。
選用:設定這項工作的其他欄位。
選用:如要檢查工作設定,請在左側窗格中按一下「預覽」。
點選「建立」。
「Job details」(工作詳細資料) 頁面會顯示您建立的工作。
gcloud
建立 JSON 檔案,安裝 GPU 驅動程式、指定加速器最佳化機器家族的機器類型,並在具有 GPU 機器類型的位置執行。
舉例來說,如要建立使用 GPU 的基本指令碼作業,以加速器最佳化 VM 執行,請建立內容如下的 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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代您安裝。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。PROVISIONING_MODEL:消耗選項的佈建模式:STANDARD代表隨選,SPOT代表 Spot VM。MACHINE_TYPE:加速器最佳化機器系列的機器類型。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。
如要建立及執行作業,請使用
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 的基本指令碼工作,以加速器最佳化 VM 執行個體執行,請提出下列要求:
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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代您安裝。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。PROVISIONING_MODEL:消耗選項的佈建模式:STANDARD代表隨選,SPOT代表 Spot VM。MACHINE_TYPE:加速器最佳化機器系列的機器類型。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。
Java
Node.js
Python
為 N1 VM 使用 GPU
您可以使用 Google Cloud 控制台、gcloud CLI、Batch API、Java、Node.js 或 Python,建立使用 N1 VM GPU 的工作。
控制台
如要使用 Google Cloud 控制台建立使用 GPU 的工作,請按照下列步驟操作:
前往 Google Cloud 控制台的「Job list」(工作清單) 頁面。
按一下 「建立」。「建立批次工作」頁面隨即開啟。左側窗格會選取「工作詳細資料」頁面。
設定「工作詳細資料」頁面:
選用:在「Job name」(工作名稱) 欄位中,自訂工作名稱。
例如輸入
example-gpu-job。設定「工作詳細資料」部分:
在「新增可執行項目」視窗中,為這項工作新增至少一個指令碼或容器,以供執行。
舉例來說,如要建立基本指令碼工作,請按照下列步驟操作:
勾選「指令碼」核取方塊。系統會顯示一個欄位。
在欄位中輸入下列指令碼:
echo Hello world from task ${BATCH_TASK_INDEX}.按一下 [完成]。
在「Task count」(工作數) 欄位中,輸入這項工作的工作數。
例如輸入
3。選用:在「Parallelism」(平行處理) 欄位中,輸入要同時執行的工作數量。
例如,輸入
1(預設值)。
設定「資源規格」頁面:
在左側窗格中,按一下「資源規格」。 「資源規格」頁面隨即開啟。
在「VM 佈建模型」部分,為這項作業的 VM 選取下列其中一個消耗選項:
如果您的工作可以承受先占,且您想要使用折扣價的 Spot VM,請選取「Spot」。
如要使用隨選 VM,請選取「標準」 (預設)。
選取這項工作的地點。
在「Region」(區域) 欄位中選取區域。
在「區域」欄位中,執行下列其中一項操作:
如要限制這項工作只能在特定區域中執行,請選取區域。
否則請選取「不限」 (預設)。
為這項工作的 VM 選取 GPU 機器類型:
在機器系列選項中,按一下「GPU」。
在「GPU type」(GPU 類型) 欄位中,選取 GPU 類型。
如果您選取N1 VM 的其中一種 GPU 類型,則「系列」欄會設為「N1」。
在「Number of GPUs」(GPU 數量) 欄位中,選取每個 VM 的 GPU 數量。
在「Machine type」(機器類型) 欄位中,選取機器類型。
如要自動安裝 GPU 驅動程式,請選取「GPU driver installation」(安裝 GPU 驅動程式) (預設)。
設定各項工作所需的 VM 資源量:
在「Cores」(核心) 欄位中,輸入每個工作使用的 vCPUs 數量。
例如,輸入
1(預設值)。在「記憶體」欄位中,輸入每個工作使用的 RAM 容量 (以 GB 為單位)。
例如,輸入
0.5(預設值)。
按一下 [完成]。
選用:設定這項工作的其他欄位。
選用:如要檢查工作設定,請在左側窗格中按一下「預覽」。
點選「建立」。
「Job details」(工作詳細資料) 頁面會顯示您建立的工作。
gcloud
建立 JSON 檔案,安裝 GPU 驅動程式、定義
accelerators[]欄位的type和count子欄位,並在具有 GPU 機器類型的位置執行。舉例來說,如要建立使用 N1 VM 的 GPU,並讓 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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代表您安裝這些驅動程式。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。PROVISIONING_MODEL:消耗選項的佈建模式:STANDARD代表隨選,SPOT代表 Spot VM。GPU_TYPE:GPU 類型。您可以使用gcloud compute accelerator-types list指令,查看可用 GPU 類型的清單。 這個欄位僅適用於 N1 VM 的 GPU。GPU_COUNT:指定類型的 GPU 數量。如要進一步瞭解有效選項,請參閱 N1 系列機器的 GPU 機型。這個欄位僅適用於 N1 VM 的 GPU。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。
如要建立及執行作業,請使用
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 VM 的 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:設為true時,Batch 會從第三方位置擷取policy欄位中指定的 GPU 類型所需驅動程式,並代您安裝。如果將這個欄位設為false(預設值),您必須手動安裝 GPU 驅動程式,才能使用這項工作的任何 GPU。PROVISIONING_MODEL:消耗選項的佈建模式:STANDARD代表隨選,SPOT代表 Spot VM。GPU_TYPE:GPU 類型。您可以使用gcloud compute accelerator-types list指令,查看可用 GPU 類型的清單。這個欄位僅適用於 N1 VM 的 GPU。GPU_COUNT:指定類型的 GPU 數量。如要進一步瞭解有效選項,請參閱 N1 系列機器的 GPU 機型。這個欄位僅適用於 N1 VM 的 GPU。ALLOWED_LOCATIONS:您可以選擇使用allowedLocations[]欄位,指定允許工作 VM 執行的地區或地區中的特定區域,例如regions/us-central1允許地區us-central1中的所有區域。請務必指定提供您要用於這項工作的 GPU 機型的位置。否則,如果省略這個欄位,請確保工作地點提供 GPU 機器類型。