本頁面說明 Cloud Run 服務的 GPU 設定。 GPU 適合用於 AI 推論工作負載,例如大型語言模型 (LLM),或其他非 AI 運算密集用途,像是影片轉碼與 3D 算繪。Google 提供 NVIDIA RTX PRO 6000 Blackwell GPU (96 GB GPU 記憶體 (VRAM)) 和 NVIDIA L4 GPU (24 GB GPU 記憶體 (VRAM)),與執行個體記憶體分開。
Cloud Run GPU 為全代管服務,不需額外安裝驅動程式或程式庫。GPU 功能提供隨選可用性,不需預留,運作方式與 Cloud Run 中的隨選 CPU 和隨選記憶體類似。Cloud Run 服務設為使用 GPU 時,執行個體可在閒置時縮減至零,節省成本。
Cloud Run 執行個體附加 NVIDIA RTX PRO 6000 Blackwell GPU 或 L4 GPU,並預先安裝驅動程式,啟動時間約為 5 秒,之後容器中執行的程序就能開始使用 GPU。
每個 Cloud Run 執行個體可以設定一個 GPU。如果使用邊車容器,請注意 GPU 只能連接至一個容器。
支援的 GPU 類型
Cloud Run 支援兩種 GPU:
- NVIDIA RTX PRO 6000 Blackwell GPU,搭載目前的 NVIDIA 驅動程式版本:580.x.x (13.0)。如要使用 NVIDIA RTX PRO 6000 Blackwell GPU,至少須有 20 個 CPU 和 80 GiB 記憶體。
- L4 GPU 搭配目前的 NVIDIA 驅動程式版本:580.x.x (13.0)。如要使用 L4 GPU,至少須有 4 個 CPU 和 16 GiB 記憶體。
支援的地區
NVIDIA RTX PRO 6000 Blackwell GPU 支援下列區域:
L4 GPU 支援下列區域:
asia-southeast1(新加坡)asia-south1(孟買) . 這個區域僅限受邀者使用。 如果您對這個區域感興趣,請與 Google 帳戶團隊聯絡。europe-west1(比利時)低二氧化碳
europe-west4(荷蘭)低二氧化碳排放
us-central1(愛荷華州)低二氧化碳排放 . 如要擴充這個區域的資源,可能需要申請提高配額。 如要使用這個區域,請與 Google 帳戶團隊聯絡。
us-east4(北維吉尼亞州) . 如要擴充這個區域的資源,可能需要申請提高配額。 如要使用這個區域,請與 Google 帳戶團隊聯絡。
定價影響
如要瞭解 GPU 定價詳情,請參閱「Cloud Run 定價」。請注意下列規定和考量事項:
- 不會按要求次數收費。您必須使用以執行個體為依據的計費模式,才能使用 GPU 功能。即使執行個體處於閒置狀態,仍會按全額費率收取最低執行個體費用。
- GPU 可用區備援和非可用區備援的費用不同。如要瞭解 GPU 定價詳情,請參閱「Cloud Run 定價」。
- 從原始碼部署 Cloud Run 服務或函式時,如果啟用 GPU,Cloud Run 會使用
e2-highcpu-8機器類型建構原始碼,而非預設的e2-standard-2機器類型。較大的機器類型可提供更高的 CPU 支援和網路頻寬,進而縮短建構時間。 - 資源的 CPU 和記憶體設定。
- 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 的服務水準協議取決於服務是否使用可用區備援或非可用區備援選項。詳情請參閱服務水準協議頁面。
申請提高配額
Cloud Run nvidia-rtx-pro-6000 GPU 的配額是以 milliGPU 為單位。如果專案首次在某個區域使用 nvidia-rtx-pro-6000 GPU,系統會在建立第一個部署作業時,自動授予 3,000 milliGPU 配額 (可用區備援功能已關閉)。這相當於 3 個 GPU。首次在某個區域使用 Cloud Run nvidia-l4 GPU 的專案,會在建立第一個部署作業時,自動獲得 3 個 GPU 配額 (可用區備援功能關閉)。
如需更多 Cloud Run GPU,請為 Cloud Run 服務申請提高配額。請點選下列按鈕中的連結,要求所需配額。
| 所需配額 | 配額連結 |
|---|---|
| NVIDIA RTX PRO 6000 Blackwell GPU,關閉可用區備援功能 (價格較低) | 申請無可用區備援的 GPU 配額 |
| NVIDIA RTX PRO 6000 Blackwell GPU,啟用可用區備援機制 (價格較高) | 申請具備可用區備援功能的 GPU 配額 |
| L4 GPU,停用可用區備援 (價格較低) | 申請無可用區備援的 GPU 配額 |
| L4 GPU,啟用可用區備援機制 (價格較高) | 申請具備可用區備援功能的 GPU 配額 |
如要進一步瞭解如何要求提高配額,請參閱「如何提高配額」。
事前準備
下列清單說明在 Cloud Run 使用 GPU 的需求和限制:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
啟用 Cloud Run API (如果尚未啟用)。
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。- 申請所需配額。
- 請參閱「最佳做法:在 Cloud Run 中使用 GPU 進行 AI 推論」,瞭解建構容器映像檔和載入大型模型的建議做法。
- 確認 Cloud Run 服務具有下列設定:
- 將帳單設定變更為以執行個體為依據的計費模式。請注意,採用「以執行個體為依據」計費模式的服務,依然可將資源縮減至零。
- 如為 NVIDIA RTX PRO 6000 Blackwell GPU,請設定至少 20 個 CPU 和 80 GiB 記憶體。
- 如為 L4 GPU,請為服務設定至少 4 個 CPU (建議 8 個),以及至少 16 GiB 記憶體 (建議 32 GiB)。
- 判斷並設定 GPU 使用量的最佳並行上限。
- 執行個體數量上限,必須低於每個區域專案允許的 GPU 配額。請參閱「關於 GPU 和執行個體數量上限」。
必要的角色
如要取得設定及部署 Cloud Run 服務所需的權限,請要求管理員授予您下列服務 IAM 角色:
- Cloud Run 開發人員 (
roles/run.developer) - Cloud Run 服務 - 服務帳戶使用者 (
roles/iam.serviceAccountUser) - 服務身分
如果您是從原始碼部署服務或函式,則必須在專案和 Cloud Build 服務帳戶中,取得額外角色。
如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 服務與Google Cloud API (例如 Cloud 用戶端程式庫) 互動,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱部署權限和管理存取權。
設定 Cloud Run 服務與 GPU
任何設定變更都會建立新的修訂版本。後續修訂版本也會自動套用這項設定,除非您明確更新設定。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 設定 GPU。
控制台
前往 Google Cloud 控制台的「Cloud Run」頁面:
從 Cloud Run 導覽選單中選取「Services」(服務):
如要設定新服務,請按一下「Deploy container」(部署容器),然後填寫初始服務設定頁面。然後按一下「容器、網路、安全性」,展開服務設定頁面。
如要設定現有服務,請按一下該服務。
按一下「容器」分頁標籤。
請按照「事前準備」中的建議,設定 CPU、記憶體、並行、執行環境和啟動探測。
勾選「GPU」核取方塊,然後從對應的選單中選取「GPU type」(GPU 類型) 和「Number of GPUs」(GPU 數量)。
根據預設,新服務會啟用可用區備援功能。勾選「GPU」核取方塊,即可查看「GPU redundancy」(GPU 備援) 選項。
- 如要關閉可用區備援機制,請選取「未啟用可用區備援機制」。
- 如要啟用可用區備援功能,請選取「可用區備援」。
按一下「建立」,建立新服務。依序點選「查看差異並重新部署」和「部署變更」,即可更新現有服務。
gcloud
如要建立已啟用 GPU 的服務,請使用 gcloud run deploy 指令:
如要部署容器:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --gpu 1
更改下列內容:
- 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。
如要從原始碼部署:
gcloud run deploy SERVICE \ --source . \ --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
更改下列內容:
- 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 數量。如要使用 NVIDIA RTX PRO 6000 Blackwell GPU,必須指定至少
20個 CPU。如果是 L4 GPU,則必須指定至少4個 CPU。 - MEMORY:記憶體容量。如果是 NVIDIA RTX PRO 6000 Blackwell GPU,則必須指定至少
80Gi(80 GiB)。如果是 L4 GPU,則必須指定至少16Gi(16 GiB)。 - GPU_NUMBER:值
1(一)。如果未指定,但有 GPU_TYPE,則預設為1。 - GPU_TYPE:GPU 類型。NVIDIA RTX PRO 6000 Blackwell GPU,請輸入
nvidia-rtx-pro-6000。如果是 L4 GPU,請輸入值nvidia-l4(nvidia-L4,小寫 L,而非數字 14)。 - MAX_INSTANCE:執行個體數量上限。這個數字不得超過專案分配到的 GPU 配額。
- GPU_ZONAL_REDUNDANCY:
no-gpu-zonal-redundancy表示關閉可用區備援,gpu-zonal-redundancy則表示開啟可用區備援。
YAML
如果您要建立新服務,請略過這個步驟。如要更新現有服務,請下載其 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 數量。如要使用 NVIDIA RTX PRO 6000 Blackwell GPU,至少須指定
20個 CPU。如果是 L4 GPU,則必須指定至少4個 CPU。 - MEMORY:記憶體容量。如果是 NVIDIA RTX PRO 6000 Blackwell GPU,則必須指定至少
80Gi(80 GiB)。如果是 L4 GPU,則必須指定至少16Gi(16 GiB)。 - GPU_TYPE:GPU 類型。NVIDIA RTX PRO 6000 Blackwell GPU,請輸入
nvidia-rtx-pro-6000。如果是 L4 GPU,請輸入值nvidia-l4(nvidia-L4,小寫 L,而非數字 14)。 - MAX_INSTANCE:執行個體數量上限。這個數字不得超過專案分配到的 GPU 配額。
- GPU_ZONAL_REDUNDANCY:
false可啟用 GPU 可用區備援,true則可停用。
使用下列指令建立或更新服務:
gcloud run services replace service.yaml
gcloud run services replace指令預設會使用service.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"
}
}
}
更改下列內容:
- 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 數量。如要使用 NVIDIA RTX PRO 6000 Blackwell GPU,必須指定至少
20個 CPU。如果是 L4 GPU,則必須指定至少4個 CPU。 - MEMORY:記憶體容量。如果是 NVIDIA RTX PRO 6000 Blackwell GPU,則必須指定至少
80Gi(80 GiB)。如果是 L4 GPU,則必須指定至少16Gi(16 GiB)。 - GPU_TYPE:GPU 類型。如為 NVIDIA RTX PRO 6000 Blackwell GPU,請輸入
nvidia-rtx-pro-6000。如果是 L4 GPU,請輸入值nvidia-l4(nvidia-L4,小寫 L,而非數字 14)。
查看 GPU 設定
如要查看 Cloud Run 服務目前的 GPU 設定,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run「Services」(服務) 頁面:
按一下您感興趣的服務,開啟「Service details」(服務詳細資料) 頁面。
按一下「容器」分頁標籤查看設定。
gcloud
使用下列指令:
gcloud run services describe SERVICE
在傳回的設定中找出 GPU 設定。
移除 GPU
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 YAML 移除 GPU。
控制台
前往 Google Cloud 控制台的「Cloud Run」頁面:
從 Cloud Run 導覽選單中選取「Services」(服務):
如要設定新服務,請按一下「Deploy container」(部署容器),然後填寫初始服務設定頁面。然後按一下「容器、網路、安全性」,展開服務設定頁面。
如要設定現有服務,請按一下該服務。
按一下「容器」分頁標籤。
取消勾選 GPU 核取方塊。
按一下「建立」,建立新服務。依序點選「查看差異並重新部署」和「部署變更」,即可更新現有服務。
gcloud
如要移除 GPU,請使用 gcloud run services update 指令,將 GPU 數量設為 0:
gcloud run services update SERVICE --gpu 0
將 SERVICE 替換為 Cloud Run 服務名稱。
YAML
如果您要建立新服務,請略過這個步驟。如要更新現有服務,請下載其 YAML 設定:
gcloud run services describe SERVICE --format export > service.yaml
刪除
nvidia.com/gpu:和nodeSelector: run.googleapis.com/accelerator: GPU_TYPE行。使用下列指令建立或更新服務:
gcloud run services replace service.yaml
gcloud run services replace指令預設會使用service.yaml檔案 (如有)。
驅動程式庫
根據預設,所有 NVIDIA RTX PRO 6000 Blackwell GPU 和 NVIDIA L4 GPU 驅動程式庫都會掛接在 /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。
如要使用 13.0 以上的 CUDA 版本,最簡單的方法是依賴已安裝向前相容套件的新版 NVIDIA 基本映像檔。另一個方法是手動安裝 NVIDIA 向前相容性套件,並將其新增至 LD_LIBRARY_PATH。請參閱 NVIDIA 的相容性矩陣,判斷哪些 CUDA 版本與提供的 NVIDIA 驅動程式版本向前相容。
關於 GPU 和執行個體數量上限
搭載 GPU 的執行個體數量會受到兩種限制:
- 「Maximum instances」(執行個體數量上限) 設定會限制每項服務的執行個體數量。這項設定不得高於每個區域中每項專案的 GPU 配額。
- 每個專案在各區域可用的 GPU 配額。這會限制同一區域中各項服務的執行個體數量。
後續步驟
如需教學課程,請參閱「在 Cloud Run 使用 GPU 執行 AI 推論」。