Caffe+UbuntuKylin14.04_X64+CUDA 6.5配置
??????? 在編譯Caffe的漫長過程中,經過了一個又一個坑,掉進去再爬出來,挺有趣的。對比原文有修改!
??????? LInux下配置安裝:(本文檔使用同一塊NVIDIA顯卡進行顯示與計算, 如分別使用不同的顯卡進行顯示和計算,則可能不適用。)
??????? 原文鏈接:http://blog.sciencenet.cn/blog-1583812-841855.html
??????? 參考鏈接:http://www.cnblogs.com/platero/p/3993877.html
??????? 官方文檔:http://caffe.berkeleyvision.org/installation.html
1. 安裝build-essentials
安裝開發所需要的一些基本包:
sudo apt-get install build-essential2. 安裝NVIDIA驅動 (3.4.0)
2.1 準備工作(2014-12-03更新)
在關閉桌面管理 lightdm 的情況下安裝驅動似乎可以實現Intel 核芯顯卡 來顯示 + NVIDIA 顯卡來計算。具體步驟如下:
1. 首先在BIOS設置里選擇用Intel顯卡來顯示或作為主要顯示設備
2. 進入Ubuntu, 按?ctrl+alt+F1 進入tty, 登錄tty后輸入如下命令
sudo service lightdm stop該命令會關閉lightdm。如果你使用 gdm或者其他的desktop manager, 請在安裝NVIDIA驅動前關閉他。
2.2 安裝驅動
輸入下列命令添加驅動源
sudo add-apt-repository ppa:xorg-edgers/ppa sudo apt-get update安裝340版驅動 (CUDA 6.5.14目前最高僅支持340版驅動, 343, 346版驅動暫不支持)
sudo apt-get install nvidia-340安裝完成后, 繼續安裝下列包 (否則在運行sample時會報錯)
sudo apt-get install nvidia-340-uvm安裝完成后 reboot.
3. 安裝CUDA 6.5
【點擊此鏈接】 下載CUDA 6.5.?
然后通過下列命令, 將下載得到的.run文件解壓成三個文件, 分別為
- CUDA安裝包:?cuda-linux64-rel-6.5.14-18749181.run
- NVIDIA驅動:?NVIDIA-Linux-x86_64-340.29.run
- SAMPLE包:?cuda-samples-linux-6.5.14-18745345.run
這里不安裝NVIDIA驅動
cuda6.5.run --extract=extract_path注意, 需要通過下面命令給所有.run文件可執行權限
chmod +x *.run?
3.1 安裝CUDA
通過下列命令安裝CUDA, 按照說明一步一步安裝至完成.
sudo ./cuda-linux64-rel-6.5.14-18749181.run3.1.1 添加環境變量
安裝完成后需要在/etc/profile中添加環境變量, 在文件最后添加:
PATH=/usr/local/cuda-6.5/bin:$PATH export PATH保存后, 執行下列命令, 使環境變量立即生效
source /etc/profile3.1.2 添加lib庫路徑
在 /etc/ld.so.conf.d/加入文件 cuda.conf, 內容如下
/usr/local/cuda-6.5/lib64執行下列命令使之立刻生效
sudo ldconfig3.2 安裝CUDA SAMPLE
首先安裝下列依賴包
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev然后用下述命令安裝sample文件
sudo ./cuda-samples-linux-6.5.14-18745345.run完成后編譯Sample文件, 整個過程大概10分鐘左右
cd /usr/local/cuda-6.5/samples sudo make?全部編譯完成后, 進入 samples/bin/x86_64/linux/release, sudo下運行deviceQuery
sudo ./deviceQuery如果出現下列顯卡信息, 則驅動及顯卡安裝成功:
./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.5CUDA Capability Major/Minor version number: 3.0Total amount of global memory: 4095 MBytes (4294246400 bytes)( 7) Multiprocessors, (192) CUDA Cores/MP: 1344 CUDA CoresGPU Clock rate: 1098 MHz (1.10 GHz)Memory Clock rate: 3105 MhzMemory Bus Width: 256-bitL2 Cache Size: 524288 bytesMaximum 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 layersMaximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layersTotal amount of constant memory: 65536 bytesTotal amount of shared memory per block: 49152 bytesTotal number of registers available per block: 65536Warp size: 32Maximum number of threads per multiprocessor: 2048Maximum number of threads per block: 1024Max 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 bytesTexture alignment: 512 bytesConcurrent copy and kernel execution: Yes with 1 copy engine(s)Run time limit on kernels: YesIntegrated GPU sharing Host Memory: NoSupport host page-locked memory mapping: YesAlignment requirement for Surfaces: YesDevice has ECC support: DisabledDevice supports Unified Addressing (UVA): YesDevice PCI Bus ID / PCI location ID: 1 / 0Compute 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?4. 安裝Intel MKL?
(如果沒有可以安裝OpenBLAS代替)解壓安裝包,下面有一個install_GUI.sh文件, 執行該文件,會出現圖形安裝界面,根據說明一步一步執行即可。
1.安裝 MKL
注意: 安裝完成后需要添加library路徑
sudo gedit /etc/ld.so.conf.d/intel_mkl.conf在文件中添加內容
/opt/intel/lib /opt/intel/mkl/lib/intel64 2.或者 安裝 OpenBLAS Install ATLAS/MKL/OpenBLAS if you haven't already. $ sudo apt-get install libopenblas-dev or $ sudo apt-get install libopenblas-base (這里我按照這樣的方法最終編譯出現cblas找不到的問題,應該是MKL安裝有問題,但是又沒辦法解決,最終我就按照官網的方法安裝了ATLAS:sudo apt-get install libatlas-base-dev一句話就搞定,雖然性能可能比不上MKL,但是將就著能用就行。)?注意把路徑替換成自己的安裝路徑。 編輯完后執行
sudo ldconfig5. 安裝OpenCV
這個盡量不要手動安裝, Github上有人已經寫好了完整的安裝腳本:
https://github.com/jayrambhia/Install-OpenCV下載該腳本,進入Ubuntu/2.4 目錄, 給所有shell腳本加上可執行權限
chmod +x *.sh然后安裝最新版本 (當前為2.4.9)
(http://code.opencv.org/issues/3814 ?下載?NCVPixelOperations.hpp?替換掉opencv2.4.9內的文件, 重新build。)
(注意,修改一下 文件里面的編譯選項,一直開 make j4, 導致CPU 總是熱導致停機,半途而廢。
應修改為 j2 ,或者去掉j選項)
腳本會自動安裝依賴項,下載安裝包,編譯并安裝OpenCV。
整個過程大概半小時左右。?
注意,中途可能會報錯(這一次真的報錯了!!!)
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization解決方法在此:http://code.opencv.org/issues/3814 ?下載?NCVPixelOperations.hpp?替換掉opencv2.4.9內的文件, 重新build。
6. 安裝其他依賴項
Ubuntu14.04用戶執行
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 其他版本用戶參考官方說明:http://caffe.berkeleyvision.org/installation.html7. 安裝Caffe所需要的Python環境
首先安裝pip和python-dev (系統默認有python環境的, 不過我們需要的使python-dev)
sudo apt-get install python-dev python-pip然后執行如下命令安裝編譯caffe python wrapper 所需要的額外包
for req in $(cat requirements.txt); do sudo pip install $req; done在執行上述命令時, 會報錯導致不能完全安裝所有需要的包。 可以按照官方建議安裝anaconda包。 在anaconda官網下載.sh文件,執行,最后添加bin目錄到環境變量即可。
(下面的添加沒用!一般不會用到)
建議安裝Anaconda包,這個包能獨立于系統自帶的python庫,并且提供大部分Caffe需要的科學運算Python庫。這里需要注意,在運行Caffe時,可能會報一些找不到libxxx.so的錯誤,而用 locate libxxx.so命令發現已經安裝在anaconda中,這時首先想到的是在/etc/ld.so.conf.d/ 下面將 $your_anaconda_path/lib 加入 LD_LIBRARY_PATH中。但是這樣做可能導致登出后無法再進入桌面!!!原因(猜測)可能是anaconda的lib中有些內容于系統自帶的lib產生沖突。
正確的做法是:為了不讓系統在啟動時就將anaconda/lib加入系統庫目錄,可以在用戶自己的~/.bashrc 中添加library path, 比如我就在最后添加了兩行
# add library path LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
開啟另一個終端后即生效,并且重啟后能夠順利加載lightdm, 進入桌面環境。
8. 安裝MATLAB
Caffe提供了MATLAB接口, 有需要用MATLAB的同學可以額外安裝MATLAB。
安裝教程請自行搜索。
一般過程是:
1.下載matlab iso鏡像文件(。搜索matlab unix版可得到,我下的是2010a)2. 打開終端,輸入
???? sudo mkdir /mnt/temp (建立臨時文件夾存放裝載后的iso文件);
???? sudo mount -o loop?/路徑/Matlab.R2010a.UNIX.ISO-TBE.iso? /mnt/temp (綠色路徑為matlab iso文件所在位置),回車后裝載鏡像文件完成。
3. 創建安裝matlab的文件夾(可以自己決定位置,但是要記住,后面會用到,eg: /usr/local/matlab)。
??? 創建命令: sudo mkdir /usr/local/matlab
4. 開始安裝sudo /mnt/temp/install 此時會彈出類似于windows下安裝的圖形化安裝界面,選擇不聯網安裝,
??? 會提示輸入序列號,序列號在 /mnt/temp/crack 文件夾下的install文件里,或者serials的TXT文件里。
?? 選擇安裝路徑為你在第三步創建的文件夾。安裝接近最后 會問你是不是需要激活,選擇不聯網激活,
??? 選擇 /mnt/temp/crack 文件夾下的lic_standalone.dat文件或者serials 里面的lic文件即可。
??? 激活成功!
5. 安裝完成后卸載鏡像文件。sudo umount /mnt/temp
************************ 至此安裝部分順利完成,接下來是如何啟動 *********************************
1. 在終端啟動,進入安裝matlab的路徑并進入bin文件夾,在終端輸入./matlab -desktop
??? 或者,linux桌面直接建立一個指向文件的快捷方式。
安裝完成后添加圖標?http://www.linuxidc.com/Linux/2011-01/31632.htm
sudo vi /usr/share/applications/Matlab.desktop輸入以下內容
[Desktop Entry] Type=Application Name=Matlab GenericName=Matlab 2010b Comment=Matlab:The Language of Technical Computing Exec=sh /usr/local/MATLAB/R2010b/bin/matlab -desktop Icon=/usr/local/MATLAB/Matlab.png Terminal=false Categories=Development;Matlab;(I use the R2013b patched package. First you should uncompress the .iso file. Then usesudo cp to copy the patch file)
9. 編譯Caffe
終于完成了所有環境的配置,可以愉快的編譯Caffe了! 進入caffe根目錄, 首先復制一份Makefile.config
cp Makefile.config.example Makefile.config然后修改里面的內容,主要需要修改的參數包括
CPU_ONLY 是否只使用CPU模式,沒有GPU沒安裝CUDA的同學可以打開這個選項
BLAS (使用intel mkl還是OpenBLAS)(由于我安裝了atlas,所以不需要修改默認設置!)
MATLAB_DIR 如果需要使用MATLAB wrapper的同學需要指定matlab的安裝路徑,
如我的路徑為 /usr/local/MATLAB/R2013b (注意該目錄下需要包含bin文件夾,bin文件夾里應該包含mex二進制程序)
DEBUG 是否使用debug模式,打開此選項則可以在eclipse或者NSight中debug程序
完成設置后, 開始編譯
make all -j4 make test make runtest注意 -j4 是指使用幾個線程來同時編譯, 可以加快速度, j后面的數字可以根據CPU core的個數來決定, 我的CPU使4核, 所以-j4.
9.1. 編譯Matlab wrapper
執行如下命令
make matcaffe然后就可以跑官方的matlab demo啦。
9.2. 編譯Python wrapper
make pycaffe然后基本就全部安裝完拉.
接下來大家盡情地跑demo吧~
----------------------------------
10. 安裝cuDNN
為了加速Caffe,可以安裝cuDNN,參見這篇文章:NVIDIA CuDNN 安裝說明
11.使用MNIST數據集進行測試
Caffe默認情況會安裝在CAFFEROOT,就是解壓到那個目錄,例如:
home/username/caffe-master,
所以下面的工作,默認已經切換到了該工作目錄。下面的工作主要是,用于測試Caffe是否工作正常,不做詳細評估。具體設置請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html 1. 數據預處理 可以用下載好的數據集,也可以重新下載,我網速快,這里就偷懶直接下載了,具體操作如下:$ cd data/mnist $ sudo sh ./get_mnist.sh 2. 重建LDB文件,就是處理二進制數據集為Caffe識別的數據集,以后所有的數據,包括jpe文件都要處理成這個格式 $ cd examples/mnist $ sudo sh ./create_mnist.sh (sudo sh examples/mnist/create_mnist.sh) 生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夾,這里包含了LDB格式的數據集 PS: 這里可能會遇到一個報錯信息: Creating lmdb... ./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found 解決方法是,直接到Caffe-master的根目錄執行,實際上新版的Caffe,基本上都得從根目錄執行。 ~/caffe-master$ sudo sh examples/mnist/create_mnist.sh
3. 訓練mnist $ sudo sh examples/mnist/train_lenet.sh至此,Caffe安裝的所有步驟完結,下面是一組簡單的數據對比,實驗來源于MNIST數據集,主要是考察一下不同系統下CPU和GPU的性能??梢钥吹矫黠@的差別了,雖然MNIST數據集很簡單,相信復雜得數據集,差別會更大,Ubuntu+GPU是唯一的選擇了。
????????????????
測試平臺:
i7-4770K/16G/GTX 770/CUDA 6.5MNIST Windows8.1 on CPU:620sMNIST Windows8.1 on GPU:190sMNIST Ubuntu 14.04 on CPU:270sMNIST Ubuntu 14.04 on GPU:160sMNIST Ubuntu 14.04 on GPU with cuDNN:35sCifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000) 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Caffe+UbuntuKylin14.04_X64+CUDA 6.5配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt5—嵌入停靠窗口QDockWidge
- 下一篇: 哈啰出行怎么取消订单(友哈巴赫是怎么死的