操做系統:Ubuntu14.04 64bitspython
處理器:Intel core i7-4790k 8核4GHzlinux
GPU:GTX TITAN Xbash
cuda:cuda7.0app
NVIDIA驅動:NVIDIA346.72ide
blas:mkl學習
安裝過程:優化
(一)Ubuntu系統安裝ui
最好安裝Ubuntu14.04,對caffe的支持最好,另外,安裝完Ubuntu以後不要更新系統。google
(二)caffe依賴項spa
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
注意,這裏安裝的都是一些必要的庫文件,必須安裝。
(三)NVIDIA驅動安裝
從NVIDIA官網下載英文版驅動,有.run與.deb兩種格式,前者可自選組件進行安裝,後者則等效於一鍵安裝。注意要選擇與本身gpu想匹配的驅動,沒試過中文版驅動,不知道是否可行,不過在官網上下載中文驅動的時候會出現亂碼。下載完驅動以後(我下的.run文件)按照官網的安裝說明進行安裝,大致步驟以下:
一、利用sudo gedit /etc/modprobe.d/blacklist-nouveau.conf新建blacklist-nouveau.conf文件,輸入命令
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
保存並退出。這一步是爲了禁掉Ubuntu自帶開源驅動nouveau。以後sudo reboot重啓系統。在終端執行命令
lsmod | grep nouveau
能夠查看nouveau模塊是否被加載。若是什麼都沒輸出,則執行下一步。
二、重啓後屏幕分辨率變低,不用管。進入tty1文件模式,輸入用戶名密碼後登錄,輸入命令
sudo /etc/init.d/lightdm stop
關閉xserver。注意,安裝NVIDIA驅動須要以root用戶登錄,因此利用命令sudo su進入root。輸入命令
bash NVIDIA-LINUX-X86_64-346.72.run --kernel-source-path=/usr/src/linux-headers-3.*.*
進行安裝。這裏的linux-headers-3.*.*是Linux系統源文件名。安裝過程當中有一些提示問題讓你回答,注意,當提示
The distribution-provided pre-install script failed!Are you sure you want to continue?
的時候不用管,繼續安裝就好了,這個問題我至今沒明白是什麼緣由致使的,但這不影響後續安裝及使用。當提示
Would you like to register the kernel module sources with DKMS?This will allow DKMS to auomatically build a new module,if you install a different kernel later
的時候,回答No。
三、最好再執行命令
sudo apt-get install linux-image-extra-virtual
不然後續可能會出現以下錯誤提示:
modprobe: ERROR: could not insert'nvidia':Unknown symbolinmodule,or unknown parameter(see dmesg)
四、執行sudo /etc/init.d/lightdm start並重啓電腦。重啓後可能會產生分辨率問題,只須要更改/etc/X11/xorg.conf文件以下:
Section 'Monitor' ** ** HorizSync 31.5 - 61.0 VertRefresh 50.0 - 75.0 ** ** Section 'Screen' Modes "800x600@72" "800x600@75" "800x600@56" "800x600@60" "640x480@75" "832x624@75" "640x480@72" "1024x768@75" "640x480@60" "1024x768@70" "1024x768@60" "1280x960@60" EndSubSection
(四)cuda7.0安裝
注意,caffe推薦安裝最新版NVIDIA驅動,因此cuda內置的驅動咱們就不須要安裝了,cuda的安裝徹底按照官網教程進行,過程比較簡單,這裏再也不贅述,若有問題能夠留言咱們相互討論。但注意一點是安裝完成以後須要修改環境變量,只需在/etc/ld.so.conf.d/下新建一個cuda.conf文件,將cuda庫路徑(默認是/usr/local/cuda-7.0/lib64)加入以後保存便可。
(五)MKL的安裝
caffe所須要的blas咱們安裝mkl,雖然mkl的下載稍微有點麻煩,但安裝起來仍是很快的。下載的時候只須要在官網申請學生免費版,用你的郵箱註冊以後會自動收到下載指南以及一個lic註冊文件,按照指示下載便可,安裝也較爲簡單,這裏只提幾點注意事項:
一、一個mkl安裝文件能夠同時被幾個用戶使用,因此沒必要重複下載。
二、安裝的時候必須將安裝包放置在Ubuntu可以識別的文件系統中,推薦~/,不然沒法執行.sh腳本文件。
三、安裝以後須要把mkl庫路徑(/opt/intel/lib以及/opt/intel/mkl/lib/intel64)加入環境變量。
(六)若是要使用Python接口,那麼還須要另外安裝一些Python庫文件(Ubuntu自帶Python不能知足咱們的須要)
sudo apt-get install python-numpy python-scipy python-dev
(七)若是須要使用matlab接口,那麼推薦新版本的matlab好比R2013a/b,R2014a/b等,我安裝的R2014b,沒任何問題。
(八)編譯配置caffe
下載caffe文件並解壓至某一目錄caffe-root,注意修改makefile文件當中的一些路徑。執行一下命令
cd caffe-root/caffe-master
cp Makefile.config.example Makefile.config
make all
make test
make runtest
在make編譯過程當中會遇到一些問題,多是由caffe自己文件兼容性問題形成的,好比:
一、提示make:protoc:命令未找到,這是由於protoc未安裝,只需安裝就行。
sudo apt-get install protobuf-c-compiler protobuf-compiler
二、提示「src/caffe/util/math_functions.cu(140):errot:calling a host function("std::signbit")from a globalfunction("caffe::sgnbit kernel")is not allowed」,
修改./include/caffe/util/math_functions.hpp 224行
刪除(註釋):using std::signbit
修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i]));
這是Yangqing Jia給出的解決方案,目前只有這一種方法。
我在編譯的時候只對於某些版本的caffe會遇到狀況2,對於第一個問題只要你按照前面的步驟作了應該不會出現的。雖然裝這個花了好幾天,不過總算是本身的努力換來了回報,但願caffe之後能優化的更完美,不要再在編譯的時候趕上這麼多麻煩,對於初學者是很不利的。但願你們共同窗習,共同進步吧!