このページでは、Knative serving コンテナ インスタンスでの演算能力用に NVIDIA 画像処理装置(GPU)ハードウェア アクセラレータを備えたノードプールを使用して、画像認識や自然言語処理などのディープ ラーニング タスクなど、コンピューティング負荷の高いタスクを実行する方法について説明します。
GPU 対応のノードプールを GKE クラスタに追加する
GPU 対応のノードプールの作成を管理者に依頼します。
GPU を使用するようにサービスを設定する
新しいサービスのデプロイ、既存サービスの更新、またはリビジョンのデプロイを行う場合は、サービスに GPU が使用されるように Google Cloud コンソールか Google Cloud CLI を使用してリソースの上限を指定できます。
コンソール
- Knative serving に移動
[サービスを作成] をクリックして、[サービスの作成] フォームを表示します。
[サービスの設定] セクションで、次の操作を行います。
- GPU 対応のノードプールを含む GKE クラスタを選択します。
- サービスに付ける名前を指定します。
- [次へ] をクリックして、次のセクションに進みます。
[サービスの最初のリビジョンの構成] セクションで、次の操作を行います。
- コンテナ イメージの URL を追加します。
- [詳細設定] をクリックし、[割り当てられる GPU] メニューで、サービスに割り当てる GPU の数を選択します。
[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Knative serving にデプロイし、デプロイの完了を待ちます。
コマンドライン
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Knative serving サービスの名前に置き換えます。
ローカル ファイルで
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
を指定します。次のコマンドを実行して、YAML ファイルをデプロイし、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml
GPU のパフォーマンスと費用の詳細については、GPU をご覧ください。