Ubuntu 16.04 GT610 Cuda8.0 OpenCV3.4.3+opencv_contrib Caffe
安装前操作
-
验证系统是否具有支持CUDA的GPU
确定显卡型号:
查看系统属性,或者从命令行输入:
$ lspci | grep -i nvidia
只有NVIDIA显卡,并且能在 http://developer.nvidia.com/cuda-gpus 找到对应型号,那么该GPU就支持CUDA功能。 -
GPU和CUDA Toolkit的对应版本确认
支持GPU的驱动版本:
https://www.nvidia.cn/object/unix-cn.html
CUDA Toolkit版本与GPU版本对应信息:
信息来源:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
相对较早的GPU,建议GPU支持的驱动版本和CUDA Toolkit版本都尽量选择对应较低的版本号,否则可能导致后面Caffe在运行时出现异常。验证系统是否正在运行受支持的Linux版本
根据不同版本CUDA Toolkit,确定是否支持CUDA Toolkit。
例如CUDA Toolkit v8.0:
信息来源:https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html验证系统是否已安装gcc
查看gcc版本:
$ gcc --version
验证系统是否安装了正确的内核头文件和开发包。
查看正在运行的分发和版本号:
$ uname -m && cat /etc/*release
或者,过运行以下命令找到系统正在运行的内核版本:
$ uname -r
如果没有任何信息显示,可以使用以下命令安装当前运行的内核的内核头文件和开发包:
$ sudo apt-get install linux-headers - $(uname -r)
安装显卡驱动
虽然在安装CUDA Toolkit会提供对应的驱动版本,但仍建议自行查找合适的驱动安装,因为CUDA Toolkit自带的驱动不一定是适合当前GPU的版本。
需要下载以下package:
GPU驱动:NVIDIA-Linux-x86_64-390.87.run
禁用Nouveau
要安装显示驱动程序,必须首先禁用Nouveau驱动程序。Linux的每个发行版都有不同的方法来禁用Nouveau。
创建文件:
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
输入一下信息并保存:
blacklist nouveau
options nouveau modeset=0
重新生成内核initramfs:
$ sudo update-initramfs -u
输入一下命令,查看是否禁用成功:
$ lspci | grep nouveau
没有任何信息显示,则表示禁用成功。如果此方法不能禁用成功,则可以选择以下方式:
直接移除这个驱动(备份出来):
$ mv /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
重新加载一下
$ sudo update-initramfs -u
重启:
$ sudo reboot
显示器字体有明显变大模糊的情况。
安装驱动
执行安装:
$ sudo sh NVIDIA-Linux-x86_64-390.87.run
运行安装文件过程中如果提示you appear to be running an x server;
的类似错误,请运行以下命令进行关闭:
$ sudo /etc/init.d/lightdm stop
检查是否安装成功:
$ cat /proc/driver/nvidia/version
显示如下信息:
则安装成功。
安装CUDA Toolkit
CUDA Toolkit的安装有多种方式,我们采用最可控的一种,runfile install(运行文件安装)。
需要下载以下package:
CUDA Toolkit工具包:cuda_8.0.61_375.26_linux.run
官方建议GPU算力在3.0以下,不要安装Cudnn。因此,我们这次的环境搭建中不支持Cudnn(GT610算力为2.1,可在 http://developer.nvidia.com/cuda-gpus 查询相关信息)。
确保显卡安装成功的前提下,进行CUDA Toolkit安装。
$ sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs //不安装opengl
配置安装选项:
显示如下信息,则是安装运行成功:
配置环境变量:
$ sudo vi ~/.bashrc
将如下内容保存至.bashrc:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
执行生效:
$ source ~/.bashrc
检验CUDA 是否安装成功:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
显示Result = PASS
,则表示安装成功:
如果没有成功,则需要卸载后重新install。
以上安装内容,参考 https://docs.nvidia.com/cuda/archive/8.0/cuda-installation-guide-linux/index.html#runfile 第4章节和 https://blog.csdn.net/qq473179304/article/details/79444609 。
安装OpenCV3.4.3(含opencv_contrib)
因为需要包含opencv_contrib的一些模块,所以OpenCV采用源码编译安装。
安装FFmpeg
鉴于OpenCV对FFmpeg的依赖,需要先安装FFmpeg。
$ git clone https://github.com/FFmpeg/FFmpeg.git
$ git checkout n3.4.5
// checkout到一个可以支持opencv3.4.3的任一版本
$ ./configure --enable-shared
// 需要编译成静态库
$ make
$ sudo make install
安装Opencv
opencv_contrib模块源码克隆:git clone https://github.com/opencv/opencv_contrib.git
切换到指定版本:
cd ~/opencv_contrib
// 进入到opencv_contrib源码路径
git checkout 3.4.3
// 切换到分支3.4.3