6.3. Dynamic Accelerator Slicer Operator를 사용하여 GPU 워크로드 배포
DAS(Dynamic Accelerator Slicer) 운영자가 관리하는 GPU 슬라이스를 요청하는 워크로드를 배포할 수 있습니다. 운영자는 GPU 가속기를 동적으로 분할하고 사용 가능한 GPU 슬라이스에 작업 부하를 예약합니다.
사전 요구 사항
- 클러스터에 MIG 지원 GPU 하드웨어가 있습니다.
-
NVIDIA GPU Operator가 설치되었고
ClusterPolicy가
준비 상태를 표시합니다. - DAS Operator를 설치했습니다.
프로세스
다음 명령을 실행하여 네임스페이스를 만듭니다.
oc new-project cuda-workloads
oc new-project cuda-workloads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NVIDIA MIG 리소스를 사용하여 GPU 리소스를 요청하는 배포를 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 배포 구성을 적용합니다.
oc apply -f cuda-vectoradd-deployment.yaml
$ oc apply -f cuda-vectoradd-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 배포가 생성되었고 Pod가 예약되었는지 확인하세요.
oc get deployment cuda-vectoradd
$ oc get deployment cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
NAME READY UP-TO-DATE AVAILABLE AGE cuda-vectoradd 2/2 2 2 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 포드 상태를 확인하세요.
oc get pods -l app=cuda-vectoradd
$ oc get pods -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
NAME READY STATUS RESTARTS AGE cuda-vectoradd-6b8c7d4f9b-abc12 1/1 Running 0 2m cuda-vectoradd-6b8c7d4f9b-def34 1/1 Running 0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 배포 포드에 대한
AllocationClaim
리소스가 생성되었는지 확인하세요.oc get allocationclaims -n das-operator
$ oc get allocationclaims -n das-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
NAME AGE 13950288-57df-4ab5-82bc-6138f646633e-harpatil000034jma-qh5fm-worker-f-57md9-cuda-vectoradd-0 2m ce997b60-a0b8-4ea4-9107-cf59b425d049-harpatil000034jma-qh5fm-worker-f-fl4wg-cuda-vectoradd-0 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 포드의 리소스 할당 중 하나를 확인하여 GPU 슬라이스가 올바르게 할당되었는지 확인하세요.
oc describe pod -l app=cuda-vectoradd
$ oc describe pod -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 로그를 확인하여 CUDA 샘플 애플리케이션이 성공적으로 실행되는지 확인하세요.
oc logs -l app=cuda-vectoradd
$ oc logs -l app=cuda-vectoradd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
[Vector addition of 50000 elements] Copy input data from the host memory to the CUDA device CUDA kernel launch with 196 blocks of 256 threads Copy output data from the CUDA device to the host memory Test PASSED
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 환경 변수를 확인하여 GPU 장치가 컨테이너에 제대로 노출되었는지 확인하세요.
oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
$ oc exec deployment/cuda-vectoradd -- env | grep -E "(NVIDIA_VISIBLE_DEVICES|CUDA_VISIBLE_DEVICES)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
NVIDIA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652 CUDA_VISIBLE_DEVICES=MIG-d8ac9850-d92d-5474-b238-0afeabac1652
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 환경 변수는 GPU MIG 슬라이스가 올바르게 할당되었으며 컨테이너 내의 CUDA 런타임에서 볼 수 있음을 나타냅니다.