8장. GPU 시간 분할 정보
GPU 시간 분할을 사용하면 처리 시간을 짧고 변경 시간 슬롯으로 나누어 여러 워크로드가 단일 물리적 GPU를 공유할 수 있습니다. 이 방법을 사용하면 리소스 사용률이 향상되고 유휴 GPU 시간이 단축되며 여러 사용자가 OpenShift AI에서 AI/ML 워크로드를 동시에 실행할 수 있습니다. NVIDIA GPU Operator는 각 물리 GPU에 대한 GPU 슬라이스 수를 정의하는 time-slicing-config ConfigMap을 기반으로 이 스케줄링을 관리합니다.
시간 분할은 MITG(Multi-Instance GPU) 파티셔닝과 다릅니다. MIG는 메모리 및 내결함성 격리를 제공하지만 시간 분할은 엄격한 격리 없이 워크로드 간에 동일한 GPU 메모리를 공유합니다. 시간 분할은 경량 추론 작업, 데이터 사전 처리 및 전체 GPU 격리가 필요하지 않은 기타 시나리오에 이상적입니다.
GPU 시간 분할을 사용할 때는 다음 사항을 고려하십시오.
- 메모리 공유: 모든 워크로드는 GPU 메모리를 공유합니다. 한 워크로드의 메모리 사용량이 다른 워크로드에 영향을 미칠 수 있습니다.
- 성능 장단점: 시간 분할을 사용하면 여러 워크로드가 GPU를 공유할 수 있지만 ScanSettingG와 같은 엄격한 리소스 격리는 제공되지 않습니다.
- GPU 호환성: 특정 NVIDIA GPU에서 시간 분할이 지원됩니다.
8.1. GPU 시간 분할 활성화 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift AI에서 GPU 시간 분할을 활성화하려면 여러 워크로드가 단일 GPU를 공유할 수 있도록 NVIDIA GPU Operator를 구성해야 합니다.
사전 요구 사항
- OpenShift에 로그인했습니다.
-
OpenShift에
cluster-admin역할이 있습니다. - NVIDIA GPU Operator를 설치하고 구성했습니다.
- 배포의 관련 노드에는 NVIDIA GPU가 포함되어 있습니다.
- 배포의 GPU는 시간 분할을 지원합니다.
-
OpenShift CLI 설치에 설명된 대로 OpenShift 명령줄 인터페이스(
oc)를 설치했습니다.
프로세스
GPU Operator가 사용하는 네임스페이스에
time-slicing-config라는 구성 맵을 생성합니다. NVIDIA GPU의 경우nvidia-gpu-operator네임스페이스입니다.- OpenShift 웹 콘솔에 클러스터 관리자로 로그인합니다.
-
관리자 관점에서 워크로드
ConfigMap 으로 이동합니다. - ConfigMap 세부 정보 페이지에서 구성 맵 생성 버튼을 클릭합니다.
- 구성 맵 생성 페이지에서 Configure via 의 경우 YAML 보기를 선택합니다.
Data 필드에 관련 GPU의 YAML 코드를 입력합니다. 다음은 NVIDIA T4 GPU에 대한
time-slicing-config구성 맵의 예입니다.참고- 복제본 수를 변경하여 각 물리 GPU에 사용할 수 있는 GPU 슬라이스 수를 제어할 수 있습니다.
- 워크로드가 사용 가능한 GPU 메모리를 초과하는 경우 복제본을 늘리면 OOM(Out of Memory) 오류가 증가할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 생성을 클릭합니다.
time-slicing-config구성 맵을 참조하도록gpu-cluster-policy클러스터 정책을 업데이트합니다.-
관리자 화면에서 Operator
설치된 Operator로 이동합니다. - NVIDIA GPU Operator 를 검색한 다음 Operator 이름을 클릭하여 Operator 세부 정보 페이지를 엽니다.
- ClusterPolicy 탭을 클릭합니다.
-
목록에서
gpu-cluster-policy리소스를 선택하여 ClusterPolicy 세부 정보 페이지를 엽니다. YAML 탭을 클릭하고
spec.devicePlugin섹션을 업데이트하여time-slicing-config구성 맵을 참조합니다. 다음은 NVIDIA T4 GPU를 위한gpu-cluster-policy클러스터 정책의 예입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 저장을 클릭합니다.
-
관리자 화면에서 Operator
시간 분할을 적용하려면 관련 머신 세트의 레이블을 지정합니다.
-
관리자 화면에서 컴퓨팅
머신 세트로 이동합니다. - 목록에서 GPU 시간 분할에 대한 머신 세트를 선택합니다.
MachineSet 세부 정보 페이지에서 YAML 탭을 클릭하고
spec.template.spec.metadata.labels섹션을 업데이트하여 관련 머신 세트의 레이블을 지정합니다. 다음은 NVIDIA T4 GPU에 적합한 머신 레이블이 있는 머신 세트의 예입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 저장을 클릭합니다.
-
관리자 화면에서 컴퓨팅
검증
- OpenShift CLI에 로그인합니다.
구성 맵을 올바르게 적용했는지 확인합니다.
oc get configmap time-slicing-config -n nvidia-gpu-operator -o yaml
oc get configmap time-slicing-config -n nvidia-gpu-operator -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 정책에 시간 분할 구성이 포함되어 있는지 확인합니다.
oc get clusterpolicy gpu-cluster-policy -o yaml
oc get clusterpolicy gpu-cluster-policy -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 라벨이 노드에 적용되었는지 확인합니다.
oc get nodes --show-labels | grep nvidia.com/device-plugin.config
oc get nodes --show-labels | grep nvidia.com/device-plugin.configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
워크로드가 GPU를 공유하는 것으로 나타나지 않는 경우 NVIDIA 장치 플러그인이 실행 중이고 올바른 레이블이 적용되는지 확인합니다.