このページでは、Cloud Run サービスの GPU 構成について説明します。GPU は、大規模言語モデル(LLM)などの AI 推論ワークロードや、動画のコード変換、3D レンダリングなどのコンピューティング集約型の AI 以外のユースケースに適しています。NVIDIA L4 GPU には、インスタンス メモリとは別に、24 GB の GPU メモリ(VRAM)が割り当てられます。
GPU 機能を使用するには、Cloud Run の登録ページ g.co/cloudrun/gpu で Cloud Run プロジェクトを登録する必要があります。プロジェクトを許可リストに追加するには、リージョン us-central1
のプロジェクトで GPU 以外の Cloud Run サービスを 1 つ以上実行している必要があります。
Cloud Run 上の GPU はフルマネージドです。追加のドライバやライブラリは必要ありません。Cloud Run でオンデマンドの CPU とオンデマンドのメモリが機能する仕組みと同様に、GPU 機能は予約なしでオンデマンドの可用性を提供します。GPU を使用するように構成された Cloud Run サービスのインスタンスは、未使用時にゼロにスケールダウンして、費用を節約できます。
ドライバがプリインストールされ、L4 GPU が割り当てられた Cloud Run インスタンスは約 5 秒で起動します。この時点で、コンテナで実行されているプロセスは GPU の使用を開始できます。
Cloud Run インスタンスごとに 1 つの GPU を構成できます。サイドカー コンテナを使用する場合、GPU は 1 つのコンテナにのみ接続できます。
サポートされているリージョン
us-central1
(アイオワ) 低 CO2
料金への影響
GPU の料金の詳細については、Cloud Run の料金をご覧ください。次の重要な点に注意してください。
- リクエストごとの料金はありませんGPU 機能を使用するには
CPU always allocated
を使用する必要があります。そのため、最小インスタンスはアイドル状態の場合でも全額請求されます。 - 最低でも 4 CPU と 16 GiB のメモリを使用する必要があります。
- GPU は、インスタンスのライフサイクル全体に対して課金されます。
サポートされている GPU タイプ
Cloud Run インスタンスごとに 1 つの L4 GPU を使用できます。L4 GPU には、次のドライバがプリインストールされています。
- 現在の NVIDIA ドライバのバージョン: 535.129.03(CUDA 12.2)
始める前に
次のリストに、Cloud Run で GPU を使用する場合に適用される要件と制限事項を示します。
- GPU 機能を使用するには、Cloud Run の登録ページ g.co/cloudrun/gpu で Cloud Run プロジェクトを登録する必要があります。
- 大規模なモデルを Cloud Run GPU に読み込む場合は、ベスト プラクティス: GPU を使用した Cloud Run での AI 推論もご覧ください。
- Cloud Run サービスに次の構成があることを確認します。
- CPU は [CPU を常に割り当てる] に構成する必要があります。CPU が常に割り当てられるサービスは、ゼロにスケールダウンできます。
- サービスには少なくとも 4 個の CPU を構成します(8 個の CPU を推奨)。
- 少なくとも 16 GiB のメモリを構成します(32 GiB を推奨)。
- GPU 使用率に最適な最大同時実行数を判断して設定します。
- [最大インスタンス数] は、各リージョンのプロジェクトあたりの GPU の割り当ての下限に設定する必要があります。GPU と最大インスタンスについてをご覧ください。
必要なロール
Cloud Run サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run サービスに対する Cloud Run デベロッパー(
roles/run.developer
) -
サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
GPU を使用して Cloud Run サービスを構成する
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
Google Cloud コンソール、Google Cloud CLI、または YAML を使用して GPU を構成できます。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
[コンテナをデプロイ] をクリックし、[サービス] を選択して、新しいサービスを構成します。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- 始める前にの推奨事項に従って、CPU、メモリ、同時実行、実行環境、起動プローブを構成します。
- [GPU] チェックボックスをオンにして、[GPU のタイプ] メニューから GPU タイプを選択し、[GPU の数] メニューから GPU の数を選択します。
[作成] または [デプロイ] をクリックします。
gcloud
サービスの GPU を設定または更新するには、gcloud beta run services update コマンドを使用します。
gcloud beta run deploy SERVICE \ --image IMAGE_URL \ --project PROJECT_ID \ --region REGION \ --port PORT \ --cpu CPU \ --memory MEMORY \ --no-cpu-throttling \ --gpu GPU_NUMBER \ --gpu-type GPU_TYPE \ --max-instances MAX_INSTANCE
次のように置き換えます。
- SERVICE: Cloud Run サービスの名前。
- PROJECT_ID: デプロイ先のプロジェクトの ID。
- REGION: デプロイ先のリージョン。GPU をサポートするリージョンを指定する必要があります。
- PORT: リクエストを送信するポート。デフォルトのポートは
8080
です。 - IMAGE_URL: コンテナ イメージへの参照(
us-docker.pkg.dev/cloudrun/container/hello:latest
など)。Artifact Registry を使用する場合は、リポジトリ REPO_NAME がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。 - CPU: CPU の数。少なくとも
4
個の CPU を指定する必要があります。 - MEMORY: メモリ容量。少なくとも
16Gi
(16 GiB)を指定する必要があります。 - GPU_NUMBER: 値
1
(1)。 - GPU_TYPE: GPU のタイプ。
nvidia-l4
を使用する必要があります。nvidiaL
4 の L は小文字、数値 14 ではありません。 - MAX_INSTANCE: インスタンスの最大数。この数は、プロジェクトに割り当てられた GPU 割り当てを超えることはできません。
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 annotations: run.googleapis.com/launch-stage: BETA spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: 'MAX_INSTANCE' run.googleapis.com/cpu-throttling: 'false' spec: containers: - image: IMAGE_URL ports: - containerPort: CONTAINER_PORT name: http1 resources: limits: cpu: 'CPU' memory: 'MEMORY' nvidia.com/gpu: 'GPU_NUMBER' # 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 がすでに作成されている必要があります。URL の形式はLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
です。 - CONTAINER_PORT: サービスに設定されているコンテナポート。
- CPU: CPU の数。少なくとも
4
個の CPU を指定する必要があります。 - MEMORY: メモリ容量。少なくとも
16Gi
(16 GiB)を指定する必要があります。 - GPU_NUMBER: 値
1
(1)。Cloud Run インスタンスごとに 1 つの GPU の接続のみをサポートしています。 - GPU_TYPE の値は
nvidia-l4
です。nvidia-L
4 の L は小文字で、数値の 14 ではありません。 - MAX_INSTANCE: インスタンスの最大数。この数は、プロジェクトに割り当てられた GPU 割り当てを超えることはできません。
次のコマンドを使用して、サービスを作成または更新します。
gcloud run services replace service.yaml
GPU の設定を表示する
Cloud Run サービスの現在のコンテナ設定を表示するには:
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
目的のサービスをクリックして、[サービスの詳細] ページを開きます。
[リビジョン] タブをクリックします。
右側の詳細パネルの [コンテナ] タブに、GPU の設定が表示されます。
gcloud
次のコマンドを使用します。
gcloud run services describe SERVICE
返された構成で、GPU の設定を見つけます。
GPU の削除
GPU は、Google Cloud コンソール、Google Cloud CLI、または YAML を使用して削除できます。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
[コンテナをデプロイ] をクリックし、[サービス] を選択して、新しいサービスを構成します。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。
[コンテナ] タブをクリックします。
- GPU のチェックボックスをオフにします。
[作成] または [デプロイ] をクリックします。
gcloud
GPU を削除するには、gcloud beta run services update コマンドを使用して GPU の数を 0
に設定します。
gcloud beta 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: nvidia-l4
行を削除します。次のコマンドを使用して、サービスを作成または更新します。
gcloud run services replace service.yaml
ライブラリ
デフォルトでは、すべての NVIDIA L4 ドライバ ライブラリがマウントされます。ドライバのサブセットをマウントする場合は、NVIDIA 環境変数 NVIDIA_DRIVER_CAPABILITIES
を使用できます。
提供されたライブラリをサービスが見つけられない場合は、Dockerfile に ENV LD_LIBRARY_PATH /usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
行を追加して、ダイナミック リンカーの検索パスを更新します。
既存のイメージがあり、更新された Dockerfile でイメージを再ビルドしない場合は、Cloud Run サービスの環境変数として LD_LIBRARY_PATH
を設定することもできます。
GPU と最大インスタンス数について
GPU を使用するインスタンスの数は、次の 2 つの方法で制限できます。
- [最大インスタンス数] の設定では、サービスごとのインスタンス数を制限します。これは、GPU のリージョンごとのプロジェクトあたりの割り当てよりも高く設定することはできません。
- 各リージョンのプロジェクトごとに許可される GPU の割り当て。これにより、同じリージョン内のサービス間のインスタンス数が制限されます。