本頁面說明如何為 Cloud Run 作業設定 GPU。GPU 非常適合用於 AI 工作負載,例如使用偏好的架構訓練大型語言模型 (LLM)、對 LLM 執行批次或離線推論,以及處理其他需要大量運算資源的工作,例如以背景工作處理影片和繪圖。Google 提供 NVIDIA L4 GPU,內含 24 GB 的 GPU 記憶體 (VRAM),與執行個體記憶體不同。
Cloud Run 上的 GPU 為全代管服務,不需要額外的驅動程式或程式庫。GPU 功能提供隨選可用性,無須預訂,與 Cloud Run 中的隨選 CPU 和隨選記憶體運作方式類似。
附加 L4 GPU 並預先安裝驅動程式的 Cloud Run 執行個體,大約會在 5 秒內啟動,屆時容器中執行的程序就能開始使用 GPU。
每個 Cloud Run 執行個體可設定一個 GPU。如果您使用 Sidecar 容器,請注意 GPU 只能附加至一個容器。
支援的地區
asia-southeast1
(新加坡)asia-south1
(孟買) 。這個區域僅開放給受邀對象。如對這個區域有興趣,請與 Google 帳戶團隊聯絡。europe-west1
(比利時)二氧化碳排放量低
europe-west4
(荷蘭)二氧化碳排放量低
us-central1
(愛荷華州)二氧化碳排放量低
us-east4
(北維吉尼亞州)
支援的 GPU 類型
每個 Cloud Run 執行個體最多可使用一個 L4 GPU。L4 GPU 已預先安裝下列驅動程式:
- 目前的 NVIDIA 驅動程式版本:535.216.03 (CUDA 12.2)
價格影響
如需 GPU 定價詳細資料,請參閱 Cloud Run 定價。請注意下列規定和考量事項:
- 工作使用的 GPU 採用非可用區備援定價 (預先發布版)。
- 最少須使用 4 個 CPU 和 16 GiB 的記憶體。
- 系統會針對執行個體生命週期的整個期間收取 GPU 費用。
GPU 非可用區備援機制
Cloud Run 作業提供非區域性備援支援 (預先發布版),適用於啟用 GPU 的執行個體。啟用非可用區備援機制後,Cloud Run 會盡可能為啟用 GPU 的工作執行容錯移轉。只有在當時有足夠的 GPU 容量時,Cloud Run 才會將工作執行作業轉送至其他可用區。這個選項無法保證容錯移轉情境的預留容量,但每秒 GPU 的費用較低。
申請提高配額
如果專案沒有 GPU 配額,請部署 Cloud Run 服務,系統就會自動授予該區域 3 個 nvidia-l4
GPU 配額 (關閉可用區備援)。請注意,這項自動配額授予功能取決於 CPU 和記憶體容量,因此不一定適用。刪除未使用的服務後,配額不會變動。
如果需要更多 Cloud Run 作業的 GPU,請申請提高配額。
可平行執行的 GPU 工作執行個體 (工作) 數量上限受下列配額限制:
不含可用區備援機制的 Jobs GPU 執行個體配額。這項配額預設為
5
。
視哪個配額限制較嚴格而定,並行值必須小於不具可用區備援功能的 GPU 配額,或不具可用區備援功能的 Jobs GPU 執行個體配額。
事前準備
在 Cloud Run 中使用 GPU 時,請注意下列規定和限制:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run API.
- 如要在使用含 GPU 的 Cloud Run 作業時提升效能,請參閱「最佳做法:使用 GPU 的 Cloud Run 作業」。
必要的角色
如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予您下列作業的 IAM 角色:
-
Cloud Run 開發人員 (
roles/run.developer
) - Cloud Run 工作 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) - 服務身分
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱 Cloud Run IAM 角色和 Cloud Run IAM 權限。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
設定含 GPU 的 Cloud Run 工作
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 設定 GPU。
gcloud
如要建立啟用 GPU 的工作,請使用 gcloud beta run jobs create 指令:
gcloud beta run jobs create JOB_NAME --image=IMAGE --gpu=1
取代:
- JOB_NAME 改為您的 Cloud Run 工作名稱。
- IMAGE_URL,並參照容器映像檔,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。
如要更新工作的 GPU 設定,請使用 gcloud beta run jobs update 指令:
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --parallelism PARALLELISM
取代:
- JOB_NAME 改為您的 Cloud Run 工作名稱。
- IMAGE_URL,並參照容器映像檔,例如
us-docker.pkg.dev/cloudrun/container/job:latest
。 - CPU,且作業至少需要
4
個 CPU。建議值為8
。 - MEMORY,最低為
16Gi
(16 GiB)。建議值為32Gi
。 - GPU_NUMBER,值為
1
(一)。如果未指定這個值,但存在 GPU_TYPE,則預設值為1
。 - GPU_TYPE,並指定 GPU 類型。如未指定,但存在 GPU_NUMBER,則預設為
nvidia-l4
(nvidiaL
4 小寫 L,而非數值 14)。 - PARALLELISM,且整數值小於您為專案分配的適用配額限制最低值。
YAML
如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
更新
nvidia.com/gpu
屬性、annotations: run.googleapis.com/launch-stage
(適用於發布階段) 和nodeSelector:
:
run.googleapis.com/acceleratorapiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME labels: cloud.googleapis.com/location: REGION annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: template: spec: containers: - image: IMAGE_URL limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
取代:
- JOB_NAME 改為您的 Cloud Run 工作名稱。
- IMAGE_URL,並參照容器映像檔,例如
us-docker.pkg.dev/cloudrun/container/job:latest
- 將 CPU 替換為 CPU 數量。您必須指定至少
4
個 CPU。 - MEMORY 替換為記憶體大小。您必須指定至少
16Gi
(16 GiB)。 - GPU_NUMBER,值為
1
(一),因為每個 Cloud Run 執行個體僅支援附加一個 GPU。 - GPU_TYPE,值為
nvidia-l4
(nvidia-L
4,小寫 L,不是數字 14)。
使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml
查看 GPU 設定
如要查看 Cloud Run 作業目前的 GPU 設定:
gcloud
使用下列指令:
gcloud run jobs describe JOB_NAME
在傳回的設定中找出 GPU 設定。
移除 GPU
您可以使用 Google Cloud CLI 或 YAML 移除 GPU。
gcloud
如要移除 GPU,請使用 gcloud beta run jobs update 指令,將 GPU 數量設為 0
:
gcloud beta run jobs update JOB_NAME --gpu 0
將 JOB_NAME 替換為 Cloud Run 工作名稱。
YAML
如果您要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB_NAME --format export > job.yaml
刪除
nvidia.com/gpu:
和nodeSelector: run.googleapis.com/accelerator: nvidia-l4
行。使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml
程式庫
根據預設,所有 NVIDIA L4 驅動程式庫都會掛接在 /usr/local/nvidia/lib64
下方。Cloud Run 會自動將這個路徑附加至含 GPU 容器的 LD_LIBRARY_PATH
環境變數 (即 ${LD_LIBRARY_PATH}:/usr/local/nvidia/lib64
)。動態連結器就能找到 NVIDIA 驅動程式庫。連結器會依您在 LD_LIBRARY_PATH
環境變數中列出的順序,搜尋及解析路徑。您在這個變數中指定的任何值,都會優先於預設的 Cloud Run 驅動程式程式庫路徑 /usr/local/nvidia/lib64
。
如要使用高於 12.2 的 CUDA 版本,最簡單的方法是依附於已安裝向前相容套件的較新 NVIDIA 基本映像檔。你也可以手動安裝 NVIDIA 前向相容性套件,並將這些套件新增至 LD_LIBRARY_PATH
。請參閱 NVIDIA 的相容性矩陣,判斷哪些 CUDA 版本與提供的 NVIDIA 驅動程式版本 (535.216.03) 向前相容。
關於 GPU 和平行處理
如果您在工作執行期間執行平行工作,請判斷並將 parallelism 值設為低於您為專案分配的適用配額限制最低值。依預設,平行執行的工作會將 GPU 工作執行個體配額設為 5
。如要申請提高配額,請參閱「如何提高配額」。GPU 工作會盡快啟動,並視您為專案和所選區域分配的 GPU 配額而定,最多可啟動的數量會有所不同。如果將平行處理設定為超過 GPU 配額限制,Cloud Run 部署作業就會失敗。
如要計算工作在每次執行時使用的 GPU 配額,請將每個工作任務的 GPU 數量乘以平行處理值。舉例來說,假設您有 10 個 GPU 配額,並使用 --gpu=1
、--parallelism=10
部署 Cloud Run 作業,則作業會耗用所有 10 個 GPU 配額。或者,如果您使用 --gpu=1
或 --parallelism=20
部署,部署作業就會失敗。
詳情請參閱最佳做法:使用 GPU 的 Cloud Run 作業。