サービスで GPU を使用する

このページでは、NVIDIA グラフィック プロセッシング ユニット(GPU)ハードウェア アクセラレータを搭載したノードプールを使用して、画像認識、自然言語処理などのディープ ラーニング タスクやコンピューティング負荷の高いタスクを実行し、Cloud Run for Anthos on Google Cloud コンテナ インスタンスによるコンピューティング能力を強化する方法について説明します。

GPU 対応のノードプールを GKE クラスタに追加する

GPU 対応のノードプールの作成を管理者に依頼します。

  1. GKE クラスタに GPU 対応のノードプールを追加します

  2. NVIDIA のデバイス ドライバをノードにインストールします

GPU を使用するようにサービスを設定する

新しいサービスのデプロイ、既存のサービスの更新、またはリビジョンのデプロイを行うときに、Cloud Console、gcloud コマンドライン ツール、または YAML ファイルを使用して、サービスで GPU を使用するようにリソース制限を指定できます。

Console

  1. Cloud Run for Anthos on Google Cloud に移動
  2. [サービスを作成] をクリックして、[サービスの作成] フォームを表示します。

    画像

  3. [サービスの設定] セクションで、次の操作を行います。

    • 開発プラットフォームとして [Cloud Run for Anthos on Google Cloud] を選択します。
    • GPU 対応のノードプールを含む GKE クラスタを選択します。
    • サービスに付ける名前を指定します。
    • サービスの呼び出しに使用する接続を選択します。
    • [次へ] をクリックして、サービス作成フォームの次のページに進みます。
  4. [サービスの最初のリビジョンの構成] セクションで、次の操作を行います。

    画像

    • コンテナ イメージの URL を追加します。
    • [詳細設定を表示] をクリックし、[割り当てられる GPU] プルダウン メニューで、割り当てる GPU の数を選択します。画像
  5. [作成] をクリックしてイメージを Cloud Run for Anthos にデプロイし、デプロイの完了を待ちます。

コマンドライン

  • 既存のサービスの場合、--gpu パラメータを指定して gcloud kuberun core services update コマンドを実行し、GPU の上限設定を更新します。

    gcloud kuberun core services update SERVICE --gpu GPU
    

    次のように置き換えます。

    • SERVICE は、サービスの名前に置き換えます。
    • GPU は、サービスに割り当てる GPU の数に置き換えます。
  • 新しいサービスの場合、--gpu パラメータを指定して gcloud kuberun core services create コマンドを実行し、GPU の上限を設定します。

    gcloud kuberun core services create SERVICE --image=IMAGE_URL --gpu GPU
    

    次のように置き換えます。

    • SERVICE は、サービスの名前に置き換えます。
    • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
    • GPU は、サービスに割り当てる GPU の数に置き換えます。

YAML

YAML ファイルを使用して既存のサービスの構成を変更するには、現在の構成のコピーを取得し、その構成を変更してローカル ファイルに保存してから、これらの変更をサービスにデプロイします。

  1. YAML として表示し、サービスの構成をローカル ファイルにコピーします。例を示します。service.yaml:

    gcloud kuberun core services describe SERVICE --format yaml

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

  2. ローカル ファイルで nvidia.com/gpu 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE_NAME
    spec:
    template:
     spec:
       containers:
       – image: IMAGE_URL
         resources:
           limits:
            nvidia.com/gpu: GPU_UNITS
    

    GPU_UNITS は、Kubernetes GPU ユニットの GPU 値に置き換えます。たとえば、1 GPU の場合は 1 を指定します。

  3. 次のコマンドを実行して、YAML ファイルをデプロイし、サービスを新しい構成に置き換えます。

    gcloud beta run services replace service.yaml

GPU のパフォーマンスと費用の詳細については、GPU をご覧ください。