天天看點

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

主機安裝雙系統有一段時間了(Win 10+Ubuntu 18.04),但是一直以來都是用的win 10系統,最近心血來潮改用Ubuntu,于是需要安裝各種Python庫環境等。本來以為很簡單就可以搞定,沒想到安裝PyTorch的過程一波三折。下面的内容将作為純初學者的角度出發進行記錄。

早就聽說用Anaconda安裝PyTorch很友善,于是決定進行嘗試,在裝好Anaconda後,根據PyTorch官網的指令就開始裝PyTorch 1.6。

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

PyTorch官網

為了更快速的安裝,将conda源改為清華源,網上有很多文章,可以參考下面的連結,本文不再細述具體操作。

清華源​mirror.tuna.tsinghua.edu.cn

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

之前一直沒搞懂究竟是不是直接根據官網指令安裝就可以一步到位(是否跟本地原有的cuda版本有關系)。後來證明确實沒有關系,即本地的cuda版本與cudatoolkit的版本可以并不一緻。但是,在安裝完PyTorch 1.6後,運作torch.cuda.is_available()卻發現輸出“False”。是以當時一度懷疑是本地cuda版本的影響(因為系統cuda版本為10.0)。

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

驅動-cuda版本對照表

經過一番折騰搜尋,找到上面的對照表之後,才發現可能是驅動的問題而導緻的,因為本人系統原先的Driver Version是410,而從表中可以看出cuda 10.1所需的驅動版本為>=418。

于是問題變為:如何對系統的顯示卡驅動進行更新?

剛開始找到的一些文章說的是通過:“應用程式 -> 軟體與更新 -> 附加驅動 -> 選擇對應版本的驅動 -> 應用更改”,然後會有重新開機電腦的操作,但是本人在重新開機之後發現驅動還是沒有變化,于是放棄了這個方法,走上手動安裝的道路。

更新驅動的方法也有不少,本人參照的是:

Ubuntu更新NVIDIA驅動版本​www.jianshu.com

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

當時在安裝的過程中卻沒有那麼簡單,首先,從官網中下載下傳好想要的驅動後,請一定要儲存在

主目錄(或非中文路徑)

中,因為筆者的系統為中文版,是以Downloads目錄為“下載下傳”,但是後續的操作需要在終端控制台(text-only mode)中進行驅動的安裝,此時将無法識别中文名稱的目錄,是以無法進入到相應的目錄中(當然,網上好像有别的解決辦法)。

執行完第一步解除安裝驅動後:

sudo apt-get purge nvidia*
           

我們嘗試直接進行安裝,下面的指令以450版本驅動為例:

sudo sh ./NVIDIA-Linux-x86_64-450.57.run
           

将會遇到下面的錯誤:

ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or the NVIDIA Persistence Daemon), but this may also happen if your kernel was configured without support for module unloading. Please be sure to exit any programs that may be using the GPU(s) before attempting to upgrade your driver. If no GPU-based programs are running, you know that your kernel supports module unloading, and you still receive this message, then an error may have occured that has corrupted an NVIDIA kernel module's usage count, for which the simplest remedy is to reboot your computer.

此時可以參考下面的高票回答(以及Clayton Mork的回答):

How to unload kernel module 'nvidia-drm'?​unix.stackexchange.com

具體的步驟可以參考Clayton Mork的回答:

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

解決“nvidia-drm”問題

其中,3c) 步驟有可能會執行失敗,顯示“nvidia-drm not found”,可以忽略該步驟。

經過上述步驟,驅動安裝程式即能夠啟動起來。但是,我們依然會存在各種各樣的問題,此處隻将本人遇到的最麻煩的問題解決過程進行闡述。在安裝的過程中,有可能會出現

gcc版本不比對的問題

。錯誤資訊大緻如下:

The CC version check failed:

The kernel was built with gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) , but the current compiler version is cc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609.

This may lead to subtle problems; if you are not certain whether the mismatched compiler will be compatible with your kernel, you may wish to abort installation, set the CC environment variable to the name of the compiler used to compile your kernel, and restart installation.

其中,上述的gcc版本根據實際情況會有所不同,但是指出的問題是:本地機器的gcc版本不符合所安裝驅動的要求,是以我們需要修改本地的gcc版本。

關于如何修改本機的gcc版本,下面的部落客文章給出了具體的操作(該部落客專欄的另一篇文章也具體闡述了安裝過程中可能出現的其他問題,強烈建議閱讀):

NVIDIA驅動gcc不比對 - 安裝指定gcc版本(Linux/Ubuntu)​zhuanlan.zhihu.com

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

ps:在修改gcc的過程,make過程就耗費不少時間,建議去睡個覺。

在驅動安裝完成之後,我們就可以回到圖形界面中:

sudo systemctl start graphical.target
           

通過執行“nvidia-smi”執行可以發現驅動已經安裝成功,如下所示:

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

nvidia-smi

同時,我們檢視PyTorch的情況,也能夠發現GPU版本已經安裝成功。

ubuntu gcc 安裝_Ubuntu 18.04 + PyTorch 1.6踩坑記錄-NVIDIA驅動安裝

cuda可用

以上即為整個安裝的過程,主要是在遇到具體問題的過程中不斷去檢索相應的解決方案,具體的細節都可以通過文中的連結進行檢視,是以不再在本文中具體列出每個步驟。最後,如有疑問,歡迎探讨!

歡迎關注我和朋友們的公衆号進行學習讨論:
  • AI學習之旅
  • OTTO Data Lab

繼續閱讀