このドキュメントでは、GPU VM を使用するマネージド インスタンス グループ(MIG)を作成する方法について説明します。サイズ変更リクエストを使用してグループに GPU VM を一度にすべて追加する方法について説明します。
サイズ変更リクエストを使用すると、MIG 内の GPU VM の入手可能性が向上します。リクエストでは、GPU VM の数と、それらの VM を実行する期間を指定します。基盤となるスケジューラ メカニズムである Dynamic Workload Scheduler(DWS)は、リクエストされた期間とリソースの可用性に基づいて、作成されたサイズ変更リクエストを Compute Engine 全体でスケジューリングします。リソースが使用可能になると、MIG は自動的に VM を作成します。
これらの VM で実行されているジョブがリクエストされた期間の終了時点に到達するよりする前に終了した場合は、それらの VM を削除できます。それ以外の場合、MIG は期間の終了時に VM を自動的に削除します。
MIG を作成するための基本的なシナリオもご覧ください。
始める前に
- リクエストするリソースに十分な GPU 割り当てがあることを確認するには、GPU 割り当てを確認します。
- 割り当ての使用量については、GPU VM とプリエンプティブルの数量に基づく割り当てをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境でコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
インスタンス テンプレートを作成します。これは MIG の作成に必要です。MIG は、インスタンス テンプレートに基づいてグループに各 VM を作成します。テンプレートで、GPU VM の構成と、サイズ変更リクエストを使用するために必要な追加の構成を指定します。
インスタンス テンプレートの詳細については、インスタンス テンプレートについてをご覧ください。
MIG とサイズ変更リクエストを作成して、GPU VM を一度にすべて追加します。
[インスタンス テンプレート] ページに移動します。
[インスタンス テンプレートを作成] をクリックします。
[名前] フィールドに、インスタンス テンプレートの名前を入力します。
[マシンの構成] セクションで、次の操作を行います。
- [GPU] タブをクリックします。
- [GPU のタイプ] リストで、GPU のタイプを選択します。
- [GPU の数] リストで、GPU の数を選択します。
- [マシンタイプ] リストで、マシンタイプを選択します。
省略可: デフォルト値のブートディスクのタイプまたはイメージを変更するには、[ブートディスク] セクションで [変更] をクリックします。プロンプトに沿ってブートディスクを変更します。
[詳細オプション] セクションを開き、次の操作を行います。
- [管理] セクションを開きます。
- [予約] リストで、[使用しない] を選択します。
[作成] をクリックします。
INSTANCE_TEMPLATE_NAME
: インスタンス テンプレートの名前。MACHINE_TYPE
: GPU をサポートするマシンタイプ。N1 マシンタイプを指定する場合は、--accelerator
フラグを設定して、VM にアタッチする GPU の数とタイプを指定します。PROJECT_ID
: MIG を作成するプロジェクトの ID。INSTANCE_TEMPLATE_NAME
: インスタンス テンプレートの名前。MACHINE_TYPE
: GPU をサポートするマシンタイプ。N1 マシンタイプを指定する場合は、guestAccelerators
フィールドを配置して、VM にアタッチする GPU の数とタイプを指定します。[インスタンス グループ] ページに移動します。
[インスタンス グループを作成] をクリックします。
次のフィールドを入力します。
- 名前: グループの名前を入力します。
- インスタンス テンプレート: 前のセクションで構成したインスタンス テンプレートを選択します。
- [ロケーション] セクションで次の操作を行います。
- [シングルゾーン] を選択します。
- [リージョン] リストと [ゾーン] リストで、グループを作成するロケーションを選択します。
次の手順で自動スケーリング構成を削除して修復を無効にすると、[インスタンス数] フィールドが編集可能になります。
自動スケーリングの構成を削除します。
- [自動スケーリング] セクションで、[自動スケーリング モード] リストをクリックし、[自動スケーリングの構成を削除] をクリックします。
- [自動スケーリング構成を削除しますか?] ダイアログで、[削除] をクリックします。
MIG で修復をオフにします。
[VM インスタンスのライフサイクル] セクションで、[障害発生時のデフォルトのアクション] フィールドを [アクションなし] に設定します。
サイズ変更リクエストを作成するため GPU VM の数と実行期間を指定します。
[インスタンス数] フィールドに、一度に作成する GPU VM の数を入力します。
[Use resize request to create VMs all at once] チェックボックスをオンにします。実行期間を入力するフィールドが表示されます。
[リクエストされた実行時間] フィールドと [単位] リストを使用して、GPU VM の実行期間を指定します。期間は 1 時間から 7 日の範囲で指定してください。
[作成] をクリックします。
instance-groups managed create
コマンドを使用して、ゾーン MIG を作成します。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE_NAME \ --size=0 \ --zone=ZONE \ --default-action-on-vm-failure=do_nothing
MIG で、
instance-groups managed resize-requests create
コマンドを使用してサイズ変更リクエストを作成します。必要な GPU VM の数と、それらの VM を実行する期間を指定します。gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --requested-run-duration=RUN_DURATION\ --zone=ZONE
INSTANCE_GROUP_NAME
: MIG の名前。INSTANCE_TEMPLATE_NAME
: GPU VM のインスタンス テンプレートの名前。ZONE
: Compute Engine で使用できるゾーンのいずれか。RESIZE_REQUEST_NAME
: サイズ変更リクエストの名前。COUNT
: グループに一度にすべて追加する VM の数。RUN_DURATION
: リクエストされた VM を実行する期間。値は、日数、時間、分、秒として指定し、その後にそれぞれd
、h
、m
、s
を配置する必要があります。たとえば、30 分の場合は30m
を指定し、1 日と 2 時間 3 分 4 秒の場合は1d2h3m4s
を指定します。値は 10 分~7 日の範囲で指定してください。instanceGroupManagers.insert
メソッドにPOST
リクエストを送信して、ゾーン MIG を作成します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
MIG で、
instanceGroupManagerResizeRequests.insert
メソッドにPOST
リクエストを送信してサイズ変更リクエストを作成します。リクエストの本文で、一度にすべて作成する GPU VM の数と、それらの VM を実行する期間を指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests { "name": "RESIZE_REQUEST_NAME", "resizeBy": COUNT, "requestedRunDuration": { "seconds": "RUN_DURATION" } }
PROJECT_ID
: MIG を作成するプロジェクトの ID。INSTANCE_GROUP_NAME
: MIG の名前。INSTANCE_TEMPLATE_NAME
: GPU VM のインスタンス テンプレートの名前。ZONE
: Compute Engine で使用できるゾーンのいずれか。RESIZE_REQUEST_NAME
: サイズ変更リクエストの名前。COUNT
: グループに一度にすべて追加する VM の数。RUN_DURATION
: リクエストされた VM が MIG によって自動的に削除されるまでの実行期間(秒単位)。値は600
(600 秒、10 分)から604800
(604,800 秒、7 日間)の範囲で指定する必要があります。MIG でのサイズ変更リクエストの仕組みを確認する。
MIG でサイズ変更リクエストを表示、キャンセル、削除する方法を確認する。
MIG とマネージド VM に関する情報を表示する方法を確認する。
- VM と GPU の実際の使用量と予測される使用量を表示する方法を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
MIG でサイズ変更リクエストを作成する際の制限事項を確認します。
MIG を作成して GPU VM を一度にすべて追加する
MIG を作成して、グループ内に GPU VM を一度にすべて追加するには、次の操作を行います。
インスタンス テンプレートの作成
このセクションの説明に従ってインスタンス テンプレートを作成し、作成したテンプレートを使用して MIG を作成します。
コンソール
gcloud
instance-templates create
コマンドを使用して、インスタンス テンプレートを作成します。次のコマンドは、Deep Learning VM Image に基づいてグローバル インスタンス テンプレートを作成します。
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=MACHINE_TYPE \ --image-project=deeplearning-platform-release \ --image-family=common-cu121 \ --maintenance-policy=TERMINATE \ --reservation-affinity=none
次のように置き換えます。
REST
instanceTemplates.insert
メソッドにPOST
リクエストを送信してインスタンス テンプレートを作成します。次のリクエストでは、Deep Learning VM Image に基づいてグローバル インスタンス テンプレートを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "mode": "READ_WRITE", "type": "PERSISTENT", "initializeParams": { "sourceImage": "projects/deeplearning-platform-release/global/images/family/common-cu121" } } ], "networkInterfaces": [ { "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ], "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "scheduling": { "onHostMaintenance": "TERMINATE" } } }
次のように置き換えます。
MIG を作成して GPU VM を一度にすべて追加する
このセクションの説明に従って MIG を作成します。MIG でサイズ変更リクエストを使用するには、自動スケーリングを構成せず、修復をオフにする必要があります。
コンソール
gcloud
次のように置き換えます。
REST
次のように置き換えます。
作成するサイズ変更リクエストは、MIG がリクエストされたすべての GPU VM を作成するまで
ACCEPTED
状態で保持されます。グループ内にすべての GPU VM が作成されると、リクエストの状態がSUCCEEDED
に変わります。次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-