프로그래밍 /개발환경 설정

[Linux] NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running 에러 해결

yooj_lee 2023. 12. 27. 17:01
300x250

연구실 정전때문에 서버가 종종 다운되는데, 그때마다 꼭 NAS나 nvidia 드라이버가 문제가 생기는 경우가 발생해 정리해놓는 글.

실행 환경

ubuntu 20.04, RTX 4090

오류 발생 원인

해당 에러는 nvidia 드라이버를 사용하는 딥러닝 프로세스를 종료하지 않은 채로 서버의 전원이 꺼지거나 시스템 종료하는 경우에 많이 발생한다고 한다. 실제로 이번 오류도 연구실 정전때문에 갑자기 서버가 다 셧다운된 후에 발생한 에러.

해결 방법

심플하게 드라이버를 삭제했다가 재설치하면 된다. 이전 버전의 드라이버를 확실히 지우기 위해 아래와 같이 명령어를 수행한다. purge 옵션을 지정해주지 않으면 A 패키지의 설정 값이 삭제가 안된다고 함. autoremove를 통해 패키지 간 dependency로 인해 설치된 패키지 중 사용하지 않은 패키지도 다 삭제함. 관련 보다 자세한 설명은 여기로.

 

sudo apt remove --purge nvidia-*
sudo apt autoremove

혹은

sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
sudo apt-get update

 

드라이버를 재설치하기 이전에 아래의 명령어를 통해 그래픽카드 및 설치 가능한 드라이버를 확인함.

ubuntu-drivers devices

 

 

명령어를 수행하면 아래와 같이 화면에 뜰텐데

여기서 recommended를 깔아줘야 별 탈 없이 설치되는 듯함 (아마도). 원하는 버전을 {version} 자리에 입력하고 명령어를 실행시켜주면 설치가 완료됨. 참고로, sudo add-apt-repository ~~ 명령어를 통해 ppa 저장소를 시스템에 추가해주면 최신 버전의 베타 그래픽 드라이버를 설치해줄 수 있다고 함 (즉, 굳이 수행을 해주지는 않아도 된다는 뜻).

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

sudo apt install nvidia-driver-{version} # 버전 지정하여 설치

sudo ubuntu-drivers autoinstall # or 권장 드라이버를 자동으로 설치할 수도 있음.

 

다시 apt를 update하고 upgrade해준 후에 reboot를 해주면 완료.

sudo apt update
sudo apt upgrade -y

sudo reboot

 

nvidia-smi 명령어 실행 시 성공적으로 출력됨.

참고로 이후에 도커 컨테이너를 통해 작업 수행시 gpu 디바이스 지정을 해주려면, 아래와 같이 추가로 nvidia toolkit을 설치하여 진행하면 된다.

sudo apt-get install -y nvidia-container-toolkit

References

1. https://eda-ai-lab.tistory.com/572
2. https://bluecolorsky.tistory.com/52
3. https://pstudio411.tistory.com/entry/Ubuntu-2004-Nvidia%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

300x250