콘텐츠로 이동

RBLN NPU Feature Discovery

RBLN SDK는 쿠버네티스 노드에 설치된 RBLN NPU 디바이스에 대한 노드 레이블을 자동으로 생성하는 NPU Feature Discovery를 제공하며, 이 기능은 Kubernetes Node Feature Discovery에서 제공하는 기능을 기반으로 레이블링을 수행합니다.

배포

1단계: NPU 노드 준비

디바이스 플러그인 문서에 설명된 대로 RBLN NPU가 장착된 쿠버네티스 노드를 준비하고 RBLN 드라이버를 설치하세요.

2단계: Kubernetes Node Feature Discovery 배포

레이블을 적용하려는 모든 노드에서 Node Feature Discovery (NFD)가 실행 중인지 확인하세요. RBLN NPU Feature Discovery는 local feature source를 사용하므로, 노드에 /etc/kubernetes/node-feature-discovery/features.d/ 디렉토리가 존재해야 하며, 이 디렉토리는 RBLN NFD 파드에 마운트됩니다.

NFD는 이 페이지에 설명된 방법 중 하나(커스터마이즈(Kustomize), 헬름(Helm), 오퍼레이터(Operator))를 사용하여 배포할 수 있습니다.

3단계: RBLN NPU Feature Discovery 배포

각 노드에 RBLN NPU Feature Discovery를 데몬셋(DaemonSet) 파드로 배포합니다:

$ kubectl apply -f https://raw.githubusercontent.com/rebellions-sw/rbln-npu-feature-discovery/main/deployments/static/npu-feature-discovery-daemonset.yaml

위 매니페스트에는 feature.node.kubernetes.io/pci-1200_1eff.present라는 노드 어피니티(affinity)가 포함되어 있으며, 이는 데몬셋 파드가 벤더 ID 1eff(Rebellions)의 PCI 디바이스가 있는 노드에서만 실행됨을 의미합니다. 필요에 따라 매니페스트를 수정하여 사용하시길 바랍니다.

NFD와 RBLN NPU Feature Discovery가 모두 배포되고 실행 중이면, NPU가 설치된 노드에 NPU 관련 레이블이 표시됩니다. 다음 명령으로 확인할 수 있습니다:

$ kubectl get node <npu-node-name> -o yaml
apiVersion: v1
items:
- apiVersion: v1
  kind: Node
  metadata:
    ...
    labels:
      ...
      rebellions.ai/driver-version.full=1.2.92
      rebellions.ai/driver-version.major=1
      rebellions.ai/driver-version.minor=2
      rebellions.ai/driver-version.patch=92
      rebellions.ai/driver-version.revision=d01ab86
      rebellions.ai/npu.count=2
      rebellions.ai/npu.family=ATOM
      rebellions.ai/npu.present=true
      rebellions.ai/npu.product=RBLN-CA12
      ...

레이블 목록

다음 표는 RBLN NPU Feature Discovery가 생성하는 레이블과 그 의미를 나열한 것입니다.

참고

쿠버네티스에서 레이블 값은 항상 문자열입니다. "값 유형" 열은 문자열 형식 내에서 표현되는 유형을 나타냅니다.

레이블 이름 값 유형 의미 예시
rebellions.ai/driver-version.full 문자열 RBLN 드라이버의 전체 시맨틱 버전 1.2.92
rebellions.ai/driver-version.major 정수 RBLN 드라이버 시맨틱 버전의 메이저 부분 1
rebellions.ai/driver-version.minor 정수 RBLN 드라이버 시맨틱 버전의 마이너 부분 2
rebellions.ai/driver-version.patch 정수 RBLN 드라이버 시맨틱 버전의 패치 부분 92
rebellions.ai/driver-version.revision 문자열 RBLN 드라이버의 리비전 식별자 d01ab86
rebellions.ai/npu.count 정수 노드에 있는 NPU의 개수 2
rebellions.ai/npu.family 문자열 NPU의 아키텍처 패밀리 ATOM, REBEL
rebellions.ai/npu.present 불리언 노드에 RBLN NPU가 존재하는지 여부 true, false
rebellions.ai/npu.product 문자열 NPU의 제품 이름 RBLN-CA22, RBLN-CR22