赞
踩
如果要安装带CUDA的OpenCV,先按照本篇博客安装CUDA,然后参考我另一篇博客Ubuntu 编译OpenCV安装OpenCV。
本文以Ubuntu 18.04+CUDA 9.0+cuDNN 7.4.2为例,说明安装过程。
- sudo add-apt-repository ppa:graphics-drivers/ppa
- sudo apt-get update
这一步的目的是添加Ubuntu显卡驱动的源,然后才能从“软件和更新”中看新的到显卡驱动。如果是20系显卡或者要安装CUDA 10,必须执行上面的步骤。
带有“open source(开源)”字样的就是开源显卡驱动,都是在执行完第一步添加驱动的源之后才有的;带有“proprietary(专有)”字样的是专有显卡驱动,对于10系显卡,不管是否执行第一步都是有的,对于20系显卡,是没有的。“390”和“418”等字样是显卡驱动版本号。
对于10系显卡,搞深度学习的话推荐安装CUDA 9.0+cuDNN 7.4.2。
本文通过.run文件来安装CUDA。下载的CUDA文件命名方式都类似于“cuda_CUDA版本号_显卡驱动版本号_linux.run”;比如CUDA 9.0的文件名就是“cuda_9.0.176_384.81_linux.run”,其中“9.0.176”就是CUDA的版本号,“384.81”就是显卡驱动的版本号。因此“384.81”就是CUDA 9需要的显卡驱动的最低版本。
10系显卡在ubuntu 16.04上的专有驱动版本号是384,在ubuntu 18.04上的专有显卡驱动的版本号是390;故Ubuntu 16.04安装384版本的显卡驱动就能支持CUDA 9.0,ubuntu 18.04的专有显卡版本是390,虽然比384.81高,但也是兼容CUDA 9.0的。对于20系显卡,一般选择418版本的开源显卡驱动就行。
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/cuda-90-download-archive
进入下载页面后,做如下选择
需要说明的是,虽然CUDA 9.0没有为ubuntu 18.04编译,但是也是可以用的,只需要把gcc的版本降级到5.5就行。然后把“Base Installer”和“Parch1”~“Parch4”下载下来:
安装gcc-5以及g++-5
sudo apt-get install -y gcc-5 g++-5
通过update-alternatives管理gcc版本:
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 1 --slave /usr/bin/g++ g++ /usr/bin/g++-5
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 0 --slave /usr/bin/g++ g++ /usr/bin/g++-7
选择gcc版本:
sudo update-alternatives --config gcc
运行上面的命令之后,出现如下选择界面:
在“selection number”后面输入usr/bin/gcc-5前面的序号2,再敲回车即可。检查gcc以及g++版本是否是5.5:
- gcc --version
- g++ --version
sudo apt-get install mesa-common-dev freeglut3-dev
- chmod +x cuda_9.0.176_384.81_linux.run
- chmod +x cuda_9.0.176.1_linux.run
- chmod +x cuda_9.0.176.2_linux.run
- chmod +x cuda_9.0.176.3_linux.run
- chmod +x cuda_9.0.176.4_linux.run
打开终端,输入
sudo ./cuda_9.0.176_384.81_linux.run
然后按Ctrl+C, 输入“accept”接受协议;若提示"You are attempting to install on an unsupported configuration. Do you wish to continue?",输入“y”就行;当询问你是否安装驱动的时候,要输入"n",因为之前就安装过驱动了;主要的选项如下图
然后依次安装补丁包
- sudo ./cuda_9.0.176.1_linux.run
- sudo ./cuda_9.0.176.2_linux.run
- sudo ./cuda_9.0.176.3_linux.run
- sudo ./cuda_9.0.176.4_linux.run
打开终端,输入”gedit ~/.bashrc“,然后再弹出的编辑器的最后,添加如下两行
- export PATH=/usr/local/cuda/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存退出。
进入你的CUDA Example所在目录,默认是主目录,找到“NVIDIA_CUDA-8.0_Samples”或者“NVIDIA_CUDA-9.0_Samples”。依次打开“1_Utilities”-->"deviceQuery",然后打开终端输入
- # 使.bashrc的环境变量生效,重启之后或者打开新终端就不用再执行这一行了
- source ~/.bashrc
- # 修改文件权限
- sudo chmod -R 777 *
- # 编译
- make
- # 运行
- ./deviceQuery
然后出现”Result = PASS“字样时,说明安装成功了。
https://developer.nvidia.com/rdp/cudnn-archive
下载的时候要选择和安装的CUDA版本匹配的cuDNN。
然后下载“cuDNN Library for Linux”那一项:
以CUDA 9.0+cuDNN 7.4.2为例:
- # 解压
- tar zxvf cudnn-9.0-linux-x64-v7.4.2.24.tgz
- # 复制cudnn头文件
- sudo cp cuda/include/* /usr/local/cuda-9.0/include/
- # 复制cudnn的库
- sudo cp cuda/lib64/* /usr/local/cuda-9.0/lib64/
-
- # 添加可执行权限
- sudo chmod +x /usr/local/cuda-9.0/include/cudnn.h
- sudo chmod +x /usr/local/cuda-9.0/lib64/libcudnn*
安装过程实际上是把cudnn的头文件复制到CUDA的头文件目录里面去;把cuDNN的库复制到CUDA的库目录里面去。
NCCL是NVDIA多显卡通信库,是可选安装的。
https://developer.nvidia.com/nccl/nccl-legacy-downloads
下载"Download NCCL v2.3.7, for CUDA 9.0, Nov 8 & Dec 14, 2018"->“O/S agnostic local installer”
以CUDA 9.0+NCCL 2.3.7为例:
- # 解压
- tar Jxvf nccl_2.3.7-1+cuda9.0_x86_64.txz
- cd nccl_2.3.7-1+cuda9.0_x86_64/
- # 复制到CUDA目录
- sudo cp include/nccl.h /usr/local/cuda-9.0/include/
- sudo cp lib/* /usr/local/cuda-9.0/lib64/
- # 添加执行权限
- sudo chmod +x /usr/local/cuda-9.0/include/nccl.h
- sudo chmod +x /usr/local/cuda-9.0/lib64/libnccl*
就是把NCCL的头文件和库文件复制到对应的目录里面去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。