記錄一下配置cuda環境時遇到的問題和解決方法,已方便日后查證:
問題
終端輸入nvidia-smi時,報如下錯誤:
Failed to initialize NVML: Driver/library version mismatch
出現這種情況的原因是NVIDIA內核驅動版本和系統驅動不一致。
大多數出現該錯誤的情況可能是NVIDIA驅動是在低版本的時候安裝,由於系統更新,內核版本升級導致NVIDIA無法應用在高內核版本,新版本內核和顯卡驅動不匹配,顯卡驅動版本太低!
我的情況是在配置低版本的cuda時,不小心降低了顯卡驅動的版本,導致其和系統內核版本不一致而報錯。為了還原之前的版本,這里我通過重新安裝對應版本的顯卡驅動來解決這個問題。
安裝顯卡驅動
這一步的方法參考這篇博客中的方法二,感激不盡!!
第一步:安裝顯卡驅動PPA
英偉達官方PPA的網址是:https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa,可以查看所有顯卡驅動。
lspci | grep NVIDIA #查看電腦上PCIE安裝的顯卡,理論上不用查,自己的電腦應該都知道
sudo add-apt-repository ppa:graphics-drivers/ppa # 添加顯卡安裝源
此過程需要花費一點時間,這個是ubuntu官方的用於安裝NVIDIA顯卡的安裝包倉庫,可以從這個源下載任何可用的英偉達顯卡驅動。中間按回車繼續就可以了。(因為寫該博客時問題已經解決了,沒法子放過程的截圖了,具體可以參考鏈接中的博客)
NVIDIA PPA 被安裝到APT package reppository的cache.后更新一下。
sudo apt update
第二步:查找合適的顯卡驅動
打開顯卡驅動查詢網站:

我的顯卡時TITAN XP,找到對應的選項點擊search查詢。

可以看到當前(2022.1.14),適配我顯卡的驅動版本號是470.94。驗證該顯卡驅動版本是否可以初裝,可以訪問該鏈接,根據系統類型來查看。

使用下邊的命令在ppa中搜索470版本(小數點后號碼不用關注)的顯卡驅動:
apt search nvidia-470
運氣比較好,正好有;如果沒有搜到,可以根據上邊網頁中所有可以獲得的顯卡驅動版本從高到低搜索使用。
第三步:移除系統上先前安裝的顯卡驅動
sudo apt purge nvidia*
該指令會把顯卡驅動以及所用cuda全部移除,將在顯卡驅動不變的情況下,單純升級cuda,刪除以前cuda版本的方法。具體運行結果見參考博客。
第四步:安裝顯卡驅動
在這一步,參考博客中的命令並沒有起作用,經過google后使用如下命令進行安裝:
sudo apt install nvidia-driver-470
第五步:重啟電腦並驗證
sudo reboot
nvidia-smi
lsmod | grep nvidia
nvcc --version
題外話
如果本文中的方法沒能解決看到這的博友的問題,可以看下第二篇參考博客中的其他方法。要解決遇到的問題,終歸是要弄明白問題出現的原因,才好對症下葯,不然就是沒頭的蒼蠅亂撞了。
參考了兩位大佬的博客,才找出問題所在,感激不盡!
