NPU Pod 실행하기¶
NPU 1개를 요청하고 컨테이너 안에서 장치가 보이는지 확인합니다.
이 튜토리얼은 Device Plugin 구성을 기준으로 합니다. Operator가 아직 설치되어 있지 않다면 먼저 NPU Operator 설치 절차를 진행합니다.
사용 가능한 NPU 수
노드의 사용 가능한 NPU 수를 확인하려면 kubectl describe node <NODE_NAME>을 실행해 Allocatable과 Allocated resources를 비교합니다. Allocatable에는 이미 할당된 NPU도 포함됩니다.
1. Pod 생성하기¶
npu-tutorial 네임스페이스와 Pod를 생성합니다.
네임스페이스의 기존 상태에 따라 출력이 달라질 수 있습니다.
생성된 Pod가 Ready 상태가 될 때까지 기다립니다.
$ kubectl wait -n npu-tutorial --for=condition=Ready pod/first-npu --timeout=180s
pod/first-npu condition met
2. 장치 확인하기¶
Pod가 배치된 노드와 요청한 NPU 수를 확인합니다.
$ kubectl get pod -n npu-tutorial first-npu \
-o 'custom-columns=NAME:.metadata.name,NODE:.spec.nodeName,NPUS:.spec.containers[0].resources.limits.rebellions\.ai/npu'
NAME NODE NPUS
first-npu node-rebel100 1
$ kubectl exec -n npu-tutorial first-npu -- rbln-smi -L
NPU 0 : RBLN-CR13 (UUID: NPU-34428712-d887-840b-a7b9-1c9e05807fc3)
$ kubectl get pod -n npu-tutorial first-npu \
-o 'custom-columns=NAME:.metadata.name,NODE:.spec.nodeName,NPUS:.spec.containers[0].resources.limits.rebellions\.ai/npu'
NAME NODE NPUS
first-npu node-atom 1
$ kubectl exec -n npu-tutorial first-npu -- rbln-smi -L
NPU 0 : RBLN-CA25 (UUID: NPU-c5ba8327-5b18-847e-953e-4ca4b4daeb44)
요청한 NPU 1개가 컨테이너 안에 표시되면 성공입니다.
Pod 생성에 실패한 경우
- Pod가
Pending상태로 남아 있으면kubectl describe pod -n npu-tutorial first-npu의 Events를 확인합니다.Insufficient rebellions.ai/npu는 배치 가능한 노드에 사용 가능한 NPU가 부족하다는 뜻입니다. rbln-smi가 없거나 장치가 보이지 않으면 해당 노드의 Container Toolkit과 Device Plugin Pod를 확인합니다. 점검 방법은 오퍼레이터 관찰가능성에 정리되어 있습니다.
정리¶
Pod를 삭제하면 할당된 NPU를 다른 Pod에서 사용할 수 있습니다.