Install Caffe on Ubuntu 16.04 with GPU/CPU
寫在前面:這裡我們使用的原版的Caffe, 其他breach在編譯時可能會出現錯誤
- Install with CPU
- 安裝依賴庫
sudo apt update
sudo apt upgrade
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev
libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install -y --no-install-recommends libboost-all-dev
# 如果使用 OpenBlas 代替默認的 ATLAS的話,
# 需要將 libatlas-base-dev 改為 libopenblas-dev
sudo apt install -y libatlas-base-dev
sudo apt install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt install -y python-pip python-dev python-numpy python-scipy
- 修改配置文件
cd ~/
git clone https://github.com/BVLC/caffe.git
cd caffe/
cp Makefile.config.example Makefile.config
vim Makefile.config
取消注釋
CPU_ONLY := 1
WITH_PYTHON_LAYER := 1
如果使用 OpenBlas 代替默認的 ATLAS的話,則修改
BLAS := open
並運行以下命令(使用 OpenBlas 的情況下)
echo export OPENBLAS_NUM_THREADS=4 >> ~/.bashrc
修改
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
- 安裝 make pycaffe 所需的庫
cd python
sudo -H pip2 install -r requirements.txt
- 安裝
cd ..
make all -j $(($(nproc) + 1))
make test
make runtest
make pycaffe
make distribute
# user 是你的用戶名
echo export PYTHONPATH=/home/user/caffe/python:$PYTHONPATH >> ~/.bashrc
# 重啟終端
python
>>>import caffe
>>> # 沒報錯就成功了
如果選擇 CPU 安裝的話,最好使用 OpenBlas 代替默認的 ATLAS,因為 OpenBlas 對 CPU 多線程支持很好,能加快一點速度算一點吧。
2. Install with GPU (NVIDIA)
- 進入 BIOS,將 Secure Boot 改為 Disabled
- 下載 cuda8 https://developer.nvidia.com/cuda-release-candidate-download
- 下載 cuDNN v5.1 Library for Linux https://developer.nvidia.com/rdp/cudnn-download ,對於想使用 cuDNN 加速的同學,首先得確保你的 GPU 計算能力 (capability) 大於 3.0(注意:這裡如果要是使用caffe的其他分支,需要嘗試不同版本的cuDNN, 我在運行train crfasrnn 時使用的是cuDNN v2.0)
- 安裝依賴庫,和 Install with CPU 第一步一樣
sudo apt update
sudo apt upgrade
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev
libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install -y --no-install-recommends libboost-all-dev
# 如果使用 OpenBlas 代替默認的 ATLAS的話,
# 需要將 libatlas-base-dev 改為 libopenblas-dev
sudo apt install -y libatlas-base-dev
sudo apt install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt install -y python-pip python-dev python-numpy python-scipy
- 在 Software & Updates 中將 Additional Drivers 下的 NVIDIA Corporation 改為 Using NVIDIA binary driver…(proprietary, tested)
- 安裝 CUDA
sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64.deb
sudo apt update
sudo apt install cuda
sudo apt install cuda-drivers
cd /usr/local/cuda-8.0/samples/
sudo make all -j $(($(nproc) + 1))
# 查看 GPU 計算能力 (capability)
./1_Utilities/deviceQuery/deviceQuery
- 如果 GPU 計算能力 (capability) 大於 3.0,那麼就可以使用 cuDNN 加速,否則跳過安裝 cuDNN這一步
- 安裝 cuDNN
# 到 cuDNN v5.1 Library for Linux 下載後存放的目錄,打開終端
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/lib64/lib* /usr/local/cuda-8.0/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/
echo export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH >> ~/.bashrc
- 安裝 make pycaffe 所需依賴
cd python
sudo -H pip2 install -r requirements.txt
- 修改 Makefile.config
去掉注釋
USE_CUDNN := 1
WITH_PYTHON_LAYER := 1
修改
CUDA_DIR := /usr/local/cuda-8.0
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
- 安裝
cd ..
make all -j $(($(nproc) + 1))
make test
make runtest
make pycaffe
make distribute
# user 是你的用戶名
echo export PYTHONPATH=/home/user/caffe/python:$PYTHONPATH >> ~/.bashrc
# 重啟終端
python
>>>import caffe
>>> # 沒報錯就成功了
3. GPU (AMD)
- BVLC/caffe
- amd/OpenCL-caffe
推薦閱讀: