ubuntu dependency:
sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
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 libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libblas-dev
sudo apt install libatlas-base-dev
opencv dependency:
sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzippython
安裝文件:NVIDIA-Linux-x86_64-384.98.run (與Titan Xp 顯卡配套)
命令: sudo sh NVIDIA-Linux-x86_64-384.98.run
檢驗方法:nvidia-smi 出現顯卡信息linux
安裝deb文:cuda-repo-ubuntu1604-9-0-local-rc_9.0.103-1_amd64.deb(與Nvidia驅動配套)
命令: sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-rc_9.0.103-1_amd64.deb
sudo apt-key add /var/cuda.../7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
聲明環境變量:
sudo gedit ~/.bashrc
添加:export PATH=/usr/local/cuda-8.0/bin\({PATH:+:\){PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\({ LD_LIBRARY_PATH:+:\)
{ LD_LIBRARY_PATH }}
檢驗方法:
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery 出現GPU信息git
安裝文件:cuDNN v7.0.5
命令:進入include
sudo cp cudnn.h /usr/local/cuda/include/
進入lib64
sudo cp lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7 #刪除原有動態文件
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成軟連接(注意這裏要和本身下載的cudnn版本對應,能夠在/usr/local/cuda/lib64下查看本身libcudnn的版本)
sudo ln -s libcudnn.so.7 libcudnn.sogithub
安裝文件:opencv 3.3.0
爲解決與cuda9.0不兼容的問題,用如下方法解決:
問題:CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)
linked by target "opencv_cudev" in directory D:/Cproject/opencv/opencv/sources/modules/cudev
...
解決方案:http://blog.csdn.net/u014613745/article/details/78310916
1).找到FindCUDA.cmake文件
找到行
find_cuda_helper_libs(nppi)
改成
find_cuda_helper_libs(nppial)
find_cuda_helper_libs(nppicc)
find_cuda_helper_libs(nppicom)
find_cuda_helper_libs(nppidei)
find_cuda_helper_libs(nppif)
find_cuda_helper_libs(nppig)
find_cuda_helper_libs(nppim)
find_cuda_helper_libs(nppist)
find_cuda_helper_libs(nppisu)
find_cuda_helper_libs(nppitc)編程
2).找到行
set(CUDA_npp_LIBRARY "\({CUDA_nppc_LIBRARY};\){CUDA_nppi_LIBRARY};\({CUDA_npps_LIBRARY}") 改成 set(CUDA_npp_LIBRARY "\){CUDA_nppc_LIBRARY};\({CUDA_nppial_LIBRARY};\){CUDA_nppicc_LIBRARY};\({CUDA_nppicom_LIBRARY};\){CUDA_nppidei_LIBRARY};\({CUDA_nppif_LIBRARY};\){CUDA_nppig_LIBRARY};\({CUDA_nppim_LIBRARY};\){CUDA_nppist_LIBRARY};\({CUDA_nppisu_LIBRARY};\){CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")
3).找到行
unset(CUDA_nppi_LIBRARY CACHE)
改成
unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)
4).找到文件OpenCVDetectCUDA.cmake
修改如下幾行
...
set(__cuda_arch_ptx "")
if(CUDA_GENERATION STREQUAL "Fermi")
set(__cuda_arch_bin "2.0")
elseif(CUDA_GENERATION STREQUAL "Kepler")
set(__cuda_arch_bin "3.0 3.5 3.7")
...
改成
...
set(__cuda_arch_ptx "")
if(CUDA_GENERATION STREQUAL "Kepler")
set(__cuda_arch_bin "3.0 3.5 3.7")
elseif(CUDA_GENERATION STREQUAL "Maxwell")
set(__cuda_arch_bin "5.0 5.2")
...
問題:ippicv下載不下來,沒法繼續編譯
解決方法:把ippicv_2017u2_lnx_intel64_20170418.tgz在github上的opencv 3rdparty中下載下來;查看/3rdparty/ippicv/ippicv.cmake文件,將下載下來的.tagz文件從新命名成「對應的hash碼-ippicv_linux_20170418.tgz」; 將重命名的文件保存至opencv3.3.0/.cache/ippicv下。
問題:
5).cuda9中有一個單獨的halffloat(cuda_fp16.h)頭文件,也應該被包括在opencv的目錄裏,將頭文件cuda_fp16.h添加至 opencv\modules\cudev\include\opencv2\cudev\common.hpp,即在common.hpp中添加ubuntu
隨後進入opencv,進行編譯:
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
sudo make
sudo make install
測試;bash
安裝文件:R2016a.iso文件
mkdir ~/matlab_iso
sudo mount -o loop R2016a_glnxa64.iso ~/matlab_iso
cd ~/matlab_iso
sudo ./install
不使用Internet激活,祕鑰:09806-07443-53955-64350-21751-41297
安裝路徑:/usr/local/MATLAB/R2016a
安裝完成後將libmwservices.so複製到/usr/local/MATLAB/R2014a/bin/glnxa64中:
sudo cp libmwservices.so /usr/local/MATLAB/R2016a/bin/glnxa64/libmwservices.so服務器
git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4app
安裝文件:github下載caffe-master
命令:
cd caffe-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
(1)修改Makefile.config文件
若使用cudnn,則將# USE_CUDNN := 1 修改爲: USE_CUDNN := 1ssh
若使用的opencv版本是3的,則將# OPENCV_VERSION := 3 修改成: OPENCV_VERSION := 3
若要使用python來編寫layer,則須要將# WITH_PYTHON_LAYER := 1 修改成 WITH_PYTHON_LAYER := 1
取消對行 USE_NCCL := 1 的註釋。這能夠啓用在多個 GPU 上運行 Caffe 所需的 NCCL。
將# Whatever else you find you need goes here.下面的 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 /usr/lib/x86_64-linux-gnu/hdf5/serial //這是由於ubuntu16.04的文件包含位置發生了變化,尤爲是須要用到的hdf5的位置,因此須要更改這一路徑
刪除MakeFile.config 中關於compute_20 compute_21的內容來兼容CUDA>=9.0
若使用MATLAB接口的話,則要MATLAB_DIR換成你本身的MATLAB安裝路徑
MATLAB_DIR := /usr/local
MATLAB_DIR := /usr/local/MATLAB/R2016a
(2)打開makefile文件
將
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC \((COMMON_FLAGS) 替換 NVCCFLAGS += -D_FORCE_INLINES -ccbin=\)(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
最後:
sudo make all -j8
sudo make test
sudo make runtest
sudo make pycaffe
sudo make matcaffe
出現問題:NVCC src/caffe/test/test_im2col_kernel.cu
nvcc fatal:Unsupported gpu architecture 'compute_20'
解決方案:刪除MakeFile.config 中關於compute_20 compute_21的內容來兼容CUDA>=9.0
注意:安裝caffe前,確認/usr/local/cuda-9.0 下有bin目錄
sudo apt-get install openssh-server
打開"終端窗口",輸入"sudo ps -e |grep ssh"-->回車-->有sshd,說明ssh服務已經啓動,若是沒有啓動,輸入"sudo service ssh start"-->回車-->ssh服務就會啓動
打開"終端窗口",輸入"sudo gedit /etc/ssh/sshd_config"-->回車-->把配置文件中的"PermitRootLogin without-password"加一個"#"號,把它註釋掉-->再增長一句"PermitRootLogin yes"-->保存,修改爲功。
注:藍色字體爲命令行命令