Intel+Nvidia雙顯卡筆記本Linuxmint18下安裝CUDA+OpenCV+Caffe的安裝記錄


一.安裝環境:

硬件:微星GE70 2PC 089-XCN,14年性價比較高的一款,然而兩年多過去后配置已經落伍...當年的價格現在能買到i7+GTX1050了...

    CPU:intel i5 4200H  雙核四線程  2.8GHz

    顯卡:Intel HD 4600 + Nvidia GTX 850M

    硬盤:Linux系統分配了100G,現在我主要還是用Windows所以給Linux分的比較少,不過看大多數做深度學習的/home至少分300個G...

    內存:16G

系統:LinuxMint18.1,基於Ubuntu 16.04系統。

    選擇LinuxMint的原因就是,Ubuntu上顯卡驅動不好裝,裝不上,裝上之后重啟不能登錄桌面...Mint看起來人性化些,而且作為桌面操作系統用也是不錯的選擇(除了沒有QQ和迅雷這倆我離不開的軟件...還有微軟Office套件...)

准備安裝:CUDA8.0+OpenCV3.2+Caffe

二.Windows10+LinuxMint18.1雙系統安裝

    這個單開一篇文章說吧...(我還沒寫,請先參考這篇可讀性比較好的文章:UEFI下Win 8.1+Ubuntu 14.04安裝教程

    簡單來講,推薦選擇UEFI引導方式,硬盤分區表GPT,Windows那部分保持不變,留出個幾百G的空余(留多少看你心情吧),然后100~300M做EFI引導分區,和內存等大的交換分區,剩下全給/ Ext4,或者你單獨給/home多少多少...

    安裝時候有個第三方驅動的問題,使用第三方驅動需要關閉安全引導,一定記住你定的那個密碼,重啟后它問你那個密碼不是直接讓你輸入密碼,而是問你第幾個數字是啥,有意思...

    我建議裝完系統后更新一下,有的教程說不要更新,我感覺更新總是好的...Mint的軟件源盡量不要改,我改成過中國的,然后就出錯了...網速能忍的情況下盡量不要改...如果你知道哪個源好用評論告訴我 _(:з」∠)_

    系統安裝倒是不難,接下來最頭疼的問題來了,就是安裝驅動。

三.Nvidia顯卡私有驅動安裝

    你可能會遇到聲卡驅動問題導致電腦沒聲音,網卡驅動問題導致不能上網,觸摸板驅動問題導致觸摸板不能用,鍵盤驅動...鍵盤能有啥問題頂多是鍵盤燈不亮...沒辦法你的電腦本來就不是為了Linux而設計的(不過還真有出廠預裝Ubuntu的),缺少驅動問題要自己想辦法了。

    下面只說顯卡驅動問題。有個尷尬的問題就是系統默認安裝了nouveau開源驅動,你是可以把它加黑名單,但貌似在拔掉顯卡前這個驅動是不會停止工作的,你也就裝不上官方驅動...顯卡咋拔?拔了不黑屏了嗎...就算禁用,那也黑了...尤其這雙顯卡...不管了...

    進入系統設置最底下有個驅動管理,點進去后你能看到,給你推薦了驅動,Intel那里選擇intel-microcode就好,NVIDIA那里有兩個,一個NVIDIA官方的閉源驅動,一個叫nouveau的開源驅動。顯然閉源的效果要比開源的好,而且你要裝CUDA肯定需要官方的顯卡驅動。但由於Linux的政策限制,預裝了nouveau驅動,在裝官方驅動之前,你要把這個開源驅動加入黑名單,不加的話官方驅動裝不上。

    我嘗試了從官網下載最新的驅動安裝包然后進命令行模式裝,可惜各種報錯...所以還用系統推薦的吧...

    1.為了將nouveau加入黑名單,編輯 /etc/modprobe.d/blacklist.conf ,在文件后面加入blacklist nouveau.

    2.到系統設置里找驅動管理,選擇兩個推薦的驅動,點應用更改。

    3.等,我裝的時候等了5個小時,進度條一直剩一點點,然后我就直接重啟了,重啟后會進入那個上面說的關閉安全引導的步驟,輸對密碼后就可以正常進系統了。

    最好是多等等,我等一個小時時候進度條也剩那一點,直接重啟后桌面就開始崩潰了,顯然驅動沒裝好...說實話我現在都不知道裝不上是因為網速慢還是看臉,所以嘛,多等等就是了...畢竟重裝了6遍系統才成功把顯卡驅動裝上...

    裝好后,系統右下角會有一個N卡的logo,點它進NVIDIA X Server Setting可以切換顯卡的,每次切換都需要注銷。(如果你也用微星你會發現電源燈由藍色變為紅色,證明獨顯工作了。裝好獨顯驅動后steam里好多游戲都可以流暢運行!)

    

 

    你也可以進一步確認一下,進終端輸入nvidia-smi后出現以下信息表示安裝成功。

 

四.安裝CUDA8.0和cudnn v5.1

    去NVIDIA開發者官網下載最新的CUDA安裝包。如圖

 

    此時我下載的是cuda_8.0.44_linux.run

    版本選擇16.04,因為Mint18是基於Ubuntu16.04的。然后選runfile那個。

    執行命令:

    sudo sh cuda_8.0.44_linux.run  --override

    啟動安裝程序,按住空格到最后,老長了,相信你不會看的,輸入accept接受條款。

    Q1: You are attempting to install on an unsupported configuration. Do you wish to continue? 咋不支持了,配置低還是怎么...那也不能不裝啊,輸入y

    Q2: Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?                          別裝,剛才裝過了。再裝裝出問題來...害怕,輸入n

    Q3: Install the CUDA 8.0 Toolkit?     y

    Q4: Enter Toolit Location        回車就行默認安裝路徑:/usr/local/cuda-8.0

    Q5: Do you want to install a symbolic link at /usr/local/cuda?          y

    Q6: Install the CUDA 8.0 Samples?          y

    Q7:Enter CUDA Samples Location       還是回車,默認路徑:/home/用戶名

    裝完CUDA8.0后,需要將cudnn相關頭文件和so文件放入cuda8.0相應的目錄中:

    先解壓cudnn

    然后,我是直接圖形界面移動的,命令的話:

cd /home/用戶名/Softwares/deeplearning_softwares/cudnn;
cd cuda/include/  
sudo cp cudnn.h /usr/local/cuda/include/   
cd ../lib64   
sudo cp lib* /usr/local/cuda/lib64/   
sudo chmod a+r /usr/local/cuda/include/cudnn.h  /usr/local/cuda/lib64/libcudnn*

    建立軟連接,終端輸入:

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  

    設置環境變量,終端輸入:

sudo gedit /etc/profile 

    打開文件后在末尾加入(要是沒裝gedit就裝一個,用啥打開都行)

    PATH=/usr/local/cuda/bin:$PATH

    export PATH

    保存后,創建鏈接文件

sudo vim /etc/ld.so.conf.d/cuda.conf  

    按i進入插入模式,增加下面一行

    /usr/local/cuda/lib64

    ESC退出,輸入 :wq 保存退出

    終端輸入:

sudo ldconfig

    使鏈接生效。

    cuda Samples測試

    打開CUDA 8.0 Samples默認安裝路徑,終端輸入

cd /home/用戶名/Workspace/CUDA_Samples/NVIDIA_CUDA-8.0_Samples  
sudo make all -j4

    (看起來缺了什么文件,我暫時不知道...)

 

    我處理器4線程的所以寫j4,為了能效率高點,你8線程的也可以j8,雙線程的就直接make all吧...

    如果出現了“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/clark/Workspace/CUDA_Samples/NVIDIA_CUDA-8.0_Samples   

        sudo make all -j4 (4核)  

    完成后繼續向終端輸入 

cd bin/x86_64/linux/release
./deviceQuery

    出現如下圖所示,表示成功安裝cuda

五.安裝OpenCV 3.2

    從OpenCV官網中下載opencv3.2.0版本到本地。解壓到 /home/用戶名/Compile/opencv-3.2.0/

    先安裝OpenCV的依賴

sudo apt-get -qq remove ffmpeg x264 libx264-dev  
sudo apt-get -y install build-essential cmake pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev   
sudo apt-get -y install libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev  
sudo apt-get -y install libv4l-dev libtbb-dev libgtk2.0-dev libfaac-dev libmp3lame-dev unzip  
sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev ibvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg  

    在本地編譯安裝OpenCV3.2.0

cd /home/用戶名/Compile/opencv-3.2.0/
mkdir build  
cd build
cmake -D CMAKE_BUILD_TYPE=Release ..  
make -j4  
sudo make install

    默認安裝, 頭文件會在/usr/local/include中, so文件在/usr/local/lib中。

六.安裝Caffe

    先安裝Caffe的依賴

sudo apt-get install build-essential #必要的編譯工具依賴  
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler  
sudo apt-get install --no-install-recommends libboost-all-dev  
sudo apt-get install libatlas-base-dev  
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

    安裝pip和easy_install

sudo apt-get install python-pip  
sudo apt-get install python-setuptools 

    從github上下載caffe源碼(默認下載位置是你當前命令行所在的位置,默認為/home)

sudo apt-get install git  
git clone https://github.com/BVLC/caffe.git  

    下載完放到/home/用戶名/Compile/caffe/python

    安裝Python的依賴

cd /home/用戶名/Compile/caffe/python  
sudo su  
for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done  
exit

    caffe的依賴安裝完畢后,開始編譯caffe源碼

cd /home/cty/Compile/caffe-master/  
cp Makefile.config.example Makefile.config

    把example的內容抄到config文件后,我們打開Makefile.config這個文件修改它的內容。

      USE_CUDNN := 1                  #取消該句注釋    
      OPENCV_VERSION := 3         #取消該句注釋  
      PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include    
      WITH_PYTHON_LAYER := 1   #取消注釋    
      INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/include/opencv /usr/local/include/opencv2 /usr/include/hdf5/serial   
      LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

    終端輸入:

cd /usr/lib/x86_64-linux-gnu  
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so  
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so  
sudo ldconfig

    然后

cd /home/用戶名/Compile/caffe/
make all -j4

    出現了錯誤如圖

    原因是我們沒有安裝protobuf.git

    所以我們先

make clean

    然后去github下載安裝protobuf.git,放在哪你知道的

git clone https://github.com/google/protobuf.git

    然后

cd /home/cty/Compile/protobuf
chmod +x autogen.sh
./autogen.sh

    然后又出錯了,autoreconf:not found

    好我們再安裝automake工具

sudo apt-get install autoconf automake libtool

 

    這回我們可以回到make all -j4了

cd /home/用戶名/Compile/caffe
make all -j4

    然后

make runtest -j4
make pycaffe -j4

    又出錯,爆炸,喝咖啡那么難嗎,我可能看的是“假教程”,用的是假"Linux",輸入的是"假命令”...

    fatal error: numpy/arrayobject.h:沒有那個文件或目錄,原因沒裝python-numpy

sudo apt-get install python-numpy

之后再make pycaffe -j4就好了

然后

make distribute

接下來

cd /home/用戶名/Compile/caffe/python
python
>>> import caffe

沒報錯,說明caffe裝好了。

七.測試例子:

先下載mnist數據集

cd /home/用戶名/Compile/caffe/data/mnist/  

./get_mnist.sh

不建議你用這個命令下載,因為網絡問題,根本下不下來...

所以我們到這個網站http://yann.lecun.com/exdb/mnist/

去下載這四個文件

train-images-idx3-ubyte.gz:  training set images (9912422 bytes) 
train-labels-idx1-ubyte.gz:  training set labels (28881 bytes) 
t10k-images-idx3-ubyte.gz:   test set images (1648877 bytes) 
t10k-labels-idx1-ubyte.gz:   test set labels (4542 bytes)

速度慢的話回Windows用迅雷吧...

然后解壓他們。

解壓后的四個文件放到/home/用戶名/Compile/caffe/data/mnist/

然后把這四個文件每個文件名字中的.改成-

要不一會兒又打不開找不到文件了...

接下來,mnist數據格式轉換

cd /home/用戶名/Compile/caffe
./examples/mnist/create_mnist.sh

此時在/caffe/examples/mnist/目錄下生成mnist_test_lmdb和mnist_train_lmdb兩個LMDB格式的訓練集和測試集

開始訓練mnist

cd /home/用戶名/Compile/caffe  
./examples/mnist/train_lenet.sh

    本篇結束。

 

本人接觸Linux的時間不長,作為小白,文中內容難免出錯,如果您發現本文內容有誤,請評論指出,我會盡快修改並深表感激。

同時,感謝以下文章的作者或轉載者,是他們教會了我整個的安裝過程。

 

參考:

微星GS73VR 6RF + Linux Mint 18 + GTX1060 + CUDA8.0 + OpenCV3.0.0 + Caffe安裝筆記

ubuntu16.04+gtx1060+cuda8.0+caffe安裝、測試經歷

linuxmint 安裝nvidia 顯卡驅動

Ubuntu 14.04 安裝 Nvidia 私有驅動並進行雙顯卡切換

喝一杯咖啡真難——我的caffe在ubuntu14.04下安裝配置,改錯,換包記錄

編譯 pycaffe時報錯:fatal error: numpy/arrayobject.h沒有那個文件或目錄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM