このページでは、AI / ML ワークロードの要件に基づいて、GPU や TPU などのコンピューティング アクセラレータを取得するために使用できる手法について説明します。これらの手法は、GKE では「アクセラレータ使用オプション」と呼ばれます。さまざまな使用オプションを理解することで、リソース使用率を最適化してリソースの過小使用を回避し、リソースを取得する可能性を高め、費用とパフォーマンスのバランスを取ることができます。
このページは、ML エンジニアと連携して AI / ML ワークロードのデプロイに必要なリソースを取得するプラットフォーム管理者とオペレーターを対象としています。
Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーのロールとタスクをご覧ください。
使用オプションについて
GKE でアクセラレータを使用するには、次のオプションから選択できます。
- オンデマンド: 事前に容量を調整することなく、GKE で TPU または GPU を使用します。リソースをリクエストする前に、特定のタイプと数量のアクセラレータに対して十分なオンデマンド割り当てが必要です。オンデマンドは最も柔軟な使用オプションですが、リクエストを満たすのに十分なオンデマンド リソースが利用できる保証はありません。
- 予約: 一定期間リソースを予約します。予約は次のいずれかになります。
- 将来の予約: 通常、将来の特定の期間にリソースを長期間予約します。この期間中、予約したリソースに排他的にアクセスできます。将来の予約には、テクニカル アカウント マネージャー(TAM)との連携が必要です。詳細については、TPU と GPU のガイダンスをご覧ください。
- 最大 90 日間の将来の予約(カレンダー モード): 指定した期間の容量をリクエストします。カレンダー アドバイザーが利用可能な日付を提案します。最大 90 日間の将来の予約(カレンダー モード)では、短期間の柔軟性が向上し、セルフサービスでの容量検索が可能になります。詳細については、カレンダー モードでの将来の予約リクエストをご覧ください。
- オンデマンド予約: オンデマンド オプションと同様に、容量が利用可能になるとすぐにプロビジョニングされるオンデマンド予約をリクエストできます。予約が有効な間は、リソースを使用するかどうかに関係なく料金が発生します。
- Flex Start: 予約なしで、短期間のワークロード用に割り当てられたリソースを確保します。特定の数の GPU または TPU をリクエストすると、容量が使用可能になったときに Compute Engine がそれらをプロビジョニングします。GPU または TPU は最大 7 日間中断なく実行されます。詳細については、Flex Start プロビジョニングをご覧ください。
- Spot: Spot VM をプロビジョニングすると、大幅な割引が適用されます。ただし、Spot VM はいつでもプリエンプトされる可能性があります(30 秒前に警告が表示されます)。詳細については、 Spot VM をご覧ください。
コンピューティング リソースの制約下でプロビジョニングの成功を最適化するには、ComputeClasses を使用してこれらのオプションを調整します。
GKE のアクセラレータ割り当てについて
割り当てとシステム上限により、すべての Google Cloud ユーザーのリソースの可用性を維持するため、 Google Cloud リソースの使用が制限されます。割り当てにはデフォルト値がありますが、通常は調整をリクエストできます。システムの上限は固定値で、変更できません。デフォルトでは、プロジェクトに大きなアクセラレータ割り当ては設定されていません。特定のアクセラレータ タイプとリージョンの割り当てをリクエストして承認を受ける必要があります。
ワークロードに必要な割り当てを管理する際は、次の特性を考慮してください。
使用オプションごとに必要な割り当てをリクエストする必要があります。各使用オプションに必要な割り当てを確認するには、使用オプションを選択するの表で対応する「割り当て」パラメータをご覧ください。割り当てが不足している場合、クラスタ、ノードプール、またはアクセラレータを必要とするワークロードのデプロイを作成しようとすると、
Quota exceededエラーで失敗します。Autopilot で カスタム ComputeClass を使用する場合は、割り当てをリクエストする必要があります。ComputeClass の要件を満たすようにプロビジョニングされたノードは、指定されたアクセラレータのプロジェクトの割り当てを引き続き消費します。
Google Cloud 無料トライアル アカウントでは、GPU や TPU などの高価値リソースの割り当て増加をリクエストする際に制限があります。アクセラレータの割り当てにアクセスするには、有料アカウントにアップグレードします。
割り当てを確認してリクエストするには、 Google Cloud コンソールの [割り当てページ] に移動します。アクセラレータの割り当てをフィルタして、増加をリクエストできます。
使用オプションを特定する
次の考慮事項を参考にして、AI/ML ワークロードに最適な使用オプションを選択してください。
- ワークロード タイプ: 実装するワークロードのタイプを検討します。トレーニング ワークロードと推論ワークロードのどちらを実行しているかによって、GKE の要件は異なります。
- トレーニング: 大量のメモリを備えたハイ パフォーマンス リソースが必要です。通常、トレーニング ワークロードには明確に定義されたライフサイクルがあります。これらのワークロードは、リソース消費量の急激な増加が発生しにくいため、計画を立てやすい傾向があります。
- 推論: 通常、スケーラビリティと低コストに最適化されたアクセラレータが必要です。推論ワークロードでは、リソース消費量が急増したときに、大量のアクセラレータ メモリが必要になることがあります。
- 実装フェーズに基づく存続期間: 概念実証(POC)、プラットフォーム評価、アプリケーション開発またはテスト、本番環境への移行、最適化を実行する場合は、ビジネス目標を考慮してください。
- プロビジョニング時間: ワークロードで即時実行が必要かどうか、または将来実行できるかどうかを判断します。将来の実行が可能であれば、開始時刻の柔軟性を判断します。
- 費用とパフォーマンスのバランスを取る: ワークロードのパフォーマンス要件と予算の制約を評価して、最も費用対効果の高いアクセラレータを選択します。アクセラレータの費用とパフォーマンス特性のトレードオフを考慮します。新しいアクセラレータでは、費用対効果が向上する可能性があります。
使用オプションを選択する
次の表を参考にして、使用オプションを選択してください。
| 使用オプション | プロビジョニング パラメータ | サポートされているアクセラレータ | 詳細 | サンプルのワークロード |
|---|---|---|---|---|
| オンデマンド予約 |
|
|
|
|
| 将来の予約 |
|
|
|
|
| 最大 90 日間の将来の予約(カレンダー モード) |
|
|
|
|
| Flex Start プロビジョニング モード |
|
|
|
|
| Spot VM |
|
|
|
|
| オンデマンド(GPU または TPU) |
|
|
|
ComputeClass を使用して費用とワークロードのプロビジョニングを最適化する
ComputeClasses を使用すると、優先度ベースのフォールバック構成のリストを定義して、アクセラレータ使用戦略を動的に管理 および自動化できます。スケールアップ オペレーション中、GKE は設定した優先度の階層に従ってノードをプロビジョニングしようとします。
次のリストでは、ComputeClass で使用できる使用オプションとその構成方法について説明します。完全な YAML マニフェストについては、 ComputeClass を使用した使用オプションの例をご覧ください。
- 予約: ComputeClass の
reservationsフィールドで予約名を定義できます。これにより、GKE はフォールバックする前に、予約済みの容量を使用しようとします。 - Flex Start プロビジョニング モード: ComputeClass の
flexStartフィールドを使用して Flex キューを有効にし、フォールバック ノード の交換期間をnodeRecyclingフィールドを使用して構成します。 - Spot VM:
spotフィールドをtrueに設定して、その優先度ルールのノードをプロビジョニングするときに Spot VM を使用するように GKE に指示します。 - オンデマンド容量とマルチゾーン ロケーション ポリシーの組み合わせ:
優先度リストで標準マシン構成を宣言し、
を使用してフォールバック ロケーション戦略を構成します。
locationフィールド。
ComputeClass は、将来の予約 と 最大 90 日間の将来の予約(カレンダー モード)をサポートしていません。
ComputeClass を使用した使用オプションの例
以降のセクションでは、これらの戦略の構成例を示します。
フォールバック構成を使用した予約
この構成は、中断を許容できる ワークロードではなく、永続データに依存する ワークロードや、完了まで実行する必要があるワークロードに最適です。
この構成では、次の手順で復元力のあるフォールバック戦略を確立します。
- 予約を最初に使用する: GKE は、事前に購入した特定の容量予約を使用してノードをプロビジョニングしようとします。
- Flex Start にフォールバックする: 予約容量が完全に使用されている場合、GKE は短期間の割引 Flex Start リソースにフォールバックします。
- オンデマンドにフォールバックする: 最終的なフォールバックとして、GKE は標準のオンデマンド リソースをプロビジョニングします。
予約に戻す: アクティブな移行を有効にすると、容量が利用可能になるとすぐに、ワークロードを優先度の高い予約ノードに自動的に統合して移行するように GKE に指示します。 この移行は中断を伴う可能性があります。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: ha-gpu-fallback spec: activeMigration: optimizeRulePriority: true # Migrate workloads back to reservation when capacity releases priorities: # Priority 1: Consume specific corporate reservation first - gpu: type: nvidia-l4 count: 1 reservations: affinity: Specific specific: - name: reserved-l4-pool project: my-project zones: [us-central1-a] # Priority 2: Fallback to Flex Start (short-duration allocation) - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true # Priority 3: Fallback to On-demand resources - gpu: type: nvidia-l4 count: 1
ノードのリサイクル構成を使用した Flex Start プロビジョニング モード
この構成では、次の手順で、継続的なアップタイムで短期間の割引容量を管理します。
- Flex Start VM をリクエストする: GKE は、Flex Start キューから VM インスタンスをリクエストします(最大 7 日間中断なく実行されます)。
- リース期限のモニタリング: GKE は、アクティブな Flex Start ノードの残りの期間を追跡します。
- ノードのリサイクルをトリガーする: VM リースが期限切れになる 20 分前(1, 200 秒前)に、GKE は自動的に置換ノードをプロビジョニングします。
ワークロードを再スケジュールする: ワークロードは新しいノードに移行し、サービスを中断することなく実行を再開します。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: flex-node-recycling spec: priorities: - gpu: type: nvidia-l4 count: 1 flexStart: enabled: true nodeRecycling: leadTimeSeconds: 1200 # Automatically launch replacement node before VM lease expires
マルチゾーン割り当てポリシーの構成
この構成では、次の手順で単一ゾーンの供給制限を回避します。
- ターゲット ゾーンを定義する: 優先度ルールに複数のバックアップ ゾーン(
us-central1-a、us-central1-b、us-central1-cなど)を一覧表示します。 - ターゲット パラメータを広げる: ロケーション ポリシーを
ANYに設定します。この設定は、クラスタ オートスケーラーに対し、指定されたすべてのゾーンでリクエストされた容量を検索するように指示します。 - ゾーンの可用性を分析する: スケールアップ イベント中に、GKE は指定されたゾーンをスキャンします。
使用可能なゾーンでプロビジョニングする: GKE は、一致する容量を持つターゲット ゾーンに、リクエストされたワークロード ノードを直ちにプロビジョニングします。この戦略により、割り当てキューのブロックを防ぐことができます。
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: broad-zonal-serving spec: priorities: - gpu: type: nvidia-l4 count: 1 location: zones: [us-central1-a, us-central1-b, us-central1-c] locationPolicy: ANY # Provision accelerator in any target zone with supply
次のステップ
- GKE 上の GPU の詳細を確認する。
- GKE の TPU の詳細を確認する。
- GKE での AI / ML 推論の詳細を確認する。