Setting, Error/GPU

[Error] Failed to initialize NVML: Driver/library version mismatch

Juheon Kwak 2021. 8. 2. 19:03

apt를 업데이트 하며 apt와 cuda 및 cuda driver 버전이 서로 호환되지 않아 발생하는 문제

 

Ubuntu OS에서 apt 및 apt-get 업데이트 후 발생하는 에러 해결법

( apt, apt-get update 함부로 막 하지 말기.. docker container 안에서도 하지 말기.. )

 

※ 사용환경 : Ubuntu20, RTX3090

 

 

1. 사용하고 있는 nvidia 관련 환경 초기화

 

$ sudo apt autoremove

 

위 명령어로 먼저 잘못되어 있는 패키지를 자동으로 지우고 바로 2번으로 넘어가서 apt 버전에 맞는 nvidia-driver를 다시 깔아볼 것

 

위의 내용 (autoremove 하고, 2번으로 내려가서 드라이버 재설치)을 그대로 따라했는데도 GPU가 잡히지 않는다면, 밑의 lsmod 명령어 및 rmmod 명령어를 실행하자.

(굳이 다 nvidia 관련 모듈을 지울 필요는 없음)

 

$ lsmod | grep nvidia

더보기

nvidia_uvm           1011712  0

nvidia_drm             57344  8

nvidia_modeset       1228800  11 nvidia_drm

nvidia              34136064  535 nvidia_uvm,nvidia_modeset

drm_kms_helper        217088  1 nvidia_drm

drm                   552960  11 drm_kms_helper,nvidia_drm

$ sudo rmmod nvidia_drm nvidia_uvm nvidia_modeset

더보기

rmmod: ERROR: Module nvidia_drm is in use 에러가 나타난다면

$ sudo apt-get --purge remove *nvidia*

 

다시

$ lsmod | grep nvidia

를 입력했을 때 아무런 목록이 보이지 않으면 성공

 

 

 2. apt 버전에 맞는 nvidia-driver 확인 및 설치

 

$ sudo apt search nvidia-driver

더보기

해당 apt 버전에 맞는 nvidia 드라이버 버전을 보여준다. 나오는 드라이버 중 원하는 것을 설치하면 되는데, 최신 버전은 아직 불안정할 수 있으므로 최신버전의 아래 단계를 추천한다.

아니면 

$ ubuntu-drivers devices 

위의 명령어로 우분투에서 추천하는 드라이버를 확인하는 방법도 있다.

 

$ sudo apt-get install nvidia-driver-460 (460 대신 원하는 버전의 숫자를 입력하면 된다. 서버버전 아님! )

$ dpkg -l | grep CUDA

더보기

CUDA 관련 모듈 목록이 나오면 성공

 

$ reboot 또는 컴퓨터 다시 시작

더보기

컴퓨터를 재시작해야 해당 위의 작업들이 컴퓨터에 반영되니 꼭 다시 시작하기!

reboot 할 때 permission denied 뜨면

$ sudo reboot

$ nvcc -V

더보기

다시 설치가 올바르게 이루어졌는지 확인하기

 

위의 1번에서 lsmod와 rmmod 명령어를 실행했을 때에만 nvidia-cuda-toolkit를 install 명령어를 실행할 것

( 위에서 rmmod로 관련 모듈을 지웠으니까 다시 설치하는 것. 위의 rmmod 명령어를 실행하지 않았다면 할 필요 X )

 

$ sudo apt install nvidia-cuda-toolkit

$ nvidia-smi ( GPU 정보가 나타나면 성공 )