Ubuntu16.04+gtx1060+cuda8.0+cudnn8.0+tensorflow安裝
折騰了兩天系統安裝和配置,簡單的記錄一下。
linux坑太多,如果有朋友遇到坑,歡迎交流。
1.Ubuntu16.04安裝
1)先去官網找到對應的版本,我這裡安裝的是Ubuntu16.04 ltx版本,下載地址為:https://www.ubuntu.com/desktop。
2)下載好後,找一個U盤,用ultroiso製作啟動盤,具體辦法百度google網上一大堆。
3)關機,重啟,按F12或者del進入bios設定boot順序,我電腦是f12進入,開機的時候會有閃過,注意看一下或者網上查。把U盤設定為第一順序。
4)然後就選擇install Ubuntu。後面有不同是安裝方式,比如和win一起,Erase disk and install Ubuntu,或者其他方式自己設定分割槽
5)之後設定使用者名稱密碼之類,然後就是等。到最後下載abobe-flash的時候很慢,用了網上的方法,拔掉網線,過了會兒就裝好了。然後就可以看到全新的Ubuntu系統。
2.GTX1060驅動安裝
先根據對應的GPU下載對應的驅動版本,下載地址為http://www.nvidia.com/Download/index.aspx?lang=en-us
在我電腦上Ubuntu下載的速度很慢,所以先在win下用迅雷下好了,然後拷貝到了U盤裡,放在home或者downloads目錄下都行。
方法可以參照這裡:https://wiki.ubuntu.com.cn/NVIDIA,但是不用完全安裝步驟走。
我的方法是,1)ctrl+alt+f1到命令列環境,然後輸入使用者名稱和密碼登入
2)sudo /etc/init.d/lightdm stop關閉介面環境
3)cd到放驅動檔案的目錄,執行sudo sh driver-name.sh,然後一路安裝下去
4)sudo /etc/init.d/lightdm restart重新啟動介面環境
5)終端輸入nvidia-smi看安裝結果
這樣就安裝成功了。
(裝好的第二天某次宕機了,我強關電腦重啟後,出現了登入介面迴圈的問題,在小夥伴的建議下又重新裝了一邊顯示卡驅動就好了,這是後話)
(補充:後續電腦出現了掛起suspend恢復後會出現宕機的問題,升級了核心出現黑屏,顯示“輸入不支援”,用啟動盤進入try Ubuntu後用boot-repair修復後開機進入了選擇核心的頁面,選擇了原來的核心才重新進入,真是大坑。後來又裝了NVIDIA 367還是370的驅動,從sestem setting裝的,還是會宕機。不甘心的我認為還有可能是16.04太新,重灌了14.04,裝了375.20的驅動,還是會出現掛起恢復後宕機,情況好點,玩了一小會兒才宕機,但是依然會死。網上又搜了一些資訊,最終感覺是nvidia驅動的問題,無怪Linus torvalds對nvidia說的那句,fuck you,nvidia!
14.04下367的驅動依然不行)
(以下三部分參考了部落格:http://blog.csdn.net/WoPawn/article/details/52302164)
3.CUDA安裝
CUDA的安裝檔案也是win下下好的,通過U盤拷到了linux下。下載地址為:https://developer.nvidia.com/cuda-toolkit
安裝步驟為:
1)cd到檔案目錄
2)sh CUDA-NAME.run --override
3)啟動安裝程式,一直按空格到最後,輸入accept接受條款
輸入n不安裝nvidia影象驅動,之前已經安裝過了 (這裡注意)
輸入y安裝cuda 8.0工具
回車確認cuda預設安裝路徑:/usr/local/cuda-8.0
輸入y用sudo許可權執行安裝,輸入密碼
輸入y或者n安裝或者不安裝指向/usr/local/cuda的符號連結
輸入y安裝CUDA 8.0 Samples,以便後面測試
回車確認CUDA 8.0 Samples預設安裝路徑:/home/使用者名稱目錄,該安裝路徑測試完可以刪除
4.cudnn安裝
終端輸入1)cd 到放安裝檔案的目錄 (也是提取下好的)
2)解壓在下載目錄下產生一個cuda目錄
tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/ 複製標頭檔案
cd ../lib64 開啟lib64目錄
sudo cp lib* /usr/local/cuda/lib64/ 複製庫檔案
sudo chmod a+r /usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*給所有使用者增加這些檔案的讀許可權
5.建立軟連結
1)終端輸入
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
2)設定環境變數(不然找不到CUDA檔案,重要)
終端輸入sudo gedit /etc/profile
在末尾加入
PATH=/usr/local/cuda/bin:$PATH
export PATH
儲存後,建立連結檔案
sudo vim /etc/ld.so.conf.d/cuda.conf
按a進入插入模式,增加下面一行
/usr/local/cuda/lib64
按esc退出插入模式,按:wq儲存退出
最後在終端輸入sudo ldconfig使連結生效
6.cuda samples測試
開啟CUDA 8.0 Samples預設安裝路徑,終端輸入
cd /home/使用者名稱/NVIDIA_CUDA-8.0_Samples
sudo make all -j4 (4核)
出現“unsupported GNU version! gcc versions later than 5.3 are not supported!”的錯誤,這是由於GCC版本過高,在終端輸入
(源部落格出現了這個問題,在我安裝的時候並沒有出現)
cd /usr/local/cuda-8.0/include
sudo cp host_config.h host_config.h.bak
sudo gedit host_config.h
ctrl+f尋找有“5.3”的地方,只有一處,如下
# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
將兩個5改成6,即
#if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)
儲存退出,繼續在終端輸入
cd /home/使用者名稱/NVIDIA_CUDA-8.0_Samples
sudo make all -j4 (4核)
完成後繼續向終端輸入
cd bin/x86_64/linux/release
./deviceQuery
完成之後出現如下圖所示,表示成功安裝cuda
(這是源部落格的圖)
7.安裝pip
cd
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
sudo python ez_setup.py --insecure
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
9.Tensorflow安裝
tensorflow有四種安裝方式,
1)pip安裝
2)Virtualenv installation
3)Anaconda installation
4)Docker installation
或者從原始碼編譯安裝,我因為要用anaconda,所以選用了anaconda安裝方式
官網的安裝指導看這裡:https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#anaconda-installation,網上也可以找到很多中文教程。大致步驟為:先安裝anaconda2或者3,cd到目錄下的envs目錄,用conda指令建立一個tensorflow虛擬環境,然後source activate tensorflow,用pip下載安裝。
然後可以在tensorflow環境下用conda指令安裝ipython和jupyter
$ source activate tensorflow
(tensorflow)$ conda install ipython
(tensorflow)$ conda install jupyter
以後可以輸入jupyter notebook,在jupyter裡用tensorflow
每次啟動都需要先source activate tensorflow,結束的時候deactivate tensorflow。
這次裝完後後來出過一次問題,輸入import tensorflow後,輸出no module namad tensorflow,沒找到解決辦法,我重灌了一下好了。
要是想在pycharm下用tensorflow的話,參考上一篇部落格。
太晚了,急著睡覺,寫的有點粗略。。。。。