🚀 요약

SUMMARY

새로 들인 Blackwell 워크스테이션 GPU에서 nvidia-smi -mig 1Not Supported로 막혔다. 카드 불량이 아니라 요건 미충족이었고, 원인을 드라이버 575 이상 + vBIOS 최소 버전 + displayMode를 graphics에서 compute로 전환 세 가지로 좁혔다. vBIOS는 직접 못 구해 리셀러에 요청하고, displayMode는 displayModeSelector로 바꾸는 식으로 대응했다.

⚙️ 환경

  • OS: Rocky 9.6 (5.14.0-570.33.2.el9_6.x86_64)
  • GPU: NVIDIA RTX PRO 6000 Blackwell Workstation Edition (96GB)
  • Driver: 580.65.06
  • vBIOS: 98.02.52.00.02

💬 이슈

MIG(Multi-Instance GPU)로 카드 한 장을 여러 인스턴스로 쪼개 쓰려고 활성화를 시도했는데 바로 막혔다.

# MIG 모드 켜기 시도
$ sudo nvidia-smi -mig 1
Unable to enable MIG Mode for GPU 00000000:21:00.0: Not Supported
Treating as warning and moving on.
All done.

nvidia-smi에서 MIG 상태는 N/A로 떴고, 프로파일 목록을 물어봐도 지원 기기가 없다는 답이 돌아왔다.

$ nvidia-smi mig -lgip
No MIG-supported devices found.

처음엔 카드가 불량인가 싶었다. 그런데 이 모델은 스펙상 MIG를 지원하는 카드다(그러니까 산 거고). 드라이버도 최신이라 “지원 안 함”이라는 메시지가 오히려 이상했다. 하드웨어 문제라기보다 내가 뭔가 전제 조건을 안 채운 쪽에 가깝다고 봤다.

🧗 해결

1. 공식 요건으로 좁히기

MIG는 카드가 지원 목록에 있다고 바로 켜지는 게 아니었다. MIG User Guide의 Prerequisites와, Blackwell 세대 워크스테이션 카드에만 붙는 추가 요건을 같이 읽으니 조건이 세 개로 정리됐다.

  • nvidia-driver 575.51.03 이상
  • vBIOS 98.02.55.00.00 이상 (워크스테이션 에디션 기준)
  • displayMode를 compute로 전환 (기본값은 graphics)

내 환경과 하나씩 맞춰봤다. 드라이버는 580.65.06이라 통과. 문제는 나머지 둘이었다. vBIOS가 98.02.52.00.02라 요구치인 ...55...에 미달했고, 워크스테이션 카드라 출고 상태가 그래픽 출력용(graphics) 모드였다. Not Supported의 정체는 이 두 개였던 셈이다.

vBIOS와 현재 표시 모드는 nvidia-smi -q로 확인할 수 있다.

# VBIOS Version, Display Mode 같은 상세 속성을 한 번에 조회
nvidia-smi -q

2. vBIOS와 displayMode 대응

두 요건은 대응 방법이 서로 달랐다.

vBIOS. 이건 내가 어디서 받아 플래싱할 수 있는 물건이 아니었다. 카드용 vBIOS 이미지는 공개 배포처가 없어서, 구매처(리셀러)에 최소 버전 이상으로 올려달라고 요청하는 수밖에 없었다. 결국 사람한테 메일 보내는 게 해결책이라 좀 허무했지만, 펌웨어는 원래 그런 영역이다.

displayMode. 이쪽은 직접 바꿀 수 있었다. NVIDIA가 주는 displayModeSelector 바이너리로 graphics ↔ compute를 전환한다(다운로드에 developer 계정 가입이 필요하다). 워크스테이션 카드는 화면을 뿌리는 용도라 기본이 graphics인데, MIG를 쓰려면 디스플레이 출력을 끄는 compute 모드여야 한다.

NOTE

compute 모드로 바꾸면 그 카드로는 화면 출력을 못 한다. 처음엔 “이거 되돌릴 수 있나, 잘못 만지면 벽돌 되는 거 아닌가” 싶어 손이 멈칫했는데, 같은 displayModeSelector로 다시 graphics로 되돌릴 수 있다. 어차피 이 카드는 연산 전용으로 꽂을 거라 화면 출력은 애초에 필요 없었다.

3. MIG 프로파일과 디바이스 플러그인 라벨

요건을 다 채우면 그 뒤 흐름은 표준적이다. MIG를 켜고, 프로파일로 인스턴스를 나눈 다음, 쿠버네티스가 그걸 인식하게 하면 된다.

먼저 카드가 실제로 어떤 분할을 지원하는지 프로파일 목록을 본다. 프로파일 ID는 카드 세대·용량마다 다르니 문서 예시를 베끼지 말고 실기에서 뽑아야 한다.

# MIG 활성화 후, 이 카드가 지원하는 GPU 인스턴스 프로파일 목록 조회
sudo nvidia-smi -mig 1
nvidia-smi mig -lgip

여기서 나온 ID로 인스턴스를 생성한다. 이 카드는 최대 4개 인스턴스로 나뉜다. 아래는 프로파일 ID를 나열해 인스턴스를 만드는 형태(ID 값은 -lgip 결과 기준으로 채운다).

# 프로파일 ID를 나열해 GPU 인스턴스를 생성 (예시, 실제 ID는 -lgip에서 확인)
sudo nvidia-smi mig -cgi <profile-id>,<profile-id>,... -C

nvidia-smi만으로도 기본 파티셔닝은 되지만, 노드가 늘고 카드별로 분할 형상을 다르게 가져가려면 nvidia-mig-parted로 원하는 구성을 선언형(declarative)으로 정의해두는 편이 관리가 낫다.

쿠버네티스 쪽은 NVIDIA device plugin이 붙는다. MIG 전략(single/mixed)에 따라 device plugin이 노드에 자동으로 라벨을 달아준다. mixed 전략이면 인스턴스 형상이 이런 이름으로 리소스화된다.

# 분할 구성에 따라 노드에 자동으로 붙는 MIG 리소스 라벨 형태
nvidia.com/mig-<slice_count>g.<memory_size>gb

파드는 nvidia.com/gpu 대신 이 라벨을 resources.limits로 요청해서 쪼갠 조각 하나를 할당받는다. 카드 한 장을 여러 워크로드가 나눠 쓰게 만드는 게 애초에 MIG를 도입한 목적이었다.

✅ 확인

세 요건을 다 채웠으면 활성화 자체가 경고 없이 통과하고, 프로파일 목록이 정상적으로 나온다.

# MIG 상태와 지원 프로파일이 뜨는지 확인
nvidia-smi                # MIG 열이 N/A가 아니라 Enabled로 표기
nvidia-smi mig -lgip      # "No MIG-supported devices found"가 아니라 프로파일 목록 출력

쿠버네티스에서는 device plugin이 올라온 뒤 노드에 nvidia.com/mig-* 리소스가 잡히는지 본다.

# 노드에 MIG 리소스가 등록됐는지 확인
kubectl describe node <gpu-node> | grep nvidia.com/mig

다만 이 글을 쓰는 시점엔 vBIOS 회신을 기다리는 중이라 활성화까지 완전히 닫진 못했다. Not Supported가 카드 문제가 아니라 드라이버·펌웨어·표시 모드라는 세 전제 조건 문제였다는 것, 그리고 각각을 리셀러 요청과 displayModeSelector로 나눠 처리해야 한다는 것까지 규명한 단계다. vBIOS만 올라오면 위 확인 절차대로 마무리된다.

🔗 참고