2016.06.10 update cuda 7.5 and cudnn v5
2015.10.23更新:修改了一些地方,身邊很多人按這個流程安裝,完全可以安裝
折騰了兩個星期的caffe,windows和ubuntu下都安裝成功了。其中windows的安裝配置參考官網推薦的那個blog,后來發現那個版本的caffe太老,和現在的不兼容,一些關鍵字都不一樣,果斷回到Linux下。這里記錄一下我的安裝配置流程。
電腦配置:
ubuntu 14.04?64bit
8G 內存
GTX650顯卡
軟件版本:
CUDA 7.0
caffe 當天從github下載的版本
安裝ubuntu的過程省略,建議安裝后關閉自動更新,上一次安裝caffe后用的很好,結果有一天晚上沒關電腦,自己半夜更新了顯卡驅動,然后...
caffe的安裝流程主要參考這個blog,稍有改動:Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明
Caffe 安裝配置步驟:
1, 安裝開發所需的依賴包
[plain] view plaincopyprint?
sudo?apt-get?install?build-essential??#?basic?requirement??sudo?apt-get?install?libprotobuf-dev?libleveldb-dev?libsnappy-dev?libopencv-dev?libboost-all-dev?libhdf5-serial-dev?libgflags-dev?libgoogle-glog-dev?liblmdb-dev?protobuf-compiler?#required?by?caffe??
Before install CUDA 7.5, you need update gcc 4.8+ to gcc 4.9+
reference:update gcc/g++
2,安裝CUDA 7.5
驗證過程省略,按照官方文檔自己操作吧(遇到問題首先要看官方文檔啊,血淚教訓)
安裝CUDA有兩種方法,
離線.run安裝:從官網下載對應版本的.run安裝包安裝,安裝過程挺復雜,嘗試過幾次沒成功,遂放棄。
在離線.deb安裝:deb安裝分離線和在線,我都嘗試過都安裝成功了,官網下載地址
安裝之前請先進行md5校驗,確保下載的安裝包完整
切換到下載的deb所在目錄,執行下邊的命令
[plain] view plaincopyprint?
sudo?dpkg?-i?cuda-repo-<distro>_<version>_<architecture>.deb??sudo?apt-get?update??sudo?apt-get?install?cuda??
然后重啟電腦:sudo reboot
NOTE:裝不成功卸了多來幾遍,總會成的
3,安裝cuDNN
下載cudnn-7.5-linux-x64-v5.0-ga.tgz,官網申請不到,網上自己找的,就不給地址了。
[plain] view plaincopyprint?
tar?-zxvf?cudnn-7.5-linux-x64-v5.0-ga.tgz??cd?cuda??sudo?cp?lib/lib*?/usr/local/cuda/lib64/??sudo?cp?include/cudnn.h?/usr/local/cuda/include/??
更新軟連接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.0.5
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
4,設置環境變量
在/etc/profile中添加CUDA環境變量
sudo gedit /etc/profile
[plain] view plaincopyprint?
PATH=/usr/local/cuda/bin:$PATH??export?PATH??
保存后, 執行下列命令, 使環境變量立即生效
[plain] view plaincopyprint?
source?/etc/profile??
同時需要添加lib庫路徑: 在 /etc/ld.so.conf.d/加入文件 cuda.conf, 內容如下
[plain] view plaincopyprint?
/usr/local/cuda/lib64??
保存后,執行下列命令使之立刻生效
[plain] view plaincopyprint?
sudo?ldconfig??
5,安裝CUDA SAMPLE
進入/usr/local/cuda/samples, 執行下列命令來build samples
[plain] view plaincopyprint?
sudo?make?all?-j4??
整個過程大概10分鐘左右, 全部編譯完成后, 進入 samples/bin/x86_64/linux/release, 運行deviceQuery
[plain] view plaincopyprint?
./deviceQuery??
如果出現顯卡信息, 則驅動及顯卡安裝成功:
[plain] view plaincopyprint?
./deviceQuery?Starting...?????CUDA?Device?Query?(Runtime?API)?version?(CUDART?static?linking)????Detected?1?CUDA?Capable?device(s)????Device?0:?"GeForce?GTX?670"????CUDA?Driver?Version?/?Runtime?Version??????????6.5?/?6.5????CUDA?Capability?Major/Minor?version?number:????3.0????Total?amount?of?global?memory:?????????????????4095?MBytes?(4294246400?bytes)????(?7)?Multiprocessors,?(192)?CUDA?Cores/MP:?????1344?CUDA?Cores????GPU?Clock?rate:????????????????????????????????1098?MHz?(1.10?GHz)????Memory?Clock?rate:?????????????????????????????3105?Mhz????Memory?Bus?Width:??????????????????????????????256-bit????L2?Cache?Size:?????????????????????????????????524288?bytes????Maximum?Texture?Dimension?Size?(x,y,z)?????????1D=(65536),?2D=(65536,?65536),?3D=(4096,?4096,?4096)????Maximum?Layered?1D?Texture?Size,?(num)?layers??1D=(16384),?2048?layers????Maximum?Layered?2D?Texture?Size,?(num)?layers??2D=(16384,?16384),?2048?layers????Total?amount?of?constant?memory:???????????????65536?bytes????Total?amount?of?shared?memory?per?block:???????49152?bytes????Total?number?of?registers?available?per?block:?65536????Warp?size:?????????????????????????????????????32????Maximum?number?of?threads?per?multiprocessor:??2048????Maximum?number?of?threads?per?block:???????????1024????Max?dimension?size?of?a?thread?block?(x,y,z):?(1024,?1024,?64)????Max?dimension?size?of?a?grid?size????(x,y,z):?(2147483647,?65535,?65535)????Maximum?memory?pitch:??????????????????????????2147483647?bytes????Texture?alignment:?????????????????????????????512?bytes????Concurrent?copy?and?kernel?execution:??????????Yes?with?1?copy?engine(s)????Run?time?limit?on?kernels:?????????????????????Yes????Integrated?GPU?sharing?Host?Memory:????????????No????Support?host?page-locked?memory?mapping:???????Yes????Alignment?requirement?for?Surfaces:????????????Yes????Device?has?ECC?support:????????????????????????Disabled????Device?supports?Unified?Addressing?(UVA):??????Yes????Device?PCI?Bus?ID?/?PCI?location?ID:???????????1?/?0????Compute?Mode:???????<?Default?(multiple?host?threads?can?use?::cudaSetDevice()?with?device?simultaneously)?>????deviceQuery,?CUDA?Driver?=?CUDART,?CUDA?Driver?Version?=?6.5,?CUDA?Runtime?Version?=?6.5,?NumDevs?=?1,?Device0?=?GeForce?GTX?670??Result?=?PASS??
NOTE:上邊的顯卡信息是從別的地方拷過來的,我的GTX650顯卡不是這些信息,如果沒有這些信息,那肯定是安裝不成功,找原因吧!
6,安裝Intel MKL 或Atlas
我沒有MKL,裝的Atlas
安裝命令:
[plain] view plaincopyprint?
sudo?apt-get?install?libatlas-base-dev??
7,安裝OpenCV
我安裝的是2.4.10
1)下載安裝腳本
2)進入目錄 Install-OpenCV/Ubuntu/2.4
3)執行腳本
[plain] view plaincopyprint?
sudo?sh?./opencv2_4_10.sh???
8,安裝Caffe所需要的Python環境
按caffe官網的推薦使用Anaconda
去Anaconda官網下載安裝包
切換到文件所在目錄,執行
[plain] view plaincopyprint?
bash?Anaconda-2.3.0-Linux-x86_64.s<em>h</em>??
NOTE:后邊的文件名按自己下的版本號更改,整個安裝過程請選擇默認
8.1,添加Anaconda Library Path
在/etc/ld.so.conf最后加入以下路徑,并沒有出現重啟不能進入界面的問題(NOTE:下邊的username要替換)
[plain] view plaincopyprint?
/home/username/anaconda/lib??
在~/.bashrc最后添加下邊路徑
[plain] view plaincopyprint?
export?LD_LIBRARY_PATH="/home/username/anaconda/lib:$LD_LIBRARY_PATH"??
9,安裝python依賴庫 去caffe的github下載caffe源碼包
進入caffe-master下的python目錄
執行如下命令
[plain] view plaincopyprint?
for?req?in?$(cat?requirements.txt);?do?pip?install?$req;?done??
10,編譯Caffe
終于來到這里了
進入caffe-master目錄,復制一份Makefile.config.examples
[plain] view plaincopyprint?
cp?Makefile.config.example?Makefile.config??
修改其中的一些路徑,如果前邊和我說的一致,都選默認路徑的話,那么配置文件應該張這個樣子
[plain] view plaincopyprint?
##?Refer?to?http://caffe.berkeleyvision.org/installation.html??#?Contributions?simplifying?and?improving?our?build?system?are?welcome!????#?cuDNN?acceleration?switch?(uncomment?to?build?with?cuDNN).??USE_CUDNN?:=?1????#?CPU-only?switch?(uncomment?to?build?without?GPU?support).??#?CPU_ONLY?:=?1????#?To?customize?your?choice?of?compiler,?uncomment?and?set?the?following.??#?N.B.?the?default?for?Linux?is?g++?and?the?default?for?OSX?is?clang++??#?CUSTOM_CXX?:=?g++????#?CUDA?directory?contains?bin/?and?lib/?directories?that?we?need.??CUDA_DIR?:=?/usr/local/cuda??#?On?Ubuntu?14.04,?if?cuda?tools?are?installed?via??#?"sudo?apt-get?install?nvidia-cuda-toolkit"?then?use?this?instead:??#?CUDA_DIR?:=?/usr????#?CUDA?architecture?setting:?going?with?all?of?them.??#?For?CUDA?<?6.0,?comment?the?*_50?lines?for?compatibility.??CUDA_ARCH?:=?-gencode?arch=compute_20,code=sm_20?\??????????-gencode?arch=compute_20,code=sm_21?\??????????-gencode?arch=compute_30,code=sm_30?\??????????-gencode?arch=compute_35,code=sm_35?\??????????-gencode?arch=compute_50,code=sm_50?\??????????-gencode?arch=compute_50,code=compute_50????#?BLAS?choice:??#?atlas?for?ATLAS?(default)??#?mkl?for?MKL??#?open?for?OpenBlas??BLAS?:=?atlas??#?Custom?(MKL/ATLAS/OpenBLAS)?include?and?lib?directories.??#?Leave?commented?to?accept?the?defaults?for?your?choice?of?BLAS??#?(which?should?work)!??#?BLAS_INCLUDE?:=?/path/to/your/blas??#?BLAS_LIB?:=?/path/to/your/blas????#?Homebrew?puts?openblas?in?a?directory?that?is?not?on?the?standard?search?path??#?BLAS_INCLUDE?:=?$(shell?brew?--prefix?openblas)/include??#?BLAS_LIB?:=?$(shell?brew?--prefix?openblas)/lib????#?This?is?required?only?if?you?will?compile?the?matlab?interface.??#?MATLAB?directory?should?contain?the?mex?binary?in?/bin.??#?MATLAB_DIR?:=?/usr/local??#?MATLAB_DIR?:=?/Applications/MATLAB_R2012b.app????#?NOTE:?this?is?required?only?if?you?will?compile?the?python?interface.??#?We?need?to?be?able?to?find?Python.h?and?numpy/arrayobject.h.??#PYTHON_INCLUDE?:=?/usr/include/python2.7?\??????????/usr/lib/python2.7/dist-packages/numpy/core/include??#?Anaconda?Python?distribution?is?quite?popular.?Include?path:??#?Verify?anaconda?location,?sometimes?it's?in?root.???ANACONDA_HOME?:=?$(HOME)/anaconda???PYTHON_INCLUDE?:=?$(ANACONDA_HOME)/include?\???????????$(ANACONDA_HOME)/include/python2.7?\???????????$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include?\????#?We?need?to?be?able?to?find?libpythonX.X.so?or?.dylib.??#PYTHON_LIB?:=?/usr/lib??PYTHON_LIB?:=?$(ANACONDA_HOME)/lib????#?Homebrew?installs?numpy?in?a?non?standard?path?(keg?only)??#?PYTHON_INCLUDE?+=?$(dir?$(shell?python?-c?'import?numpy.core;?print(numpy.core.__file__)'))/include??#?PYTHON_LIB?+=?$(shell?brew?--prefix?numpy)/lib????#?Uncomment?to?support?layers?written?in?Python?(will?link?against?Python?libs)??#?WITH_PYTHON_LAYER?:=?1????#?Whatever?else?you?find?you?need?goes?here.??INCLUDE_DIRS?:=?$(PYTHON_INCLUDE)?/usr/local/include??LIBRARY_DIRS?:=?$(PYTHON_LIB)?/usr/local/lib?/usr/lib????#?If?Homebrew?is?installed?at?a?non?standard?location?(for?example?your?home?directory)?and?you?use?it?for?general?dependencies??#?INCLUDE_DIRS?+=?$(shell?brew?--prefix)/include??#?LIBRARY_DIRS?+=?$(shell?brew?--prefix)/lib????#?Uncomment?to?use?`pkg-config`?to?specify?OpenCV?library?paths.??#?(Usually?not?necessary?--?OpenCV?libraries?are?normally?installed?in?one?of?the?above?$LIBRARY_DIRS.)??#?USE_PKG_CONFIG?:=?1????BUILD_DIR?:=?build??DISTRIBUTE_DIR?:=?distribute????#?Uncomment?for?debugging.?Does?not?work?on?OSX?due?to?https://github.com/BVLC/caffe/issues/171??#?DEBUG?:=?1????#?The?ID?of?the?GPU?that?'make?runtest'?will?use?to?run?unit?tests.??TEST_GPUID?:=?0????#?enable?pretty?build?(comment?to?see?full?commands)??Q??=?@??
保存退出
編譯
[plain] view plaincopyprint?
make?all?-j4??make?test??make?runtest??
11,編譯Python wrapper
[plain] view plaincopyprint?
make??pycaffe??
到這里就基本結束了,跑個自帶的例子測試一下吧!
NOTE:以上是我在自己PC上的安裝步驟,因軟件版本不同,硬件環境不同,按照以上方式可能出現錯誤,請耐心查找錯誤,歡迎留言
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。