一、个人电脑配置
硬件:NVIDIA GeForce 1080(lspci | grep -i vga 可以查看)
OS:ubuntu16.04
二、安装NVIDIA驱动
(1)在NVIDIA官网 http://www.nvidia.com/Download/index.aspx?lang=en-us 查看适合自己的显卡的驱动并下载
我的电脑是GeForce 10serials NVIDIA GTX 1080,系统是linux64位,对应最新的驱动版本是440,下载后是一个后缀为.run的文件
(2)在系统设置中安装,系统设置--->软件与更新--->附加驱动,这时候会显示很多适配的驱动,我下载的是430版本。
有时候会不显示适配开源驱动,现在终端输入:sudo lshw -c video | grep coniguration(好像是,这里有点忘了,不过不显示那一定是需要先搜索一下驱动)
安装驱动完成后,要重启电脑,就可以打开终端测试:nvidia-smi,出现下面界面就成功了
这个是示例,跟实际我的配置不一样。
三、 CUDA安装
首先在官网(https://developer.nvidia.com/cuda-toolkit-archive),按照自己的配置选择,下载CUDA9.0版本:
下载完成后执行安装命令:
sudo chmod 777 cuda_9.0.176__384.81_linux.run
sudo ./cuda_9.0.176__384.81_linux
出现下面的界面后,一直点回车直到100%:
下面会陆续弹出一些选择项,如图选择即可,第二个我们已经下载好驱动,就不需要下载了
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/pci ]:
安装完成后,配置环境变量:
打开~/.bashrc文件: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}}
export PYTHONPATH=/home/ubuntu/caffe/python$PYTHONPATH
保存关闭之后执行source ~/.bashrc
输入 sudo ldconfig //环境变量生效
测试一下CUDA的samples
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
显示以下信息,就是安装成功了
sudo /home/ubuntu/NVIDIA_CUDA-8.0_Samples
make
需要等待几分钟,不报错则测试成功
四、配置cuDNN
下载cuDNN,到官网https://developer.nvidia.com/rdp/cudnn-download下载,需要注册一个账号才可以下载的
我这里下载的是cuDNN7.1版本,下载后进行解压:
sudo tar -zxvf /cudnn-7.1-linux-x64-v5.1.tgz
显示如下文件:*cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.1.5
cuda/lib64/libcudnn_static.a*
解压后 cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include 复制头文件
再进入lib64目录下复制生成软连接:
cd ..
cd lib64
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
继续执行指令:
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
设置环境变量和动态链接库:
sudo gedit /etc/profile
在打开的文件最后加上:
export PATH=/usr/local/cuda/bin:$PATH
保存后创建链接:
sudo gedit /etc/ld.so.conf.d/cuda.conf
加入:/usr/local/cuda/lib64,保存退出
sudo ldconfig 设置生效
在编译之前,备份配置文件
cd /usr/local/cuda-8.0/include
sudo cp host_config.h host_config.h.bak
进入例文进行编译:
cd /usr/local/cuda/samples
sudo make all -j4
cd /usr/local/cuda/samples/bin/x86_64/linux/release
sudo ./deviceQuery
出现以下界面就是安装成功了
五、安装OpenCV3.4.9
在官网https://opencv.org/releases/下载源码openCV3.4.9,解压并建立build文件
unzip opencv-3.4.9.zip
sudo cp ./opencv-3.4.9 /media/pci
sudo mv opencv-3.4.9 opencv
cd ~/opencv
mkdir build
cd build
配置并编译
sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local
sudo make -j8
我的编译过程还挺顺利,不过有时候也会出现一些问题,可自行在网上查找,问题都有普遍性,类似版本兼容、缺少库等问题还挺多的
六、配置caffe
1、下载caffe
git clone https://github.com/BVLC/caffe
2、复制一个Make文件,并修改编译文件
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
修改内容:
(1)#USE_CUDNN := 1 改成 USE_CUDNN := 1(使用cudnn)
(2)#OPENCV_VERSION := 3 改成 OPENCV_VERSION := 3(使用的是opencv3的版本)
(3)#WITH_PYTHON_LAYER := 1 改成 WITH_PYTHON_LAYER := 1(使用Python写layer)
(4)# Whatever else you find you need goes here. 下面的
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 改成 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 改成 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
2、修改makefile文件
原文处:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
修改后:NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
3、编辑/usr/local/cuda/include/host_config.h文件(这步我没有操作,不知道什么原因,不过也没有影响结果,应该gcc的版本满足要求)
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
4、编译
在caffe路径下:make all -j4
5、测试
sudo make runtest
这一步要安装一个:sudo apt-get install ffmpeg,否则会报错
出现下面的界面就是大功告成了