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
하지만, 여전히 해결되지 않았다.
엔비디아 포럼에서 모두 삭제 후 재설치하라는 글을 보고 따라해봤다.
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 CompatibilityCUDA 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에서는 실행 중인 프로세스가 없는 것으로 나왔었는데, 이제야 정상적으로 실행되는 모양이다.
'삶의 도움이 되도록 씨부리는거 > IT' 카테고리의 다른 글
docker container에서 nvidia gpu 사용하기 위한 nvidia-container-runtime (1) | 2023.01.12 |
---|---|
미디어 서버 젤리핀(jellyfin) 도커 (0) | 2023.01.11 |
redmine dsmf 설치 장애 (0) | 2021.12.21 |
죄다 연동 실패라고 한다. (0) | 2020.12.07 |