1. 程式人生 > >坑爹的Caffe + Ubuntu14.04 + NVIDIA 環境配置

坑爹的Caffe + Ubuntu14.04 + NVIDIA 環境配置

換了新電腦,整個人喜氣洋洋,然後就屁顛屁顛地開始配置caffe的使用環境。 可是!!!配置這個坑爹的caffe環境讓我重灌系統N次加上重灌cudaN次,後來發現有好多都是很瑣碎的注意事項,好多人都沒有提到過,我就假裝偉大一下,發到部落格上,與大家共勉。 首先安裝ubuntu14.04,一般根據指示安裝下去就可以了。, 但是有一點要注意!!!!! 千萬不要更新系統!!!!! 千萬不要手賤!!!! 千萬不要更新那個三百多M的更新包!!! 理由是更新會把原有的nvidia的驅動覆蓋掉,還會改掉ubuntu的核心,導致cuda使用不了,驅動的mismatch 提前做好的準備包括: ubuntu 系統下面下載 Nvidia 官網上面的 run 檔案。 && 不要單獨裝 Nvidia 驅動再裝 cuda 驅動,應該直接下載 cuda 驅動(cuda 驅動包括 Nvidia 驅動,Toolkit  samples) 在ubuntu下面裝caffe,配合NVIDIA的顯示卡,需要依賴以下幾個庫 1 Cuda(目前是6.5.14) 2 OpenCV Boost  Atlas等等 其中Cuda的安裝比較麻煩,有很多瑣碎的注意事項。 具體步驟如下 1 安裝ubuntu14.04
2 配置一下網路,使得ubuntu能夠連線Internet
3 update一下apt-get
sudo apt-get update
若出現一些update無法下載,一般是因為天朝的牆,可以在系統設定那裡找到源伺服器,切換一下看看哪個可以用。有時候server for China是會被牆一部分的。。 4 安裝一個vim方便後續一個操作
sudo apt-get install vim
5 安裝一些必要的庫:
     sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev  libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
6 禁掉nouveau: 在/etc/modprobe.d/blacklist.conf最後一行加上 blacklist nouveau 禁了nouveau之後有時要重啟下電腦才生效 7 關閉GUI:      sudo service lightdm stop 8 更改CUDA Toolkit執行許可權:      sudo chmod +x cuda-6.5.14_linux_64.run  9 執行CUDA安裝檔案 (注意!!!!!假如是用集顯做未顯示而用獨顯做計算的話,必須要加上一句 no-opengl-libs, 否則會覆蓋到顯示檔案,導致無法在顯示器顯示) (而個人比較推薦的做法,正是用集顯輸出,用獨顯計算)  sudo ./cuda-6.5.14_linux_64.run  --no-opengl-libs (If the target system includes both an integrated GPU (iGPU) and a discrete GPU
(dGPU), the --no-opengl-libs option must be used. Otherwise, the openGL library used
by the graphics driver of the iGPU will be overwritten and the GUI will not work. In
addition, the xorg.conf update at the end of the installation must be declined.) 10 切換回GUI:      sudo service lightdm start 11 成功切回GUI後新增環境變數PATH: $ sudo gedit /etc/profile  在/etc/profile檔案最後新增  export  PATH=/usr/local/cuda-6.5/bin:$PATH 然後source一下,使之生效 $ source /etc/profile     可以使用 $ echo $PATH
來檢測是否成功新增環境變數 再然後就是新增共享庫變數。
在 /etc/ld.so.conf.d/加入檔案 cuda.conf, 內容如下 /usr/local/cuda-6.5/lib64 執行下列命令使之立刻生效 sudo ldconfig 12 檢驗:  $ sudo nvidia-settings  to check whether nvidia drivers are installed $ glxinfo | grep rendering 如果出現 direct rendering: Yes 則表明顯示卡正在執行 $ sudo ldconfig v | grep cuda 如果安裝成功,會出現類似到資訊 /usr/local/cuda-5.0/lib: libcudart.so.5.0 -> libcudart.so.5.0.35
 libicudata.so.48 -> libicudata.so.48.1.1  libcuda.so.1 -> libcuda.so.304.54 這樣子的資訊(具體版本具體分析) 13 測試一下cuda的一些sample 
cd到cuda sample的路徑 一般是Home下面有一個NVDIA。。。(具體忘記了,,有點長的) 然後cd進去,make一下, $ make j8 之後生成了一個bin,在一路cd進去,直到有個目錄有很多程式檔案。 ./deviceQuery 如果看到一大串正常的狀態顯示,就證明cuda裝好了 例如輸出 Pass 等資訊,則說明成功安裝。 把CUDA這個大塊頭搞定之後,剩下的就是一些命令列就可以安裝好的東西了 1.(optional)cuDNN安裝(加速用): 將cudnn.h複製到usr/include,將libcudnn.so.6.5.18複製到usr/lib sudo ln -s libcudnn.so.6.5.18  libcudnn.6.5 sudo ln -s libcudnn.so.6.5   
libcudnn.so

在config中加USE_CUDNN := 1 flag set in your Makefile.config. 2.BLAS如MKL安裝:MKL找不到,用ATLAS代替:sudo apt-get install libatlas-base-dev 3.安裝依賴庫:包含了boost opencv leveldb protobuf  等 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler 接下來就可以開始真正地編譯caffe了 不對,首先還要獲取git上面的程式碼 如果是新系統,估計要先 $sudo apt-get install git 然後就是正常的git的使用,把caffe從git上用 git clone拉取到某個路徑 然後再開始編譯 cp Makefile.config.example  Mkefile.config make all -j8 make test -j8 make runtest -j8 (有時候,如果環境變數和共享庫那一步沒做好,runtest的時候會報錯,是cudart找不到檔案,各種查都不知道為什麼,最後用了個部落格的做法) (sudo ldconfig /usr/local/cuda-6.5/bin) 實驗跑一個MNIST 下載MNIST資料庫,放在caffe/data/mnist下 1. 資料預處理 cd $CAFFE_ROOT/data/mnist
./get_mnist.sh               
2.重建LDB檔案 cd $CAFFE_ROOT/examples/mnist
./create_mnist.sh     3.訓練mnist      cd $CAFFE_ROOT/examples/mnist
./train_lenet.sh mnist裡面的路徑基本都是錯的。。把train_lenet.sh, solver, train_test等幾個指令碼開啟看看,把路徑改對就可以了。 GPU:5分鐘跑完,準確率在99%左右