삶의 도움이 되도록 씨부리는거/IT

우분트 18.04에서 nvidia 드라이버 설치

狂者力 狂獸 2022. 12. 19. 01:22

nvidia 웹페이지에서 드라이버를 다운로드함.

# 파일 다운로드
wget https://kr.download.nvidia.com/XFree86/Linux-x86_64/525.60.11/NVIDIA-Linux-x86_64-525.60.11.run
# 실행 가능하도록 변경
sudo chomod a+x ./NVIDIA-Linux-x86_64-525.60.11.run
# 실행
sudo ./NVIDIA-Linux-x86_64-525.60.11.run

 

그리고 다음의 오류 발생되어 검색 하다보니 커널 소스가 있어야 한다고 함

#발생된 오류
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed
#오류 해소를 위해 헤더가 있어야 한다고 함
sudo apt-get install linux-headers-generic

일단 드라이버 설치는 되었고, 정상 동작할지는 다시 살펴보아야 함.

원하는 결과를 얻어냈다.

이후 cuda도 설치하기 위해 여러번 삽질을 반복했다.

어느 시점에서 삽질의 원인들이 해소되었는지 기억나지 않는데, bash_history를 열어보면 가장 마지막 행위는 다음과 같다.

# nvidia 공식홈페이지에서 내가 원하는 버전에 맞는 cuda를 다운 받았다. 
# 다운로드 링크는 웹에서 마우스 우클릭하여 획득하였다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-12-0_12.0.0-1_amd64.deb
# 다운로드 받은 파일을 실행하기 위해 권한 부여를 했다.
chmod a+x cuda-12-0_12.0.0-1_amd64.deb
sudo dpkg -i cuda-12-0_12.0.0-1_amd64.deb

 

그리고 nvidia-smi 결과도 잘  나오기에 모든것이 다 완료되었다고 생각했다.

오늘 다시 한번 해보니 다음과 같은 오류가 발생되었다.

$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch

왜 갑자기 버전이 맞지 않는다 하는지 몰라 검색을 시작했다.

드라이버 업데이트되어 버전이 틀어졌기 때문이란 포스팅들을 발견했다.

모든 포스팅이 동일한 해결책과 과정을 제시한다, 포스팅의 내용에 따라 다음과 같이 다시 로드하고 재부팅을 해본다.

$ lsmod| grep nvidia
nvidia_uvm           1179648  0
nvidia_drm             57344  0
nvidia_modeset       1204224  1 nvidia_drm
nvidia              56053760  2 nvidia_uvm,nvidia_modeset
drm_kms_helper        172032  1 nvidia_drm
drm                   401408  4 drm_kms_helper,nvidia,nvidia_drm
$ sudo rmmod nvidia_drm
$ sudo rmmod nvidia_modeset
$ sudo rmmod nvidia_uvm
$ sudo rmmod nvidia
$ sudo nvidia-smi
Failed to initialize NVML: Driver/library version mismatch
$ sudo reboot now

하지만, 여전히 해결되지 않았다.

엔비디아 포럼에서 모두 삭제 후 재설치하라는 글을 보고 따라해봤다.

https://forums.developer.nvidia.com/t/failed-to-initialize-nvml-driver-library-version-mismatch/190421

 

Failed to initialize NVML: Driver/library version mismatch

Ubuntu 21.04 nvidia-smi >> Failed to initialize NVML: Driver/library version mismatch lspci -v | grep VGA >> 1d:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1) (prog-if 00 [VGA controller]) I do not know how to gene

forums.developer.nvidia.com

# 신나게 삭제, 날 괴롭히다니 부들부들
sudo apt purge nvidia* libnvidia*
# 난 525 버전을 설치했었으므로 버전을 변경했다.
sudo apt install nvidia-driver-525
# 설치 완료 후 테스트
nvidia-smi
# 드디어 멋지게 다시 나타났다.
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.11    Driver Version: 525.60.13    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| 33%   35C    P0     1W /  38W |      0MiB /  1024MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

그렇게 모든 것들 다 해결했다고 여기며 몇일 지냈다.

그리고 어느날 불현듯 다시 다가왔다.

Failed to initialize NVML: Driver/library version mismatch

위에서 했던 것들을 수없이 반복하며, 답을 못 찾았다.

다시 곰곰히 생각해봤다. 이 오류의 원인은 드라이버와 라이브러리의 버전이 맞지 않기 때문이라는 문구다.

여태 잘 써왔으니 당연히 의심하지 않았지만, cuda와 graphic driver의 버전을 확인해야겠단 생각이 들었다.

ls /usr/local/cuda-12.0/

내 cuda 버전은 의도했던대로 12.0이다.

이제 그래픽 드라이버 버전을 보자. 위에 nvidia-smi 출력 결과를 남겨났었다.

Driver Version : 525.63.13

그럼 이제 CUDA와 Driver Version이 적절한지 비교해보기로 했다.


Table 2. CUDA Toolkit and Minimum Required Driver Version for CUDA Minor Version CompatibilityCUDA ToolkitMinimum Required Driver Version for CUDA Minor Version Compatibility*

  Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 12.0.x >=525.60.13 >=527.41
CUDA 11.8.x >=450.80.02 >=452.39

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-major-component-versions


테이블상 현재 버전도 문제 없어야겠지만, 아무래도 의심이 들기에 새 버전을 받아보기로 했다.

nvidia 웹사이트에서 리눅스 드라이버를 검색하고 다운로드 받을 수 있는 URL을 획득했다.

# 이전에 설치한 드라이버 삭제
sudo apt remove nvidia-driver-525
sudo apt autoremove
# 새 드라이버 다운로드
 wget https://kr.download.nvidia.com/XFree86/Linux-x86_64/525.78.01/NVIDIA-Linux-x86_64-525.78.01.run
# 실행 할 수 있도록 변경
sudo chmod a+x NVIDIA-Linux-x86_64-525.78.01.run
# 새로 설치한 드라이버 설치
sudo ./NVIDIA-Linux-x86_64-525.78.01.run
# 설치 후 재부팅 한번 하였다, 재부팅이 반드시 필요한 과정인지 모르겠다.
nvidia-smi
Sat Jan 14 22:12:19 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.78.01    Driver Version: 525.78.01    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| 33%   31C    P8     1W /  38W |     92MiB /  1024MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1368      G   /usr/lib/xorg/Xorg                 33MiB |
|    0   N/A  N/A      1558      G   /usr/bin/gnome-shell               54MiB |
+-----------------------------------------------------------------------------+

ubuntu desktop이기에 xorg와 gnome-shell 프로세스가 있나보다.

이전 nvidia-smi에서는 실행 중인 프로세스가 없는 것으로 나왔었는데, 이제야 정상적으로 실행되는 모양이다.

 

반응형