centos7.0 tesla k80 caffe 安装
官方安装步骤:
General dependencies
sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
Remaining dependencies,recent OS
sudo yum install gflags-devel glog-devel lmdb-devel
Remaining dependencies,if not found
# glog
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-glog/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
一般经过以上步骤,有一些库安装不了,需要手动安装:
opencv-devel
$ sudo yum -y install cmake pkgconfig gtk2-devel python-devel numpy tbb-devel libpng-devel
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip
$ unzip opencv-2.4.10.zip
$ cd opencv-2.4.10
$ mkdir build
$ cd build
$ cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON
$ make -j 2
$ sudo make install
问题一
/home/usrname/opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared
typedef NppStatus (*init_func_t)(NppiSize oSize,NppiGraphcutState** ppStat
^
/home/usrname/opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: ‘NppiGraphcutState’ does not name a type
operator NppiGraphcutState*()
^
/home/usrname/opencv-3.0.0/modules/cudalegacy/src/graphcuts.cpp:141:9: error: ‘NppiGraphcutState’ does not name a type
NppiGraphcutState* pState;
解决方案:需要修改一处源码:
在graphcuts.cpp中将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
问题二
nvcc fatal : Unsupported gpu architecture 'compute_11'
CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):
Error generating
/home/smie/Documents/opencv2.4.11/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_gene
rated_matrix_operations.cu.o
make[2]: ***
[modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....
使用以下命令解决
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
HDF5
点击库下载地址
Currently,the SWMR feature can only be tested on UNIX platforms. The SWMR testing is disabled on Windows.
PLEASE be aware: On UNIX platforms the HDF5 tests must be run on a local file system or a parallel file system running GPFS or Lustre in order for the SWMR tests to complete properly. For example:
cd LocalFSpath
mkdir build
cd build
/path_to_HDF5_source/configure ...
make
make check
make install
boost-devel
$ wget -O boost_1_55_0.tar.bz2 http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1385953406&use_mirror=softlayer-ams
$ tar jxvf boost_1_55_0.tar.bz2
$ cd boost_1_55_0
$ ./bootstrap.sh
$ ./b2
$ sudo ./b2 install
glog-devel
$ sudo wget https://codeload.github.com/google/glog/zip/master
$ unzip glog-master.zip
$ cd glog-master
$ ./configure
$ make -j4
$ sudo make install
protobuf
$ wget -O protobuf.zip https://github.com/google/protobuf/archive/master.zip
$ unzip protobuf.zip
$ cd protobuf-master
$ ./autogen.sh
$ make && make check
$ sudo make install
leveldb-devel
$ sudo git clone https://github.com/google/leveldb.git
$ make
$ sudo cp -r include/leveldb /usr/local/include
$ sudo cp ./out-shared/libleveldb.so /usr/local/lib
openblas
$ git clone https://github.com/xianyi/OpenBLAS.git
$ cd OpenBLAS
$ make FC=gfortran (如果没有安装gfortran,执行sudo apt-get install gfortran)(centos是yum install gcc-gfortran)
$ sudo make PREFIX=/usr/local/install
$ ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib/libblas.so.3
$ ln -s /opt/OpenBLAS/lib/liblapack.so.3 /usr/lib/liblapack.so.3
安装依赖库后编译caffe
$ sudo cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example,if using Anaconda Python,# or if cuDNN is desired)
$ sudo make all
$ sudo make test
$ sudo make runtest
如果是新版的caffe会报以下错误:/
/usr/bin/ld: cannot find -lcblas
/usr/bin/ld: cannot find -latlas。
解决方法:
sudo vim Makefile.config
修改以下代码:
BLAS := atlas (修改前)
BLAS := open (修改后)
BLAS_INCLUDE := /usr/local/include/openblas (添加)