GPU Resources

Prev Next

VPC 환경에서 이용 가능합니다.

GPU Resources 화면 구성에 대해 설명합니다. GPU Resources에서는 Workspace에 할당된 GPU 리소스 현황을 조회할 수 있습니다.

참고

현재 ML expert Platform은 클로즈드 베타 서비스(CBT) 중으로, 사전 협의된 사용자에게 GPU 자원을 별도로 배정하고 있습니다.

GPU Resources 목록 조회

사용자의 Workspace에 배정된 GPU 리소스 목록을 확인할 수 있습니다. GPU Resource 목록의 정보는 다음과 같습니다.

mlxp_console_gpuresources03_ko

  • GPU Zone: 사용자의 Workspace 배정된 GPU 리소스 제공 방식을 구분하는 정보
  • 생성 일시: GPU 리소스를 할당한 시점
  • 상태: GPU 리소스 상태
  • Ready Nodes: 사용 가능한 GPU 노드 개수
  • UnReady Nodes: 사용 불가능한 GPU 노드 개수
  • Total Nodes: 현재 Workspace에 할당한 GPU 리소스 전체 개수
참고
  • 현재 ML expert Platform은 Private Zone으로 GPU 리소스를 제공중입니다.
  • Private Zone이란 다른 사용자와 GPU 리소스를 공유하지 않고, 배정된 Workspace에서 전용으로 사용하는 방식입니다.

사용 가능한 GPU Zone 정보 조회

사용 가능한 GPU Zone 정보를 조회하는 방법은 다음과 같습니다.

  • Workspace에서 사용 가능한 GPU Zone 정보 조회
    kubectl get managementquota default -o yaml -n w-{ workspace name }
  spec:
  type: workspace
  zones:
    privateZones:
      # Workspace 에서 "gpu-private-zone"의 GPU 리소스 사용 가능함
      gpu-private-zone: ["*"]
  • Project에서 사용 가능한 GPU Zone 정보 조회
    kubectl get managementquota default -o yaml -n p-{ project name}
  spec:
  type: project
  zones:
    privateZones:
      # Project 에서 "gpu-private-zone"의 GPU 리소스 사용 가능함
      gpu-private-zone: ["*"]

GPU Zone 정보 사용 방법

GPU 리소스 정보를 활용하는 모든 기능 사용시 GPU Zone 정보를 명시해야 합니다.

  • PyTorchJob을 통해 Pod 생성할 때는 실행할 GPU Zone을 명시하는 nodeSelector를 추가해 주십시오.
apiVersion: "kubeflow.org/v1"
kind: "PyTorchJob"
metadata:
  name: "pytorch-dist-mnist-nccl"
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        metadata:
          labels:
            app: my-app
        spec:
          nodeSelector:
            mlx.navercorp.com/zone: ai-infra
          containers:
            - name: pytorch
              image: kubeflow/pytorch-dist-mnist:latest
              args: ["--backend", "nccl"]
              resources:
                limits:
                  nvidia.com/gpu: 1
    Worker:
      replicas: 2
      restartPolicy: OnFailure
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
            - name: pytorch
              image: kubeflow/pytorch-dist-mnist:latest
              args: ["--backend", "nccl"]
              resources:
                limits:
                  nvidia.com/gpu: 1
          nodeSelector:
            mlx.navercorp.com/zone: ai-infra
  • 모든 워크로드의 기본이 되는 Pod 에도 nodeSelector 에 GPU Zone을 명시해야 합니다.
apiVersion: v1
kind: Pod
metadata:
  name: sleep
  annotations:
    sidecar.istio.io/inject: "false"
spec:
  nodeSelector:
    mlx.navercorp.com/zone: ai-infra
  containers:
    - image: reg.navercorp.com/base/ubuntu:22.04
      command: ["/bin/bash", "-c", "sleep inf"]
      imagePullPolicy: IfNotPresent
      name: sleep

GPU Instance 상세 조회

GPU Zone 내부 GPU 인스턴스 상태 정보를 조회할 수 있습니다.

mlxp_console_gpuresources03_ko

  • GPU 인스턴스 이름: GPU Zone에 배정된 GPU 인스턴스 이름
  • 생성 일시: GPU 인스턴스를 생성한 시점
  • 상태: GPU 인스턴스 상태
    • Ready: GPU 인스턴스 사용 가능한 상태
    • NotReady: 하드웨어 장애 등으로 GPU 인스턴스 사용 불가능한 상태
    • Unschedulable: GPU 인스턴스는 정상이나 사용 가능한 대상에서 제외한 상태
    • Unknown: GPU 인스턴스에 문제가 생겨 점검이 필요한 상태
  • 프로젝트: GPU 인스턴스가 배정된 프로젝트 이름

GPU Instance 관리

GPU Zone의 GPU 인스턴스를 프로젝트별로 배정할 수 있습니다.

참고
  • 최초 접속시 Workspace에 할당한 GPU 인스턴스를 각 프로젝트에 배정하는 작업이 필요합니다.
  • GPU Instance 관리 기능은 Workspace의 Admin, Writer만 사용 가능합니다.
  1. GPU 인스턴스 관리 팝업에서 프로젝트를 선택한 뒤, 선택한 프로젝트에서 사용할 GPU 인스턴스를 선택합니다.
  2. 저장 버튼을 누르면 선택한 GPU 인스턴스가 프로젝트에 배정됩니다.
  3. 초기화 버튼을 누르면 선택한 프로젝트에 설정된 GPU 인스턴스 정보로 재조회됩니다.
주의
  • GPU 인스턴스는 각 프로젝트에 중복으로 배정 가능합니다.
  • GPU Instance 관리 기능은 각 프로젝트에서 사용 가능한 예비 리소스를 지정하는 기능으로, 현재 사용중인 Pod의 실시간 상태정보를 반영하지 않습니다. 사용중인 Pod이 있는 GPU 인스턴스를 다른 프로젝트에 배정할 경우, 재시작시 해당 인스턴스가 배정된 프로젝트 정보가 변경되었기 때문에 Pod이 재시작되지 않습니다.