1. 程式人生 > >Ubuntu 16環境下安裝CUDA 8.0及Caffe

Ubuntu 16環境下安裝CUDA 8.0及Caffe

1.安裝CUDA 8.0

安裝CUDA之前,先檢查機器是否安裝了NVIDIA驅動。使用命令

nvidia-smi
檢視GPU列表,同時顯示了驅動的版本。也可以通過命令
nvidia-settings
檢視GPU的詳細資訊。如果沒有安裝驅動,則執行下面的命令
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

安裝NVIDIA的367版本的驅動。

下面開始安裝CUDA 8.0。登陸CUDA官網:點選開啟連結下載對應版本的安裝檔案,如下圖所示


選擇deb(local),雖然runfile(local)也可以,但是安裝deb更簡單一些。

上面也同時給出了安裝命令:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
注意:在執行上述命令之前,一定要進入安裝檔案所在的路徑,也即是下載的CUDA安裝檔案所在的地方,一般是/home/Downloads,所以先執行命令
cd Downloads
然後執行上面三行程式碼安裝CUDA 8.0.

2.配置Caffe

安裝好CUDA之後,就可以配置Caffe了。

(1)通過下面的命令安裝protobuf,leveldb,snappy,OpenCV,hdf5,boost依賴庫

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

(2)安裝BLAS庫

sudo apt-get install libatlas-base-dev

(3)接著是gflags, glog和lmdb

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

(4)獲取Caffe原始碼

git clone https://github.com/BVLC/caffe
然後/home下面會有一個caffe資料夾,下面需要進入這個資料夾中,因此執行命令
cd caffe
(5) 配置Caffe
cp Makefile.config.example Makefile.config
這一步執行沒有問題,接著是
make all
make test
make runtest
執行make all之後會報錯
src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No such file or directory
這裡我們需要修改caffe資料夾中的Makefile.config檔案,找到這兩行
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
將它們直接替換為
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/
然後再一步一步執行
make all
make test
make runtest
沒有報錯的話,至此,Caffe已經安裝並配置成功了。

3.測試Caffe

最後我們通過MNIST資料集測試新安裝的Caffe是否可以執行。在caffe路徑下執行

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
經過上述操作./examples/mnist/路徑下會有mnist_test_lmdb和mnist_train_lmdb兩個資料夾,分別是測試和訓練資料。然後執行命令
./examples/mnist/train_lenet.sh
可以看到執行結果。

本文參考了以下連結:

補充:

在配置caffe的時候我參考了很多網上的資料,很多人說配置之前應該先把gcc的版本降低為4.x.x的版本,因為caffe不支援高版本的gcc。但是,針對我的具體情況:Ubuntu 16.04, CUDA 8.0, gcc 5.4.0, Matlab R2016b,在配置caffe的時候並不需要降低gcc的版本,直接用5.4.0的即可。剛開始我聽信了這些建議,先把gcc降為4.x.x的版本,反而一直報錯。後來再改為原來的版本,並按照上面的步驟執行就成功了。在這裡也算是總結了一個教訓。