ubuntu 安装NVIDIA+cudnn+cudn+caffe

ubuntu 安装NVIDIA+cudnn+cudn+caffe

安装anaconda

  1. 用bash进行安装
  2. 添加环境变量, 包括bin目录和lib目录

安装NVIDIA

  1. sudo apt-get remove –purge nvidia-*
  2. chmod a+x NVIDIA-Linux-x86_64-384.90.run
  3. sudo ./NVIDIA-Linux-x86_64-384.90.run -no-x-check -no-nouveau-check -no-opengl-files

安装cudn

  1. chmod a+x cuda_8.0.27_linux.run
  2. sudo ./cuda_8.0.27_linux.run
  3. 除了第二项”是否安装显卡驱动”选择no之外,其他全部按照默认设定
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.77?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-8.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location
 [ default is /home/lab529 ]: y

Samples location must be an absolute path
Enter CUDA Samples Location
 [ default is /home/lab529 ]: y

Samples location must be an absolute path
Enter CUDA Samples Location
 [ default is /home/lab529 ]: 

Installing the CUDA Toolkit in /usr/local/cuda-8.0 ...
Missing recommended library: libGLU.so
Missing recommended library: libXmu.so
Missing recommended library: libGL.so

Installing the CUDA Samples in /home/lab529 ...
Copying samples to /home/lab529/NVIDIA_CUDA-8.0_Samples now...
Finished copying samples.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /home/lab529, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_24442.log
  1. sudo vi /etc/profile
export PATH=/usr/local/cuda-8.0/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH  
  1. sudo ldconfig
  2. 安装CUDA SAMPLE
    进入/usr/local/cuda/samples, 执行下列命令来build samples
    sudo make all -j4
    进入 samples/bin/x86_64/linux/release, 运行deviceQuery
    ./deviceQuery 如果出现显卡信息, 则驱动及显卡安装成功

安装cudnn

  1. tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
  2. cd cuda/
  3. sudo cp lib64/lib /usr/local/cuda/lib64/**
  4. sudo cp include/cudnn.h /usr/local/cuda/include/
  5. 更新软连接
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.5.1.10 
#sudo ln -sf /usr/local/lib/libcudnn.so.5.1.10 /usr/local/lib/libcudnn.so.5 
sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
#sudo ln -sf /usr/local/lib/libcudnn.so.5 /usr/local/lib/libcudnn.so 
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig -v 
  1. 环境变量加进入
:/usr/local/cuda/lib64
:/usr/local/cuda/bin
source /etc/profile
  1. 同时需要添加lib库路径
    在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下
    /usr/local/cuda-8.0/lib64
  2. sudo ldconfig

安装caffe

参考:
http://blog.csdn.net/zongchenxian341/article/details/77744005
http://blog.csdn.net/xizero00/article/details/52549883
http://www.ichangjian.com/?p=75
https://zhuanlan.zhihu.com/p/25709284
http://blog.csdn.net/firethelife/article/details/51926754 这个最终解决问题了,前面也挺有用
1. 安装caffe依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
BLAS依赖项
sudo apt-get install libatlas-base-dev
谷歌glog和gflags和lmdb依赖项
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

  1. 安装git
    sudo apt-get install git
  2. 下载代码
git clone https://github.com/BVLC/caffe.git
  1. 安装python依赖
    进入caffe中的python目录,输入
    for req in ( c a t r e q u i r e m e n t s . t x t ) ; d o p i p i n s t a l l req; done
  2. 进入caffe目录,复制一份Makefile.config.examples
    cp Makefile.config.example Makefile.config

  3. 编辑config

    • 编辑Makefile.config,修改其中的matlab路径,python路径,去掉USE_CUDNN:=1前的#号
      matlab路径:/usr/local/MATLAB/R2014a
      python路径是根据anaconda路径来得,anaconda在 /home/lab529/anaconda2
    • 还要给INCLUDE_DIRS 添加/usr/include/hdf5/serial/
    • 还要将Makefile里 LIBRARIES 里面的 hdf5_hl 、 hdf5 修改成 hdf5_serial_hl 、hdf5_serial
    • LIBRARY_DIRS 添加 /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
  4. 编译
    sudo make all -j8
    麻痹,一定要用sudo
    易出错及参考:
    参考 http://blog.csdn.net/sun_reed/article/details/54178572
    NVCCFLAGS += -ccbin= ( C X X ) X c o m p i l e r f P I C (COMMON_FLAGS) 改为 NVCCFLAGS += -D_FORCE_INLINES -ccbin= ( C X X ) X c o m p i l e r f P I C (COMMON_FLAGS) 416行
    参考 http://blog.csdn.net/xunan003/article/details/78429170
    参考 http://blog.csdn.net/thesby/article/details/50512886

  5. sudo make test -j8

  6. sudo make runtest
    出错:
.build_release/tools/caffe
.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.10: cannot open shared object file: No such file or directory
make: *** [runtest] Error 127

但是我查看 Anaconda自带的库时是能找到 libhdf5_hl.so.10的
我在 /usr/lib 及 /usr/lib/x86_64-linux-gnu 分别放了一个软链指向了Anaconda的库中libhdf5_hl.so.10.1.0

sudo cp -s $HOME/anaconda2/lib/libhdf5_hl.so.10.1.0 /usr/lib/libhdf5_hl.so.10
sudo cp -s $HOME/anaconda2/lib/libhdf5_hl.so.10.1.0 /usr/lib/x86_64-linux-gnu/libhdf5_hl.so.10
输入上面还不行,出现了类似的错误,于是又如法炮制,输入
sudo cp -s $HOME/anaconda2/lib/libhdf5.so.10.2.0 /usr/lib/libhdf5.so.10
sudo cp -s $HOME/anaconda2/lib/libhdf5.so.10.2.0 /usr/lib/x86_64-linux-gnu/libhdf5.so.10
sudo ldconfig

然后终于成功了!!!

  1. 如果要编译python的绑定(你要安装好python及其依赖)
    sudo make pycaffe -j8
    又出错了,F**k
    执行:sudo apt-get install python-dev
    还有错!
    执行:sudo apt-get install libpython-all-dev
    弱智错误,没有去掉#号
  2. 如果要编译matlab的绑定(你要安装好matlab)
    sudo make matcaffe -j8
    又出错…
    解决:在Makefile.config添加CXXFLAGS += -std=c++11 再编译下就好了

环境变量

整个下来,环境变量如下:

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH
export PATH=/usr/local/cuda-8.0/bin:/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=$PATH:/usr/local/MATLAB/R2014a/bin/

export LD_LIBRARY_PATH="/home/lab529/anaconda2/lib:$LD_LIBRARY_PATH"
#情急之下,我把anaconda的bin也加到/etc/profile里来, 没什么影响
export PATH=/home/lab529/anaconda2/bin:$PATH

export CPLUS_INCLUDE_PATH=/home/lab529/anaconda2/include/python2.7/:$CPLUS_INCLUDE_PATH

猜你喜欢

转载自blog.csdn.net/u010859498/article/details/79276687