ubuntu 安装NVIDIA+cudnn+cudn+caffe
安装anaconda
- 用bash进行安装
- 添加环境变量, 包括bin目录和lib目录
安装NVIDIA
- sudo apt-get remove –purge nvidia-*
- chmod a+x NVIDIA-Linux-x86_64-384.90.run
- sudo ./NVIDIA-Linux-x86_64-384.90.run -no-x-check -no-nouveau-check -no-opengl-files
安装cudn
- chmod a+x cuda_8.0.27_linux.run
- sudo ./cuda_8.0.27_linux.run
- 除了第二项”是否安装显卡驱动”选择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
- 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
- sudo ldconfig
- 安装CUDA SAMPLE
进入/usr/local/cuda/samples, 执行下列命令来build samples
sudo make all -j4
进入 samples/bin/x86_64/linux/release, 运行deviceQuery
./deviceQuery 如果出现显卡信息, 则驱动及显卡安装成功
安装cudnn
- tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
- cd cuda/
- sudo cp lib64/lib /usr/local/cuda/lib64/**
- sudo cp include/cudnn.h /usr/local/cuda/include/
- 更新软连接
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
- 环境变量加进入
:/usr/local/cuda/lib64
:/usr/local/cuda/bin
source /etc/profile
- 同时需要添加lib库路径
在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下
/usr/local/cuda-8.0/lib64 - 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
- 安装git
sudo apt-get install git - 下载代码
git clone https://github.com/BVLC/caffe.git
- 安装python依赖
进入caffe中的python目录,输入
for req in req; done 进入caffe目录,复制一份Makefile.config.examples
cp Makefile.config.example Makefile.config编辑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
- 编辑Makefile.config,修改其中的matlab路径,python路径,去掉USE_CUDNN:=1前的#号
编译
sudo make all -j8
麻痹,一定要用sudo
易出错及参考:
参考 http://blog.csdn.net/sun_reed/article/details/54178572
NVCCFLAGS += -ccbin= (COMMON_FLAGS) 改为 NVCCFLAGS += -D_FORCE_INLINES -ccbin= (COMMON_FLAGS) 416行
参考 http://blog.csdn.net/xunan003/article/details/78429170
参考 http://blog.csdn.net/thesby/article/details/50512886sudo make test -j8
- 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
然后终于成功了!!!
- 如果要编译python的绑定(你要安装好python及其依赖)
sudo make pycaffe -j8
又出错了,F**k
执行:sudo apt-get install python-dev
还有错!
执行:sudo apt-get install libpython-all-dev
弱智错误,没有去掉#号 - 如果要编译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