Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装
1 GPU設備
1.1 本人使用的GPU設備
名稱: 七彩虹GTX980Ti顯卡iGame980Ti烈焰戰神X 6G
1.2 硬件問題
Laboratory Tested Hardware:
???? Berkeley Vision runs Caffe with K40s, K20s, and Titans including models at ImageNet/ILSVRC scale. We also run on GTX series cards and GPU-equipped MacBook Pros. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like.
CUDA compute capability:
???? 如果設備的運算能力 <= 2.0, 受限于設備的性能, 可能需要減少 CUDA的線程數量 和 批處理的 大小(sizes). 你的吞吐量可能會發生變化.
安裝后, 參照我們的 reference performance numbers 確保所有的配置是正確的.
工程問題請參照? hardware/compatibility.
2 GPU驅動和GPU開發工具安裝
基于cuda_7.0.28_linux.run安裝
?? 其他各版本(含老版本和最新版本)的文檔地址:http://blog.csdn.net/real_myth/article/details/52724892
3 Caffe
基于原版翻譯的教程參見: Caffe編譯安裝
3.1 編譯工具(如果開發環境已經具備不需要此步驟)
1) gcc, g++ (安裝命令: sudo apt-get install?build-essential )
2) make(安裝命令:sudo apt-get install make )
3) cmake(安裝命令:sudo apt-get install cmake)
?
注意,在? Ubuntu 12.04中, 默認安裝的CMake版本為2.8.7, 不能滿足編譯Caffe的CMake 版本需求 (版本至少為 2.8.8) ,如果你使用的系統是Ubuntu 12.04,可以嘗試下面的安裝步驟安裝CMake 2.8.9或者升級到這個版本 :
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y sudo apt-get -y update sudo apt-get install cmake
3.2 先決依賴條件(Prerequisites)
Caffe 依賴于很多的軟件包。
- CUDA
?????? Caffe 需要 CUDA nvcc 編譯器來編譯GPU 代碼 ,需要CUDA驅動來操作GPU. 要安裝 CUDA, 請參照NVIDIA CUDA 網站和網站上的安裝說明.分別安裝依賴庫和最新的驅動;
?????? 和依賴庫綁定的驅動通常版本比較老.警告!? 331.* CUDA 系列驅動有嚴重的性能問題: 不要使用.
??????? 為了達到最好的性能, Caffe 可以通過NVIDIA cuDNN加速.? cuDNN 網站注冊是免費的, 安裝完后繼續下面的安裝說明.
???????? 要使用cuDNN編譯請在你的Makefile.config種設置USE_CUDNN := 1?.(個人用的是cuDNN V4)
??????? cudnn下載地址: 下載(http://blog.csdn.net/real_myth/article/details/52739801)
本文安裝方式:
????? 由于cuda_7.0.28_linux.run安裝需要編譯內核,所以對于安裝了桌面環境的ubuntu 需要結束桌面環境,在終端環境下操作。
????? 桌面環境轉到終端環境:
1)按ALT+CTRL+F1、F2、F3、F4、F5、F6、F7可來回切換7個界面(Linux實體機)其中ALT+CTRL+F7可切換到圖形界面(Linux實體機)如果是VMware虛擬機安裝的Linux系統,則切換到圖形界面的時候需要以下操作按下ALT+CTRL+SPACE(空格),ALT+CTRL不松開,再按F7。這樣就可以切換到圖形界面了。
2) 如果想Ubuntu在每次啟動到commandprompt(默認字符界面),可以輸入以下指令:echo“false”|sudotee/etc/X11/default-display-manager(注意:上述命令的作用是將default-display-manager文件中的內容改為"false",在執行該命令之前最好先備份一下)當下次開機時,就會以命令行模式啟動(字符界面登錄)。如果想變回圖形界面啟動(Xwindows啟動),可以輸入:echo“/usr/sbin/gdm”|sudotee/etc/X11/default-display-manager(注意:其中“/usr/sbin/gdm”是原先default-display-manager文件中的內容,并不是所有linux版本都是“/usr/sbin/gdm”,ubuntu12.04的是"/usr/sbin/lightdm"因此,在修改default-display-manager文件的內容之前,最好先備份一下,以免忘記里面的內容。)
3)如果在Ubuntu以命令行模式啟動,在字符終端想回到圖形界面的話只需以下命令:startx
????? 停止和啟動桌面環境:
service lightdm stop & service lightdm start
安裝:
轉到cuda_7.0.28_linux.run所在的目錄,以root權限運行此文件,并按照提示選擇相應的安裝工具和目錄即可。
我都是默認路徑全部安裝的
- BLAS (通過 ATLAS, MKL,或 OpenBLAS提供)
???? Caffe 需要 BLAS作為矩陣和向量計算的后端( backend).有很多這個庫的移植版本.可以自己根據情況選擇:?
????????? ATLAS:
??????????????????? 免費,開源代碼,Caffe的默認依賴
??????? ??????????? sudo apt-get install libatlas-base-dev
??? Intel MKL:
??????? 商業版并且針對Intel的CPU做了優化, 可以免費試用,并且有學生版本.
??????? 安裝 MKL.
??????? 在Makefile.config文件中設置 BLAS := mkl
??? OpenBLAS:
免費的并且開源; 優化的可并行的 BLAS, 雖然安裝需要花點時間,但是確實可以提速 .
??????? 安裝 OpenBLAS
??????? 在Makefile.config文件中設置 BLAS := open
- OpenCV.
?????? sudo apt-get install libopencv-calib3d-dev libopencv-contrib-dev libopencv-core-dev libopencv-dev libopencv-features2d-dev libopencv-flann-dev libopencv-gpu-dev libopencv-highgui-dev libopencv-imgproc-dev libopencv-legacy-dev libopencv-ml-dev libopencv-objdetect-dev libopencv-ocl-dev libopencv-photo-dev libopencv-stitching-dev libopencv-superres-dev libopencv-ts-dev libopencv-video-dev libopencv-videostab-dev
???? 或者
sudo apt-get install libopencv-dev
- Boost (>= 1.55,? 只有1.55和1.56測試過)
????? sudo apt-get install libboost-all-dev
- protobuf,leveldb,snappy,hdf5, glog,gflags,lmdb
?????????? sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
Ubuntu系統,? 萬一在你的系統源里找不到上面說的這些擴展庫, 下面的命令教你如何手工編譯安裝 (安裝的時候可能需要root權限)
Note that glog does not compile with the most recent gflags version (2.1), so before that is resolved you will need to build with glog first.
- Python
?????????? python 2.7, numpy (>= 1.7), boost-providedboost.python
????? 主要的依賴為 numpy 和boost.Python (通過 boost提供).pandas 也是有用的并且是一些例子的依賴。
????? 可以通過以下命令安裝依賴:
????? for req in $(cat requirements.txt); do sudo pip install $req; done
????? 強烈推薦首先安裝提供了大部分需要的的依賴包和hdf5依賴庫的 Anaconda Python distribution。
????? ubuntu: sudo apt-get install python python-dev
?????? 安裝完成后,如果要導入 caffe的Python模塊,需要通過 export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
?????? 或者類似的方法添加模塊路徑到你的環境變量$PYTHONPATH .不可以在caffe/python/caffe路徑中導入!
????? Caffe’的 Python 接口支持 Python 2.7. Python 3 或者更早的 Pythons.
- MATLAB(可選),有mex編譯器的MATLAB???????
??????? 安裝MATLAB, 確保Matalab的 mex在你的環境變量 $PATH中.
??????? Caffe的 MATLAB接口兼容于版本 2012b, 2013a/b, 和 2014a.
3.3 運行模式設置
cuDNN Caffe: Caffe通過drop-in integration of?NVIDIA cuDNN的加速方式來達到最快的執行速度。
要加速你的Caffe模型, 請安裝 cuDNN 然后在Makefile.config?文件中解注釋USE_CUDNN := 1,這樣安裝Caffe后,就會自動加速.
CPU-only Caffe: ?對于cold-brewed 只有CPU模式的Caffe,請在文件Makefile.config中,解注釋CPU_ONLY := 1,然后以無CUDA的方式編譯Caffe.這有助于云和集群方式的部署。
3.4 編譯 & 安裝
3.4.1 直接使用已有的Makefile
現在已經具備了所有的依賴條件, 編輯你的配置文件?Makefile.config,改變你的安裝路徑?(you should especially uncomment and setBLAS_LIB accordingly on distributions likeCentOS / RHEL / Fedora where ATLAS is installed under/usr/lib[64]/atlas),默認的配置是可以的,但是如果你使用的是Anaconda Python,請解注釋相關的行。
cp Makefile.config.example Makefile.config # Adjust Makefile.config (for example, if using Anaconda Python) make all make test make runtest編譯的時候如果要引入cuDNN加速,你需要在文件Makefile.config中解注釋USE_CUDNN := 1。
如果你的電腦上沒有 GPU,你應該使用CPU-only模式的Caffe,請在文件Makefile.config中解注釋CPU_ONLY := 1?。
要編譯 Python 和 MATLAB 包,請獨立的執行make pycaffe和make matcaffe?. 請務必首先在Makefile.config中配置你的MATLAB 和 Python路徑!
Distribution: 運行 make distribute來創建一個包含所有的Caffe 頭文件, 編譯好的依賴庫,二進制文件等的分布式路徑,用于其他機器的配置.
Speed: 如果要快速的編譯,請通過make all -j8的方式并行編譯,其中8是并行編譯的線程的數量(并行線程的數量最好等于你機器CPU核的數量).
到目前為止,你已經安裝了Caffe, 請參照 MNIST tutorial 和 reference ImageNet model tutorial進行進一步的操作.
3.4.2 使用CMake (beta)編譯
通過手工編輯Makefile.config的方式告訴 Caffe 尋找依賴的的位置, Caffe 也提供了一個基于 CMake的編譯系統 (currently in “beta”).要求CMake 版本 >= 2.8.8. 基本的安裝步驟如下:
mkdir build cd build cmake .. make all make runtest
??? ?? ?
總結
以上是生活随笔為你收集整理的Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 必须掌握的60个命令
- 下一篇: Ubuntu 16.04 LTS, 64