本頁面說明 Cloud Run 服務的 GPU 設定。GPU 適用於 AI 推論工作負載,例如大型語言模型 (LLM),或其他需要大量運算資源的非 AI 用途,例如影片轉碼和 3D 算繪。Google 提供的 NVIDIA L4 GPU 配備 24 GB 的 GPU 記憶體 (VRAM),與執行個體記憶體分開。
Cloud Run 上的 GPU 是全代管服務,不需要額外的驅動程式或程式庫。GPU 功能提供隨選可用性,無須預先保留,類似於 Cloud Run 中的隨選 CPU 和隨選 記憶體 運作方式。已設定為使用 GPU 的 Cloud Run 服務執行個體,可在未使用時調降至零,以節省成本。
在附加 L4 GPU 且預先安裝驅動程式的情況下,Cloud Run 執行個體可在約 5 秒內啟動,此時在容器中執行的程序就能開始使用 GPU。
您可以為每個 Cloud Run 執行個體設定一個 GPU。如果您使用附屬容器,請注意 GPU 只能連接至一個容器。
支援的地區
us-central1
(愛荷華州)二氧化碳排放量低
asia-southeast1
(新加坡)europe-west1
(比利時)二氧化碳排放量低
europe-west4
(荷蘭)二氧化碳排放量低
asia-south1
(孟買) 這個地區僅限受邀對象使用。如有興趣,請與 Google 帳戶團隊聯絡。
支援的 GPU 類型
每個 Cloud Run 執行個體可使用一個 L4 GPU。L4 GPU 已預先安裝下列驅動程式:
- 目前的 NVIDIA 驅動程式版本:535.216.03 (CUDA 12.2)
價格影響
如要瞭解 GPU 定價詳細資訊,請參閱 Cloud Run 定價。請注意下列規定和注意事項:
- 不會產生任何要求費用。您必須使用以執行個體為依據的計費模式才能使用 GPU 功能,即使執行個體處於閒置狀態,系統仍會以全額費率收費。
- GPU 可用區備援機制和非可用區備援機制的費用有所不同。如要瞭解 GPU 定價詳細資訊,請參閱 Cloud Run 定價。
- 您必須使用至少 4 個 CPU 和 16 GiB 記憶體。
- 系統會針對執行個體的整個生命週期收取 GPU 費用。
GPU 可用區備援機制選項
根據預設,Cloud Run 會在單一區域內的多個可用區部署服務。這種架構可提供固有的復原能力:如果某個可用區發生中斷服務的情況,Cloud Run 會自動將流量從受影響的可用區,路由至同一個區域內的正常可用區。
使用 GPU 資源時,請注意 GPU 資源有特定容量限制。在可用區停機期間,GPU 工作負載的標準容錯移轉機制,需要在剩餘的正常可用區中提供足夠的未使用 GPU 容量。由於 GPU 的限制性質,這項容量可能無法隨時供應。
如要在可用區服務中斷時提高 GPU 加速運算服務的可用性,您可以為 GPU 特別設定可用區備援機制:
已啟用可用區備援機制 (預設):Cloud Run 會為您的服務在多個可用區保留 GPU 容量。這樣一來,服務成功處理從受影響可用區重新導向的流量機率將大幅提升,可在可用區發生故障時提供更高的可靠度,但每秒 GPU 的費用也會隨之增加。
可用區備援機制已關閉:Cloud Run 會盡力為 GPU 工作負載嘗試備援。只有在當下有足夠的 GPU 運算資源時,流量才會轉送至其他可用區。這個選項無法保證備援情況下的預留容量,但會降低每秒 GPU 的費用。
服務水準協議
Cloud Run GPU 的 SLA 取決於服務是否使用可用區備援機制或非可用區備援機制選項。詳情請參閱服務水準協議頁面。
申請提高配額
在某個地區首次使用 Cloud Run nvidia-l4
GPU 的專案,在建立第一個部署時,會自動獲得 3 個 GPU 配額 (關閉區域備援)。如果需要額外的 Cloud Run GPU,請務必為 Cloud Run 服務申請提高配額。請使用下方按鈕提供的連結,申請所需配額。
需要配額 | 配額連結 |
---|---|
關閉可用區備援機制的 GPU (價格較低) | 申請無可用區備援機制的 GPU 配額 |
已啟用可用區備援機制的 GPU (價格較高) | 申請可用區備援 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.
- 申請所需配額。
- 請參閱最佳做法:在 Cloud Run 中使用 GPU 進行 AI 推論,瞭解建構容器映像檔和載入大型模型的最佳做法。
- 請確認 Cloud Run 服務具有下列設定:
- 將帳單設定設為以執行個體為依據的計費模式。請注意,設定為以執行個體為基礎的帳單服務仍可調降至零。
- 為服務設定至少 4 個 CPU (建議使用 8 個 CPU)。
- 請至少設定 16 GiB 的記憶體,建議使用 32 GiB。
- 決定並設定 GPU 使用量的最佳並行數量上限。
- 執行個體數量上限必須設為低於每個區域每個專案的 GPU 配額。請參閱「關於 GPU 和執行個體數量上限」。
-
Cloud Run 開發人員 (
roles/run.developer
) - Cloud Run 服務 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) - 服務身分 前往 Google Cloud 控制台的 Cloud Run:
從選單中選取「Services」(服務),然後按一下「Deploy container」(部署容器),即可設定新的服務。如果您要設定現有服務,請按一下該服務,然後點選「編輯並部署新修訂版本」。
如果您要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、磁碟區、網路與安全性」展開服務設定頁面。
按一下「Container」分頁標籤。
- 請按照「事前準備」一節的建議,設定 CPU、記憶體、並行處理、執行環境和啟動探測。
- 勾選 GPU 核取方塊,然後從「GPU type」選單中選取 GPU 類型,並從「Number of GPUs」選單中選取 GPU 數量。
- 根據預設,系統會為新服務啟用區域備援功能。如要變更目前設定,請選取 GPU 核取方塊,顯示 GPU 備援機制選項。
- 選取「無可用區備援機制」,關閉可用區備援機制
- 選取「可用區備援機制」即可開啟可用區備援機制。
按一下 [Create] (建立) 或 [Deploy] (部署)。
- SERVICE 改為 Cloud Run 服務名稱。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。 - SERVICE 改為 Cloud Run 服務名稱。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
。 - CPU 與 CPU 數量。您必須至少指定
4
CPU。 - MEMORY 與記憶體大小。您必須至少指定
16Gi
(16 GiB)。 - GPU_NUMBER 的值為
1
(一)。如果未指定此值,但有 GPU_TYPE,則預設值為1
。 - GPU_TYPE 與 GPU 類型。如果未指定,但有 GPU_NUMBER,則預設值為
nvidia-l4
(nvidiaL
4 小寫 L,不是數字值 14)。 - MAX_INSTANCE 與執行個體數量上限。這個數字不得超過專案的 GPU 配額。
- GPU_ZONAL_REDUNDANCY 搭配
no-gpu-zonal-redundancy
可關閉可用區備援機制,搭配gpu-zonal-redundancy
則可開啟可用區備援機制。 如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
更新
nvidia.com/gpu:
屬性和nodeSelector:
:
run.googleapis.com/accelerator:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX_INSTANCE' run.googleapis.com/cpu-throttling: 'false' run.googleapis.com/gpu-zonal-redundancy-disabled: 'GPU_ZONAL_REDUNDANCY' spec: containers: - image: IMAGE_URL ports: - containerPort: CONTAINER_PORT name: http1 resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: '1' # Optional: use a longer startup probe to allow long starting containers startupProbe: failureThreshold: 1800 periodSeconds: 1 tcpSocket: port: CONTAINER_PORT timeoutSeconds: 1 nodeSelector: run.googleapis.com/accelerator: GPU_TYPE
取代:
- SERVICE 改為 Cloud Run 服務名稱。
- IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CONTAINER_PORT,其中包含服務的容器通訊埠設定。
- CPU 與 CPU 數量。您必須至少指定
4
CPU。 - MEMORY 與記憶體大小。您必須至少指定
16Gi
(16 GiB)。 - GPU_TYPE 值為
nvidia-l4
(nvidia-L
4 小寫 L,不是數字值 14)。 - MAX_INSTANCE 與執行個體數量上限。這個數字不得超過專案的 GPU 配額。
- GPU_ZONAL_REDUNDANCY 搭配
false
可開啟 GPU 區域備援功能,搭配true
則可關閉。
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
- SERVICE 改為 Cloud Run 服務名稱。
- GPU_ZONAL_REDUNDANCY 搭配
false
可開啟 GPU 區域備援功能,搭配true
則可關閉。 - IMAGE_URL 與容器映像檔的參照,例如
us-docker.pkg.dev/cloudrun/container/hello:latest
。如果您使用的是 Artifact Registry,則必須先建立存放區 REPO_NAME。網址的形狀為LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- CPU 與 CPU 數量。您必須至少指定
4
CPU。 - MEMORY 與記憶體大小。您必須至少指定
16Gi
(16 GiB)。 - GPU_TYPE 值為
nvidia-l4
(nvidia-L
4 小寫 L,不是數字值 14)。 前往 Google Cloud 控制台的 Cloud Run:
按一下您感興趣的服務,開啟「服務詳細資料」頁面。
按一下「Revisions」(修訂版本) 分頁標籤。
在右側的詳細資料面板中,「GPU」設定會列在「容器」分頁下方。
使用下列指令:
gcloud run services describe SERVICE
在傳回的設定中找出 GPU 設定。
前往 Google Cloud 控制台的 Cloud Run:
從選單中選取「Services」(服務),然後按一下「Deploy container」(部署容器),即可設定新的服務。如果您要設定現有服務,請按一下該服務,然後點選「編輯並部署新修訂版本」。
如果您要設定新服務,請填寫初始服務設定頁面,然後按一下「容器、磁碟區、網路與安全性」展開服務設定頁面。
按一下「Container」分頁標籤。
- 取消勾選 GPU 核取方塊。
按一下 [Create] (建立) 或 [Deploy] (部署)。
如果您要建立新服務,請略過這個步驟。如果您要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
刪除
nvidia.com/gpu:
和nodeSelector: run.googleapis.com/accelerator: nvidia-l4
行。使用下列指令建立或更新服務:
gcloud run services replace service.yaml
- 「Maximum instances」設定會限制每項服務的執行個體數量。這項值不得高於 每個區域的 GPU 專案配額。
- 每個區域每個專案允許的 GPU 配額。這項限制會限制同一個地區中各項服務的執行個體數量。
必要的角色
如要取得設定及部署 Cloud Run 服務所需的權限,請要求管理員授予您服務的以下 IAM 角色:
如需與 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 run deploy 指令:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
取代:
如要更新服務的 GPU 設定,請使用 gcloud run services update 指令:
gcloud run services update SERVICE \ --image IMAGE_URL \ --cpu CPU \ --memory MEMORY \ --no-cpu-throttling \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --max-instances MAX_INSTANCE --GPU_ZONAL_REDUNDANCY
取代:
YAML
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
將下列內容新增至 Terraform 設定中的google_cloud_run_v2_service
資源:resource "google_cloud_run_v2_service" "default" {
provider = google-beta
name = "SERVICE"
location = "europe-west1"
template {
gpu_zonal_redundancy_disabled = "GPU_ZONAL_REDUNDANCY"
containers {
image = "IMAGE_URL"
resources {
limits = {
"cpu" = "CPU"
"memory" = "MEMORY"
"nvidia.com/gpu" = "1"
}
}
}
node_selector {
accelerator = "GPU_TYPE"
}
}
}
取代:
查看 GPU 設定
如要查看 Cloud Run 服務目前的 GPU 設定,請按照下列步驟操作:
控制台
gcloud
移除 GPU
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 移除 GPU。
控制台
gcloud
如要移除 GPU,請使用 gcloud run services update 指令,將 GPU 數量設為 0
:
gcloud run services update SERVICE --gpu 0
將 SERVICE 替換為 Cloud Run 服務名稱。
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 和最大執行個體
含有 GPU 的執行個體數量有兩種限制: