

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SageMaker HyperPod タスクガバナンスでのコンピューティングクォータの割り当て
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

クラスター管理者は、購入したコンピューティングリソースを組織がどのように使用するかを決定できます。これにより、無駄なリソースやアイドル状態のリソースを削減できます。コンピューティングクォータを割り当てて、チームが未使用のリソースを相互に借りられるようにすることができます。HyperPod タスクガバナンスのコンピューティングクォータ割り当てにより、管理者はインスタンスレベル、さらにはよりきめ細かいリソースレベルでリソースを割り当てることができます。この機能により、インスタンス全体を割り当てるのではなく、個々のコンピューティングリソースをきめ細かく制御できるため、柔軟かつ効率的なリソース管理をチームに提供できます。きめ細かいレベルでの割り当てにより、従来のインスタンスレベルの割り当てに伴う非効率性が解消されます。このアプローチにより、リソース使用率を最適化し、アイドル状態のコンピューティングリソースを低減できます。

コンピューティングクォータ割り当てでは、アクセラレータ、vCPU、メモリの 3 種類のリソース割り当てをサポートしています。アクセラレータは、高速コンピューティングインスタンス内のコンポーネントであり、浮動小数点数計算、グラフィック処理、データパターンマッチングなどの機能を実行します。アクセラレータには、GPU、Trainium アクセラレータ、ニューロンコアなどがあります。マルチチーム GPU 共有の場合、異なるチームが同じインスタンスタイプから特定のGPU割り当てを受け取ることができ、アクセラレータハードウェアの使用率を最大化できます。データの前処理やモデルのキャッシュシナリオのために追加の RAM を必要とするメモリ集約型のワークロードの場合、デフォルトの GPU 対メモリ比率を超えてメモリクォータを割り当てることができます。GPU トレーニング以外にも、大量の CPU リソースを必要とする、CPU 負荷の高い前処理タスクでは、独立した CPU リソース割り当てを割り当てることができます。

値を指定すると、HyperPod タスクガバナンスは、**割り当てられたリソースをインスタンスで利用可能なリソースの総量で割った**式を使用して比率を計算します。HyperPod タスクガバナンスはこの比率を使用して、他のリソースにデフォルトの割り当てを適用しますが、これらのデフォルトをオーバーライドして、ユースケースに基づいてカスタマイズすることもできます。以下は、HyperPod タスクガバナンスが値に基づいてリソースを割り当てる方法のサンプルシナリオです。
+ **アクセラレータのみを指定** - HyperPod タスクガバナンスは、アクセラレータの値に基づいて、vCPU とメモリにデフォルトの比率を適用します。
+ **vCPU のみを指定** - HyperPod タスクガバナンスは比率を計算し、それをメモリに適用します。アクセラレータは 0 に設定されます。
+ **メモリのみを指定** - メモリ指定のワークロードを実行するにはコンピューティングリソースが必要であるため、HyperPod タスクガバナンスは比率を計算し、それを vCPU に適用します。アクセラレータは 0 に設定されます。

クォータ割り当てをプログラムで制御するには、[ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html) オブジェクトを使用し、割り当てを整数で指定します。

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

デフォルトを含む、割り当てられたすべての割り当てを確認するには、[ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) オペレーションを使用します。割り当てを更新するには、[UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html) オペレーションを使用します。

HyperPod CLI を使用してコンピューティングクォータを割り当てることもできます。HyperPod CLI の詳細については、「[Amazon EKS によってオーケストレーションされた SageMaker HyperPod クラスターでジョブを実行する](sagemaker-hyperpod-eks-run-jobs.md)」を参照してください。次の例は、HyperPod CLI を使用してコンピューティングクォータを設定する方法を説明しています。

```
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \
--image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
--pull-policy "Always" \
--tasks-per-node 1 \
--max-retry 1 \
--priority high-priority \
--namespace hyperpod-ns-team-name \
--queue-name hyperpod-ns-team-name-localqueue \
--instance-type sample-instance-type \
--accelerators 1 \
--vcpu 3 \
--memory 1 \
--accelerators-limit 1 \
--vcpu-limit 4 \
--memory-limit 2
```

 AWS コンソールを使用してクォータを割り当てるには、次の手順に従います。

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. [HyperPod クラスター] で、**[クラスターの管理]** をクリックします。

1. **[コンピューティング割り当て]** で、**[作成]** をクリックします。

1. まだインスタンスがない場合は、**[割り当てを追加]** をクリックしてインスタンスを追加します。

1. **[割り当て]** で、インスタンスまたは個々のリソースごとの割り当てを選択します。個々のリソースで割り当てると、SageMaker AI は選択した比率に基づいて他のリソースに自動的に割り当てを行います。この比率に基づく割り当てを上書きするには、対応するトグルを使用してそのコンピューティングを上書きします。

1. ステップ 4 と 5 を繰り返して、追加のインスタンスを設定します。

コンピューティングクォータを割り当てたら、HyperPod CLI または `kubectl` を使用してジョブを送信できます。HyperPod は、利用可能なクォータに基づいてワークロードを効率的にスケジュールします。

# GPU パーティションクォータの割り当て
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

コンピューティングクォータの割り当てを拡張して GPU パーティショニングをサポートすることで、GPU パーティションレベルできめ細かなリソース共有が可能になります。クラスター内のサポートされている GPUs で GPU パーティショニングを有効にすると、各物理 GPU を、定義されたコンピューティング、メモリ、ストリーミングマルチプロセッサ割り当てを持つ複数の独立した GPUs にパーティショニングできます。GPU パーティショニングの詳細については、「」を参照してください[Amazon SageMaker HyperPod での GPU パーティションの使用 HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)。特定の GPU パーティションをチームに割り当てることで、ハードウェアレベルの分離と予測可能なパフォーマンスを維持しながら、複数のチームが 1 つの GPU を共有できます。

例えば、8 つの H100 GPUs を持つ ml.p5.48xlarge インスタンスは GPU パーティションに分割でき、タスク要件に基づいて個々のパーティションを異なるチームに割り当てることができます。GPU パーティション割り当てを指定すると、HyperPod タスクガバナンスは GPU レベルの割り当てと同様に、GPU パーティションに基づいて比例 vCPU クォータとメモリクォータを計算します。このアプローチは、アイドル容量を排除し、同じ物理 GPU 上の複数の同時タスク間で費用対効果の高いリソース共有を可能にすることで、GPU 使用率を最大化します。

## コンピューティングクォータの作成
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-creating"></a>

```
aws sagemaker create-compute-quota \
  --name "fractional-gpu-quota" \
  --compute-quota-config '{
    "ComputeQuotaResources": [
      {
        "InstanceType": "ml.p4d.24xlarge",
        "AcceleratorPartition": {
            "Count": 4,
            "Type": "mig-1g.5gb"
        }
      }
    ],
    "ResourceSharingConfig": { 
      "Strategy": "LendAndBorrow", 
      "BorrowLimit": 100 
    }
  }'
```

## クォータリソースの検証
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-verifying"></a>

```
# Check ClusterQueue
kubectl get clusterqueues
kubectl describe clusterqueue QUEUE_NAME

# Check ResourceFlavors
kubectl get resourceflavor
kubectl describe resourceflavor FLAVOR_NAME
```