

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon SageMaker HyperPod 태스크 거버넌스에서 컴퓨팅 할당량 할당
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

클러스터 관리자는 조직이 구매한 컴퓨팅을 사용하는 방법을 결정할 수 있습니다. 이렇게 하면 낭비되는 리소스와 유휴 리소스가 줄어듭니다. 팀이 미사용 리소스를 서로 차입할 수 있도록 컴퓨팅 할당량을 할당할 수 있습니다. HyperPod 태스크 거버넌스의 컴퓨팅 할당량 할당을 사용하면 관리자가 인스턴스 수준과 보다 세분화된 리소스 수준에서 리소스를 할당할 수 있습니다. 이 기능은 전체 인스턴스 할당을 요구하는 대신 개별 컴퓨팅 리소스를 세밀하게 제어할 수 있도록 하여 팀이 유연하고 효율적으로 리소스를 관리할 수 있게 합니다. 세분화된 수준에서 할당하면 과거 인스턴스 수준 할당의 비효율성이 제거됩니다. 이 접근 방식을 통해 리소스 사용률을 최적화하고 유휴 컴퓨팅을 줄일 수 있습니다.

컴퓨팅 할당량 할당은 액셀러레이터, vCPU 및 메모리라는 세 가지 유형의 리소스 할당을 지원합니다. 액셀러레이터는 부동 소수점 수 계산, 그래픽 처리 또는 데이터 패턴 매칭과 같은 기능을 수행하는 가속 컴퓨팅 인스턴스의 구성 요소입니다. 액셀러레이터에는 GPU, Trainium 액셀러레이터 및 Neuron Core가 포함됩니다. 다중 팀 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. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)에서 Amazon SageMaker AI 콘솔을 엽니다.

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 파티션 사용](sagemaker-hyperpod-eks-gpu-partitioning.md). 팀에 특정 GPU 파티션을 할당하여 여러 팀이 하드웨어 수준의 격리와 예측 가능한 성능을 유지하면서 단일 GPU를 공유할 수 있습니다.

예를 들어 H100 GPUs가 8개인 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
```