Cuda 버전과 호환성 맞추기, 그래픽 카드 모니터링
Cuda를 돌리기 위해서는 Cuda버전에 맞는 드라이버를 설치해 주어야 합니다.
Cuda 버전 확인은 다음 커맨드로 확인이 가능합니다.
$ nvcc -V # 또는 nvcc --version
를 치면 다음과 같은 결과가 나옵니다.
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
Cuda 버전이 10.1로 설치되어 있음을 알 수 있습니다.
nvcc가 어디에서 오는지는, which nvcc를 보면 알 수 있습니다.
위의 커맨드는 사실 /usr/local/cuda/bin 또는 /usr/bin 안에 있는데,
또 다른 그래픽 환경을 볼 수 있는 커맨드가 있습니다.
$ nvidia-smi
를 치면 다음과 같은 화면이 나옵니다.
Thu Apr 15 17:03:07 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.56 Driver Version: 460.56 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| 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 GeForce GTX 166... Off | 00000000:01:00.0 Off | N/A |
| 59% 64C P2 119W / 125W | 3991MiB / 5936MiB | 96% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 39595 C python3 3981MiB |
+-----------------------------------------------------------------------------+
위 화면을 보면 현재 돌아가는 프로세스, nvidia driver의 버전, (460), 실제 그래픽카드의 모델, 전력 사용량, 그래픽카드 사용 가동률, 그리고 Cuda version도 나와 있습니다. 주의할 점은, 위의 Cuda version은 실제 설치되어 있는 버전이 11.2 라는게 아니라, compatible한 cuda version이 11.2라고 합니다. 관련 url : forums.developer.nvidia.com/t/nvidia-smi-doesnt-show-cuda-version-even-after-installation/68738 , stackoverflow.com/questions/53422407/different-cuda-versions-shown-by-nvcc-and-nvidia-smi
긴 설명 : stackoverflow.com/questions/53422407/different-cuda-versions-shown-by-nvcc-and-nvidia-smi
위의 nvidia-smi 를 0.5초로 계속 부르면서 상황을 볼 수 있는데,
$ watch -n 0.5 nvidia-smi
를 사용하시면 됩니다.
nvidia-smi가 통하지 않으면, nvidia driver가 제대로 설치되어 있지 않을 가능성도 있습니다.
그런 상황이 있어서, 정확하게 원인은 알 수 없지만, nvidia 관련 드라이버들을 모두 지우고 난 후
다시 드라이버들을 깔았더니 nvidia-smi가 실행되었습니다.
$ sudo apt purge nvidia-xxx.xx
관련 url : askubuntu.com/questions/206283/how-can-i-uninstall-a-nvidia-driver-completely
driver를 설치하는것은, 아래 커맨드를 입력하면 어떤 드라이버를 설치하는것이 좋을지 알려줍니다.
$ ubuntu-drivers devices
결과 :
== /sys/devices/pci0000:00/0000:00:1c.0/0000:03:00.0 ==
modalias : pci:v00008086d00002723sv00008086sd00000084bc02sc80i00
vendor : Intel Corporation
manual_install: True
driver : backport-iwlwifi-dkms - distro free
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd000021C4sv000019DAsd00005527bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-450 - distro non-free
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-460-server - distro non-free recommended
driver : nvidia-driver-460 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
그럼 그대로 깔면 됩니다.
$ sudo apt-get install nvidia-driver-460