기계는 거짓말하지 않는다

Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error 본문

Container Tools/Docker

Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error

KillinTime 2025. 2. 14. 19:11

Kubernetes Pod Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error

 

Kubernetes Pod Docker 컨테이너 내에서 nvidia-smi Failed to initialize NVML: Unknown Error

쿠버네티스 파드의 도커 컨테이너 내에서 nvidia-smi를 입력했을 때, 간혹 아래의 오류를 보는 경우가 있다.Failed to initialize NVML: Unknown Error컨테이너를 정지했다가 재시작하면 동작하긴 하지만 근본

machine-does-not-lie.tistory.com

이 글에 이은 정보이다.

Docker 컨테이너 내에서 nvidia-smi를 입력했을 때, 간혹 아래의 오류를 보는 경우가 있다.

Failed to initialize NVML: Unknown Error

컨테이너를 정지했다가 재시작하는 방법과 Linux Capabilities를 사용하는 방법이 아닌 장치를 추가하는 방법이다.

Linux Capabilities도 CAP_SYS_ADMIN은 권장하지 않는다. root와 거의 동일한 권한을 가질 수 있기 때문이다.

특수한 경우에는 capabilities가 필요할 수 있겠지만, 일반적인 GPU 사용에서는 

대신 컨테이너 시작(run) 시 다음 명령어로 장치를 등록할 수 있다.

--device=/dev/{device_name}

장치들은 밑의 명령어로 확인할 수 있다.

ls /dev

이때, NVIDIA GPU 관련 장치를  docker run 시에 추가해 준다.

 

--device=/dev/nvidia0 \
--device=/dev/nvidiactl \
--device=/dev/nvidia-uvm \
--device=/dev/nvidia-uvm-tools

/dev/nvidia0: 첫 번째 GPU 장치
/dev/nvidiactl: NVIDIA 드라이버 제어 인터페이스
/dev/nvidia-uvm: Unified Video Memory (UVM), CUDA의 가상 메모리 관련
/dev/nvidia-uvm-tools: UVM 관련 도구

 

위 방법도 기간이 길지 않지만 2주 정도 테스트 시 문제가 다시 발생하지 않았다.

 

 

 

Comments