Ubuntu16.04+cuda9.0+cudnn7.05+opencv3.4.0+caffe
安装步骤:
更新源
备份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
打开 source.list 文件:
sudo gedit /etc/apt/source.list
将打开的文件内容删除,替换为:
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe
multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe
multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe
multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe
multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe
multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe
multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted
universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted
universe multiverse
刷新列表:
sudo apt-get update
安装驱动
首先了解自己电脑所带的显卡是什么型号,本人笔记本显卡为 GTX960M,然后去 NVIDIA
官网下载对应的驱动,
网址为:http://www.nvidia.cn/Download/index.aspx?lang=cn
产品系列要根据自己的显卡型号进行选择,笔记本选择带(Notebooks)标志的,因为笔记
本显卡多为 xxxM 版。GeForce 900M Series 的代表 960M,965M 等, GeForce 10 Series 的代表
为 1070,1080 等。
点右侧的搜索按钮
产品支持列表里能找到你的显卡型号就表示之前选择的没有问题。
版本为 384 版,小版本在 384.98 之上即可。
不需要下载。
终端内执行如下语句进行安装:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
执行完上述后,重启(reboot)。
重启后输入:
nvidia-smi
如果出现了你的 GPU 列表,则说明驱动安装成功了。
另外也可以通过:
nvidia-settings
查看自己机器上详细的 GPU 信息,信息大致如下:
安装 CUDA
cuda 是 nvidia 的编程语言平台,想使用 GPU 就必须要使用 cuda。
下载地址:https://developer.nvidia.com/cuda-toolkit-archive
我们不使用最新的 cuda9.1(估计与 9.0 无区别,如有需要可以尝试安装 9.1),使用 cuda9.0
即可。
选择 CUDA Toolkit 9.0
选择时按上图点选,Architecture 不要选 ppc64le,x86_64 才是普通电脑应该选的。
执行安装:
sudo sh cuda_9.0.176_384.81_linux.run
注意:9.0 代表 cuda 的版本,384 代表显卡驱动的版本,需要相互匹配,所以才有了第一步
中安装驱动的环节。
安装过程中会显示 0%
此时一直按住回车键,直至到达 100%
即使到达 100%没及时松手也无所谓,没什么影响。
之后需要做几个选择:
第一个:accept;
遇到是否安装显卡驱动时,要选 n,因为之前已经装过 384 版驱动了;
其余选 y 或者选默认(直接回车)。
安装成功后会出现如下界面:
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
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.s
o.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 with the name of this ru
n file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log
...
安装完毕后,再声明一下环境变量,
sudo gedit ~/.bashrc
将
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_L
IBRARY_PATH}}
写在所打开的文件最后,保存,关闭。
如果安装 CUDA9.1,请将 9.0 替换为 9.1 即可。
注意:安装 cuda 时,不要修改/etc/profile,所有的环境变量均写在~/.bashrc 里,修改前
者容易出现系统错误。
所以,下面这一步可以咋是不做,有问题再回来改这一步。
然后设置环境变量和动态链接库:
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
使链接立即生效。
测试 cuda 的 Samples
执行:
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery
如果安装 CUDA9.1,请将 9.0 替换为 9.1 即可。
如果显示的是一些关于 GPU 的信息,则说明安装成功了。
安装 cudnn
首先去官网下载你需要的 cudnn,下载的时候需要注册账号。选择对应 cuda 版本的 cudnn
版本进行下载。
下载地址:https://developer.nvidia.com/rdp/cudnn-download
for
CUDA
9.0
cuDNN
(Dec
5,
2017),
v7.0.5
选择 Download
cuDNN v7.0.5 Library for Linux
如果安装 CUDA9.1,请下载 for CUDA 9.1 即可。
下载完后进行解压,执行:
cd ~/下载/cuda/include
sudo cp cudnn.h /usr/local/cuda/include/
cd ~/下载/cuda/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
sudo ln -s libcudnn.so.7 libcudnn.so
目的是删除旧的软连接,生成新的软衔接。
可以打开对应的文件夹,去观察是否存在 libcudnn.so,libcudnn.so.7,
和 libcudnn.so.7.0.5,没有 7 或 7.0.5 请自行修改。
安装 Opencv
下载地址:https://opencv.org/releases.html
选择最新的 opencv-3.4.0,Sources 进行下载,解压,剪切到根目录。
因 3.2.0 版本与 cuda9.0 不兼容,3.3.0 没有尝试,直接选择的 3.4.0 版本。
sudo apt-get update
安装各种依赖项:
sudo apt-get install --assume-yes ffmpeg libopencv-dev build-essential cmake git
libgtk2.0-dev libgtk-3-dev pkg-config python-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 libgstreamer0.10-dev
libgstreamer-plugins-base0.10-dev libgstreamer1.0-dev
libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev libqt4-dev qtbase5-dev
libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
新建一个 build 文件夹,编译的工程都在这个文件夹里
cd ~/opencv-3.4.0
mkdir bulid
cd bulid/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D
WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..
注意:两个..要一起复制
期间会下载一个东西,速度有些慢,已保存在百度网盘,可由百度网盘下载,放入
opencv-3.4.0/.cache/ippicv 文件夹内。
.cache 是隐藏文件夹,ctrl + h 键可显示隐藏文件夹。
cmake 成功后,会出现:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/***/opencv-3.4.0/build
make 编译:
sudo make -j8
比较慢,耐心等待。。。
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
(sudo gedit /etc/ld.so.conf.d/opencv.conf 执行此命令后打开的可能是一个空白的文件,不用
管,只需要在文件末尾添加/usr/local/lib,效果同上一句)
执行如下命令使得刚才的配置路径生效:
sudo ldconfig
注意:
若提示:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
只需要分别输入上面图下部分的四行命令就可解决
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
若提示: