首页 > 技术文章 > Faster-rcnn centos tensorflow

fclbky 2020-05-09 11:28 原文

一、安装NVIDIA驱动
首先去官网查适合自己的GPU驱动(http://www.nvidia.com/Download/index.aspx?lang=en-us)

 

 

在Product Type一栏选择自己的产品类型,其它的类型也相应选择,上图是博主的GPU的相关信息。填写完成后,点击右边的SEARC按钮,会出现以下的界面,以下界面主要关注Version,这个是后面安装驱动需要用的数据。

 

安装之前先卸载已经存在的驱动版本:

sudo apt-get remove --purge nvidia*

若电脑是集成显卡(NVIDIA独立显卡忽略此步骤),需要在安装之前禁止一项:

sudo service lightdm stop

执行如下语句安装:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-410 #注意在这里指定自己的驱动版本!
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
执行完上述后,重启(reboot)。

重启后输入: sudo nvidia-smi

如果出现了你的GPU列表,如下,则说明驱动安装成功了。

 

另外也可以通过

nvidia-settings
查看自己机器上详细的GPU信息,博主机器的信息如下:

 

二、安装CUDA
cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda

CUDA下载地址:https://developer.nvidia.com/cuda-downloads

 

 下载完cuda8.0后,去对应的目录,执行如下语句,运行runfile文件:

sudo sh cuda_8.0.61_375.26_linux.run
执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia375驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia410,所以这里不要选择安装。其余的都直接默认或者选择是即可。 

Do you accept the previously read EULA? (accept/decline/quit):
这里选择acceot
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.37? ((y)es/(n)o/(q)uit):
这里选择NO(n)
然后剩下出现的都是确认使用默认目录 ENTER 或者是 YES (y),然后就等着安装吧,很快就会好
安装成功后会出现如下界面: 

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部: 

打开~/.bashrc文件:

sudo vim ~/.bashrc

将以下内容写入到~/.bashrc尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

 

三、测试cuda的Samples
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
如果显示以下关于GPU的信息,则说明安装成功了。 

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1080 Ti"
CUDA Driver Version / Runtime Version 10.0 / 8.0
CUDA Capability Major/Minor version number: 6.1
Total amount of global memory: 11175 MBytes (11718230016 bytes)
(28) Multiprocessors, (128) CUDA Cores/MP: 3584 CUDA Cores
GPU Max Clock rate: 1658 MHz (1.66 GHz)
Memory Clock rate: 5505 Mhz
Memory Bus Width: 352-bit
L2 Cache Size: 2883584 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 1080 Ti
Result = PASS
四、cudnn安装
cuDNN是GPU加速计算深层神经网络的库。
首先去官网下载(https://developer.nvidia.com/rdp/cudnn-download)你需要的cudnn,下载的时候需要注册账号。选择对应你cuda版本的cudnn下载。这里我下载的是cudnn5.1,是个压缩文件(.tgz)
下载完cudnn5.1之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
再将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.10 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

五、 opencv3.1安装
opencv3.1.0下载地址:https://opencv.org/releases.html

下载对应版本的source(source是对应的linux版本)

并将其解压到你要安装的位置,假设解压到了/home/root1,其中root1是博主使用的用户名字,同时我将解压后的文件改名为opencv(可以不用改名)。

首先安装需要的依赖项。

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
在终端中cd到opencv文件夹下,然后 

mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里
cd build/
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" ..
cmake成功后,会出现如下结果,提示配置和生成成功:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/ise/software/opencv-3.1.0/build
然后make编译就可以了

make -j8
 编译最后可能出现以下错误:'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all' failed[5]
这是由于CUDA 8.0不支持OpenCV的 GraphCut算法引起的

解决办法:

修改 ~/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp文件 
把第45行修改成:

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

即在 #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 加上 || (CUDART_VERSION >= 8000)

重启系统,重启系统后cd到build文件夹下:(这一步可以不做)

sudo apt-get install checkinstall
sudo checkinstall
然后按照提示安装就可以了。
使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。
执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。

 

 


感谢: https://blog.csdn.net/qq_34809033/article/details/83830168

推荐阅读