本次安裝caffe是在新的筆記本上,感覺與之前在台式機上的安裝還是有一定的區別。加之是在新的Ubuntu16.04系統上安裝的,可參考教程較少。而且其中添加了不少庫,修改的一些錯誤,難免會有遺漏。如果發現本文未提及錯誤,歡迎一起討論學習。另外,看到有的人說安裝了半個多月,多次重裝,希望有問題還是先把問題查清楚,不要盲目重裝系統;其次,安裝的時候最好記錄自己安裝的過程和內容,避免遺漏和重復,出問題了也可以與別人的教程相對比。
首先介紹安裝條件和軟件准備:
- 聯想筆記本電腦Y700-15ISK,雙顯卡nvidia的GTX960M,內存16G
- Ubuntu16.04系統,選擇該系統主要是能夠完美支持新筆記本的所有硬件
- cuda7.5安裝與配置,cudnn5.0安裝與配置
- BLAS安裝與配置
- OpenCV3.1.0安裝與配置
- Python安裝與配置,選擇的是anaconda2-4.0,即python2.7
- matlab2014a下載與安裝,下載鏈接 http://pan.baidu.com/s/1hsucG3E 提取密碼 nvb6
- caffe官網下載與安裝
參考博客與文章:
Ubuntu 16.04系統cuda7.5安裝教程:https://www.pugetsystems.com/labs/hpc/NVIDIA-CUDA-with-Ubuntu-16-04-beta-on-a-laptop-if-you-just-cannot-wait-775/
caffe官網教程:http://caffe.berkeleyvision.org/installation.html
Ubuntu 16.04系統cuda7.5配置與caffe安裝教程:
Ubuntu 14.04下Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明:
這一部分接觸過ubuntu系統的應該比較熟悉,網上也有很多可以參考的例子,就不再贅述。另外,我是在一個SSD固態硬盤上單獨安裝的系統,之前在台式機上也是這麼實現的,感覺這樣和windows雙系統故障會少些。
Ubuntu 16.04 U盤安裝圖文教程
安裝完ubuntu16.04系統之後,直接更新系統並重啟。在多顯卡的筆記本中,可能需要在BIOS系統裡選擇”自由選擇顯卡“,這樣系統才能識別nvidia的顯卡,並進行驅動更新。我這裡是運用ppa更新的最新驅動,使用起來能夠得到挺好的體驗,並能夠實現雙顯卡的自由切換。
首先,通過快捷鍵Ctrl+Alt+T打開終端,然後加入官方ppa源:
$ sudo add-apt-repository ppa:graphics-drivers/ppa
需要輸入用戶密碼,並確認鏈接源。之後刷新軟件庫並安裝最新的驅動,在命令行輸入:
$ sudo apt-get update
$ sudo apt-get install nvidia-367 nvidia-settings nvidia-prime
由於聯想筆記本的UEFI保護,會拒絕第三方的驅動,因此需要關閉該保護,關閉之後重啟能夠正常驅動nvidia,並能夠進行雙顯卡的切換。
安裝完成之後,可以通過系查看系統屬性,看是否是nvidia的顯卡。另外,也可以通過下面命令看是否安裝成功:
$ nvidia-settings
如果出現的nvidia設置界面不是這樣,驅動可能還是有問題。此處我出現的錯誤主要是是UEFI保護沒注意到,導致重復安裝了幾遍。
首先下載cuda7.5.run文件,如下圖所示:
可以看到當前cuda7.5還不支持ubuntu16.04。參考別人的教程,主要是gcc版本的問題,實際是可以編譯通過的。下載完15.04版本的run文件之後,一定要進行進行md5檢驗,校驗碼不對會出現安裝之後重啟不能進入界面的問題。
下載完成之後,cd進入文件所在目錄,在終端進行如下操作
$ chmod 777 cuda_7.5.18_linux.run #獲取文件權限
$ sudo ./cuda_7.5.18_linux.run --override #執行文件安裝
注意後面的override是必須的,這樣才能保證安裝的過程中,不會出現編譯器不支持的錯誤。另外,在選擇條件的過程中,一定不要再次安裝nvidia驅動,雖然cuda.run文件本身是包含又nvidia驅動的,但是本處直接安裝會出錯。下圖是安裝.run文件的配置:
安裝完成之後會出現
============ Summary ============
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-7.5
Samples: Installed in /usr/local/cuda-7.5
之後更換cudnn動態庫,可以獲得更快的計算效率。下載完cudnn5.0之後進行解壓,cd進入cudnn5.0解壓之後的include目錄,在命令行進行如下操作:
$ sudo cp cudnn.h /usr/local/cuda/include/ #復制頭文件
再將lib64目錄下的動態文件進行復制和鏈接:
$ sudo cp lib* /usr/local/cuda/lib64/ #復制動態鏈接庫
$ cd /usr/local/cuda/lib64/
$ sudo rm -rf libcudnn.so libcudnn.so.5 #刪除原有動態文件
$ sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5
$ sudo ln -s libcudnn.so.5 libcudnn.so
然後設置環境變量和動態鏈接庫,在命令行輸入:
$ sudo gedit /etc/profile
在打開的文件末尾加入:
export PATH = /usr/local/cuda/bin:$PATH
保存之後,創建鏈接文件:
$ sudo vim /etc/ld.so.conf.d/cuda.conf
按下鍵盤i進行編輯,輸入鏈接庫位置:
/usr/local/cuda/lib64
然後按esc,輸入:wq保存退出。並在終端輸入:
$ sudo ldconfig
使鏈接立即生效。
在安裝cuda.run文件時,我們已經選擇安裝了samples用例,還需要編譯。因為當前的cuda還不支持gcc5.0以上的版本,在編譯之前,我們需要修改配置文件,否則無法編譯成功。在終端輸入:
$ cd /usr/local/cuda-7.5/include
$ cp host_config.h host_config.h.bak #備份編譯頭文件
$ sudo gedit host_config.h
然後在115行修改編譯其支持的版本:
# if GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9)
# error – unsupported GNU version! gcc versions later than 4.9 are not supported!
# endif /* GNUC > 4 || (GNUC == 4 && GNUC_MINOR > 9) */
將if後面連續兩個4改為5即可,然後進入用例文件進行編譯:
$ cd /usr/local/cuda/samples
$ sudo make all -j4
$ cd /usr/local/cuda/samples/bin/x86_64/linux/release
$ sudo ./deviceQuery
成功之後會出現下列信息:
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: “GeForce GTX 960M”
CUDA Driver Version / Runtime Version 8.0 / 7.5
CUDA Capability Major/Minor version number: 5.0
Total amount of global memory: 4044 MBytes (4240375808 bytes)
( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores
GPU Max Clock rate: 1176 MHz (1.18 GHz)
Memory Clock rate: 2505 Mhz
Memory Bus Width: 128-bit
L2 Cache Size: 2097152 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 Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 960M
Result = PASS
通過上述用例測試,就表明顯卡驅動安裝和cuda安裝完全成功了。
BLAS(基礎線性代數集合)是一個應用程序接口的標准。caffe官網上推薦了三種實現:ATLAS, MKL, or OpenBLAS。其中atlas可以直接通過命令行安裝,在此不再介紹。我采用的是intel的mkl庫,首先,通過上面鏈接在intel官網申請學生版的Parallel Studio XE Cluster Edition ,下載完成之後cd到下載目錄進行安裝:
$ tar zxvf parallel_studio_xe_2016_update3.tgz #解壓下載文件
$ chmod 777 parallel_studio_xe_2016_update3 -R #獲取文件權限
$ cd parallel_studio_xe_2016_update3/
$ sudo ./install_GUI.sh
安裝完成之後,進行相關文件的鏈接:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
在打開的文件中添加庫文件:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
添加完成之後,編譯鏈接時lib文件立即生效:
$ sudo ldconfig
首先安裝必要的庫,有的依賴庫我是已經安裝過的,具體安裝的先後關系已經忘了。如果出現有些依賴關系不滿足的錯誤,可以再安裝庫:
$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev # 必要的基本庫
根據上面的鏈接下載OpenCV3.1.0版本,並進行解壓,解壓之後進入安裝文件目錄:
$ cd opencv-3.1.0
$ mkdir build #創建build文件夾
$ cd opencv-3.1.0/build
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
$ #生成的文件在bulid中,而生成的CMakeList.txt文件在上一級文件中
在configure過程中過程中,可能會出現下面的錯誤:
– ICV: Downloading ippicv_linux_20151201.tgz…
在直接下載該文件的過程中,會因為超時而失敗,可以到幫客之家1號服務器下載,
幫客之家1號FTP服務器下載
------------------------------------------分割線------------------------------------------
FTP地址:ftp://ftp1.bkjia.com
用戶名:ftp1.bkjia.com
密碼:xxxxxx
在 2016年LinuxIDC.com\7月\Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝\
下載方法見
------------------------------------------分割線------------------------------------------
並替換掉 opencv-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件,然後再次cmake即可。生成編譯文件之後,在opencv-3.1.0/build目錄下,終端輸入:
$ make -j4 #四核運算
$ sudo make install
此時,可能會出現另外一個錯誤:
/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n;
這也是因為ubuntu16.04的個個g++版本太高的造成的,只需要在opencv-3.1.0目錄下的CMakeList.txt 文件的開頭加入:
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)
添加之後再次進行編譯鏈接即可。
python的安裝有兩種方式:一種是系統自帶的python,只需再安裝相應的庫即可;第二種是直接安裝anaconda,很多相應的庫已經包含了。第一種直接安裝庫文件比較簡單,不需要修改相應的包含路徑和庫文件。本人因為習慣了anaconda,因此選擇的是anaconda linux64 2.7版本(3.5版本我也試過,裝caffe的時候可能會比較麻煩)。下載完成之後,最好也要進行md5sum的檢驗。完成之後,cd進入下載文件所在的目錄,在命令行輸入:
$ bash Anaconda2-4.0.0-Linux-x86_64.sh
安裝完成之後,在.bashrc中添加Anaconda的庫文件,一定不要在/etc/profile文件中添加。因為anaconda有幾個鏈接庫和系統鏈接庫文件類似,如果添加到/etc/profile文件中,會出現電腦重啟之後不能進入界面的情況
$ sudo gedit ~/.bashrc
然後加入庫文件:
export PATH=”/home/lyndon/anaconda2/bin:PATH”exportLDLIBRARYPATH=”/home/lyndon/anaconda2/lib: LD_LIBRARY_PATH”
重啟電腦之後,在命令行輸入:
$ ipython
就可以看到python的版本,並進行運用了。
在網盤上下載安裝包及Crack破解文件之後,解壓兩個壓縮文件,並用Crack文件中的install替換matlab2014安裝目錄下/java/jar/下的install文件。然後在命令行cd進入matlab2014目錄,輸入:
$ sudo ./install
1、選擇“不聯網安裝”;
2、當出現密鑰時,隨意輸入20個數字12345-67890-12345-67890即可;
3、選擇自己需要安裝的工具;
4、需要激活時選擇不要聯網激活,運用Crack目錄下的“license_405329_R2014a.lic”文件作為激活文件
安裝完成之後,還要將Crack/linux目錄下的libmwservices.so文件拷貝到/usr/local/MATLAB/R2014a/bin/glnxa64。在Crack/linux目錄下的命令行輸入:
$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64
安裝完成之後,直接在命令行輸入matlab,就能過進行使用了
首先,安裝caffe必要的庫文件:protobuf, glog, gflags, hdf5
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
安裝之後,anaconda應用時還是會出現錯誤。此時用anaconda的安裝工具conda 再安裝必要文件就行了,我安裝了以下文件,後續ipython中就能夠用caffe了。
$ conda install libprotobuf-dev libleveldb-dev
安裝完成之後,進入caffe下載的文件目錄,在命令行輸入:
$ sudo cp Makefile.config.example Makefile.config # 備份配置文件
$ gedit Makefile.config # 修改編譯文件
配置文件主要修改:
USE_CUDNN := 1 #取消注釋,應用cudnn
OPENCV_VERSION := 3 #取消注釋,應用opencv3
BLAS := mkl #BLAS庫應用英特爾的mkl
ANACONDA_HOME := /home/lyndon/anaconda2
PYTHON_INCLUDE := (ANACONDAHOME)/include (ANACONDA_HOME)/include/python2.7 \
(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \ #選用anaconda作為python工具
INCLUDE_DIRS := (PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial #加入了 /usr/include/hdf5/serial,防止找不到hdf5.h錯誤
在make過程中可能 string.h ‘memcy’ was not declared in this scope的錯誤是,這也是因為ubuntu中gcc編譯器版本太新,解決方法是打開Makefile文件,搜索並修改:
改 NVCCFLAGS += -ccbin=(CXX)−Xcompiler−fPIC (COMMON_FLAGS)
為 NVCCFLAGS += -D_FORCE_INLINES -ccbin=(CXX)−Xcompiler−fPIC (COMMON_FLAGS)
還可能出現:/usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0’,解決改問題只需要添加庫文件路徑就行,在home目錄下的命令行輸入:
$ sudo gedit ~/.bashrc
在文件中加入:
export LD_LIBRARY_PATH=”/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH”
在命令行輸入:
sudo ldconfig #編譯立即生效,然後進入caffe所在目錄 cd /home/lyndon/lyndon/caffe/caffe-master
make all -j4 #編譯文件 make test -j4 #編譯測試文件
makeruntest make pycaffe
$ make matcaffe
如果編譯都沒報錯,則表示基本成功,能夠通過用例進行測試了。在運用anaconda和matlab時都需要修改相應的內容。
anaconda需要將caffe頭文件進行鏈接:
$ sudo gedit ~/.bashrc
export PYTHONPATH=”/home/lyndon/lyndon/caffe/caffe-master/python:$PYTHONPATH”
之後編譯鏈接庫,打開ipython,輸入:
$ import caffe
即可調用caffe相應模塊了。matlab模塊可以直接測試caffe/matlab/+caffe的用例。
至此,ubuntu16.0下的caffe等相關文件全部安裝完畢,其中問題最多的應該是雙顯卡問題中的nvidia驅動安裝的問題,很有可能會驅動不起來,最好弄明白自己出錯的原因,不然重裝系統也沒用。其次,在安裝anaconda過程中,有些教程建議把庫文件加入到/etc/profile環境中,這可能會造成電腦重啟沒法進入桌面的問題。其余的問題都應該不會造成電腦不能重啟不能進入桌面的情況,可以直接google和百度解決。
Ubuntu 14.04安裝Nvidia CUDA7.5並搭建Python Theano深度學習開發環境
Ubuntu下CUDA(含GPU卡驅動)安裝過程
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置說明
Ubuntu 14.04 安裝配置CUDA
Ubuntu 12.04配置NVIDIA CUDA5.5實錄
Ubuntu安裝Theano+CUDA
關於Ubuntu 12.04 下 CUDA5.5 的安裝請參看如下鏈接 Ubuntu 12.04 安裝 CUDA-5.5
http://xxxxxx/Linuxjc/1141038.html TechArticle