寫在前面:這裡我們使用的原版的Caffe, 其他breach在編譯時可能會出現錯誤

  1. 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 developer.nvidia.com/cu
  • 下載 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 計算性能後的輸出結果
  • 如果 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

推薦閱讀:

相关文章