GPU(サービス)

このページでは、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 を使用する場合に適用される要件と制限事項を示します。

必要なロール

Cloud Run サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

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 を構成できます。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  2. [コンテナをデプロイ] をクリックし、[サービス] を選択して、新しいサービスを構成します。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。

  4. [コンテナ] タブをクリックします。

    画像

    • 始める前にの推奨事項に従って、CPU、メモリ、同時実行、実行環境、起動プローブを構成します。
    • [GPU] チェックボックスをオンにして、[GPU のタイプ] メニューから GPU タイプを選択し、[GPU の数] メニューから GPU の数を選択します。
  5. [作成] または [デプロイ] をクリックします。

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 を使用する必要があります。nvidia L4 の L は小文字、数値 14 ではありません。
  • MAX_INSTANCE: インスタンスの最大数。この数は、プロジェクトに割り当てられた GPU 割り当てを超えることはできません。

YAML

  1. 新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. 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-L4 の L は小文字で、数値の 14 ではありません。
    • MAX_INSTANCE: インスタンスの最大数。この数は、プロジェクトに割り当てられた GPU 割り当てを超えることはできません。
  3. 次のコマンドを使用して、サービスを作成または更新します。

    gcloud run services replace service.yaml

GPU の設定を表示する

Cloud Run サービスの現在のコンテナ設定を表示するには:

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  2. 目的のサービスをクリックして、[サービスの詳細] ページを開きます。

  3. [リビジョン] タブをクリックします。

  4. 右側の詳細パネルの [コンテナ] タブに、GPU の設定が表示されます。

gcloud

  1. 次のコマンドを使用します。

    gcloud run services describe SERVICE
  2. 返された構成で、GPU の設定を見つけます。

GPU の削除

GPU は、Google Cloud コンソール、Google Cloud CLI、または YAML を使用して削除できます。

コンソール

  1. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  2. [コンテナをデプロイ] をクリックし、[サービス] を選択して、新しいサービスを構成します。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. 新しいサービスを構成する場合は、最初のサービス設定のページに入力してから、[コンテナ、ボリューム、ネットワーキング、セキュリティ] をクリックしてサービス構成ページを開きます。

  4. [コンテナ] タブをクリックします。

    画像

    • GPU のチェックボックスをオフにします。
  5. [作成] または [デプロイ] をクリックします。

gcloud

GPU を削除するには、gcloud beta run services update コマンドを使用して GPU の数を 0 に設定します。

  gcloud beta run services update SERVICE --gpu 0
  

SERVICE は、Cloud Run サービスの名前に置き換えます。

YAML

  1. 新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. nvidia.com/gpu: 行と nodeSelector: run.googleapis.com/accelerator: nvidia-l4 行を削除します。

  3. 次のコマンドを使用して、サービスを作成または更新します。

    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 つの方法で制限できます。