NVIDIA GPU の使用

このページでは、Knative serving コンテナ インスタンスでの演算能力用に NVIDIA 画像処理装置(GPU)ハードウェア アクセラレータを備えたノードプールを使用して、画像認識や自然言語処理などのディープ ラーニング タスクや、その他のコンピューティング負荷の高いタスクを実行する方法について説明します。

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

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

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

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

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

新しいサービスのデプロイ、既存サービスの更新、またはリビジョンのデプロイを行う場合は、サービスに GPU が使用されるように Google Cloud コンソールか Google Cloud CLI を使用してリソース制限を指定できます。

コンソール

  1. Knative serving に移動
  2. [サービスを作成] をクリックして、[サービスの作成] フォームを表示します。

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

    1. GPU 対応のノードプールを含む GKE クラスタを選択します。
    2. サービスに付ける名前を指定します。
    3. [次へ] をクリックして、次のセクションに進みます。
  4. [サービスの最初のリビジョンの構成] セクションで、次の操作を行います。

    画像

    1. コンテナ イメージの URL を追加します。
    2. [詳細設定] をクリックし、[割り当てられる GPU] メニューで、サービスに割り当てる GPU の数を選択します。画像
  5. [次へ] をクリックして、次のセクションに進みます。

  6. [このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。

  7. [作成] をクリックしてイメージを Knative serving にデプロイし、デプロイの完了を待ちます。

コマンドライン

--format=export フラグを使用して、gcloud run services describe コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud run services replace コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。

  1. ローカル ワークスペースの service.yaml という名前のファイルにサービスの構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml

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

  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 run services replace service.yaml

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