기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GPU기반를 생성하기 전에 Kubernetes Amazon의 클러스터EKS는의 단계를 완료했어야 합니다자습서: Amazon EKS 기반 AWS Batch 시작하기. 추가적으로 다음 사항도 고려하세요.
-
AWS Batch 는 NVIDIA에서 인스턴스 유형을 지원합니다GPUs.
-
기본적으로는 EKS를 AMI 사용하여 Amazon 가속을 AWS Batch 선택합니다.Kubernetes Amazon EKS 클러스터 컨트롤 플레인 버전과 일치하는 버전입니다.
$
cat <<EOF > ./batch-eks-gpu-ce.json
{
"computeEnvironmentName": "My-Eks-GPU-CE1",
"type": "MANAGED",
"state": "ENABLED",
"eksConfiguration": {
"eksClusterArn": "arn:aws:eks:<region>
:<account>
:cluster/<cluster-name>
",
"kubernetesNamespace": "my-aws-batch-namespace"
},
"computeResources": {
"type": "EC2",
"allocationStrategy": "BEST_FIT_PROGRESSIVE",
"minvCpus": 0,
"maxvCpus": 1024,
"instanceTypes": [
"p3dn.24xlarge",
"p4d.24xlarge"
],
"subnets": [
"<eks-cluster-subnets-with-access-to-internet-for-image-pull>
"
],
"securityGroupIds": [
"<eks-cluster-sg>
"
],
"instanceRole": "<eks-instance-profile>
"
}
}
EOF
$
aws batch create-compute-environment --cli-input-json file://./batch-eks-gpu-ce.json
AWS Batch 는를 관리하지 않습니다.NVIDIA GPU 사용자를 대신하여 디바이스 플러그인. 이 플러그인을 Amazon EKS 클러스터에 설치하고 AWS Batch 노드를 대상으로 지정할 수 있도록 허용해야 합니다. 자세한 내용은에서 GPU 지원 활성화를 참조하세요.Kubernetes
를 구성하려면 NVIDIA 디바이스 플러그인(DaemonSet
)을 사용하여 AWS Batch 노드를 대상으로 지정하고 다음 명령을 실행합니다.
# pull nvidia daemonset spec
$
curl -O https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.12.2/nvidia-device-plugin.yml
# using your favorite editor, add Batch node toleration
# this will allow the DaemonSet to run on Batch nodes
- key: "batch.amazonaws.com/batch-node"
operator: "Exists"
$
kubectl apply -f nvidia-device-plugin.yml
컴퓨팅 환경과 작업 대기열의 동일한 페어링에서 컴퓨팅 기반(CPU 및 메모리) 워크로드를 GPU기반 워크로드와 혼합하지 않는 것이 좋습니다. 이는 컴퓨팅 작업이 GPU 용량을 모두 사용할 수 있기 때문입니다.
작업 대기열을 연결하려면 다음 명령을 실행합니다.
$
cat <<EOF > ./batch-eks-gpu-jq.json
{
"jobQueueName": "My-Eks-GPU-JQ1",
"priority": 10,
"computeEnvironmentOrder": [
{
"order": 1,
"computeEnvironment": "My-Eks-GPU-CE1"
}
]
}
EOF
$
aws batch create-job-queue --cli-input-json file://./batch-eks-gpu-jq.json