공부/컴퓨터
NVIDIA GPU에서 nvidia-smi 명령시 NVML: Driver/library version mismatch 발생 원인은 아마도?
찬
2021. 4. 27. 01:45
반응형
Kubernetes의 Node에 GPU Pod가 뜰 때, 문제가 계속 발생하네?
- GPU를 사용하는 Pod가 떠 있을때는 문제가 안 됐는데, 가끔씩 새로 띄울때 Pod가 안 뜨는 문제가 있었다.
- 주로 이런 경우
nvidia-smi
명령을 치면 아래와 같은 에러 메세지가 떴었다.
Failed to initialize NVML: Driver/library version mismatch
- 단순히 에러 메세지로만 보면, 드라이버와 라이브러리가 매치 되지 않는다는건데, 난 서버에 아무런 짓도 안 해 줬는데도 에러가 생기는 것이다.
- 약 1년전부터 가끔 발생한 문제였는데, 이것저것 찾아 보았지만, 다들 재부팅하면 해결 될 거라는 이야기만...
- stackoverflow.com/questions/43022843/nvidia-nvml-driver-library-version-mismatch
- 아니면 apt update를 통해서 nvidia-driver를 업데이트 해 보라는 둥...
- stackoverflow.com/questions/62250491/nvml-driver-library-mismatch-after-libnvidia-compute-update
- NVIDIA driver module을 내렸다가 올리는라는 둥...
- m.blog.naver.com/jaeyoon_95/221773869080
- 서비스를 운영하는데 노드들을 아무렇지도 않게 재부팅하는것도 문제가 있고, 여러 노드가 한꺼번에 저 문제가 생기면, 다른 노드로 가서 붙어야할 GPU Pod들이 같은 문제로 인해서 안 뜨는 문제가 생길 것이다.
- 그런데 다들 왜 해결책만 있고, 그 원인을 이야기 하지 않을까?
mismatch 가 나는 이유는? nvidia-smi 를 살펴 보자.
- 기존에는 잘 동작하던 것들이 mismatch가 나는 이유는, 말 그대로 mismatch 상태가 되었기 때문일 거다.
- 분명 누군가가 무언가를 바꾸었기 때문에 mismatch 상태가 되었을 것이다라고 예측했다.
- 누가 nvidia-smi 파일을 바꿔치기 했나? 싶어
stat /usr/bin/nvidia-smi
명령을 통해 nvidia-smi 명령의 파일 상태를 확인해 보았다.
- 으잉?? 왜 Modify 시간이... 3월 30일이지? 난 이 서버를 껐다 킨적도 없는데?
history
명령을 이용해서 그간의 실행 기록을 살펴 봤지만, 아무도 그래픽 관련 무언가를 손 댄 적이 없다. - 도대체 누구의 소행인가?
재부팅을 하지 않아도 업데이트를 하네? unattended-upgrade
- 내가 저 파일을 손대지 않았는데, Modify 시간이 최근으로 달라졌다는것은.. 누군가가 업데이트 했다는것이다.
- 그래서 업데이트 관련해서 찾아 봤더니
unattended-upgade
라는게 있네? - 이 놈이 자동 업데이트를 해 주고, 시큐리티 패치들을 알아서 적용해 준다고 한다. 그리고 적용된 내용들을
/var/log/unattended-upgrades.log
에 남겨 둔다고 한다. - 그 내용중 일부는 아래와 같다.
- 으잉? 이렇게 많은 업그레이드를 알아서 하네? 아마도 이 업그레이드 때문에 이 문제가 생긴게 아닌가 한다.
해결책은?
- 안정적인 서버에서 드라이버를 업데이트하면, 기존에 동작하던것들이 동작을 안 할 수 있기 때문에, 업데이트를 막아 주는것이 좋다.
- 그리고
unattended-upgade
를 끄면 될 것으로 예상된다. 그럼 자동 업데이트도 없을테니깐? - 여기에 대한 글은 아래 링크를 확인해 보자.
- https://chrisalbon.com/deep_learning/setup/prevent_nvidia_drivers_from_upgrading/
- 위에 있는것을 그대로 적용하면 각종 시큐리티 패치가 자동으로 되지 않으므로, 적당히 수정해 주어야 한다.
- 오래된 글이지만 아래 링크에 가 보면, "환경이 깨지는것을 방지할 수 있도록" Blacklist를 올려둔 사람이 있으니 그것을 참고하면 더 좋겠다.
- forums.linuxmint.com/viewtopic.php?p=1098633#p1098633
- 그 사람의 예에 따르면 아래와 같이 작성하면 될 듯하다. 아님 말고. ㅎ.
반응형