在SLAM稠密地图构建,和深度学习中,很多都要用到GPU,不然达不到实时性。但是以前调的代码可能和最新的代码使用的很多库版本不一样,比如opencv,CUDA等。尤其是CUDA,如果原来使用CUDA8.0,但是新代码要9.0,不可能每次都重装一下吧。
1、本文针对于的是ubuntu16.04,显卡是GTXforce-1050,支持CUDA
2、CUDA安装:
sudo apt-get update
首先安装系统驱动:在设置--软件和更新--附加驱动--选择384.130那个驱动--应用更改
然后注销系统重新登录,驱动应该就装好了。
接着安装CUDA,以8.0和9.0为例:到CUDA官网下载,比如cuda_8.0.44_linux.run,cuda_9.0.176_384.81_linux.run等
使用ctrl+alt+f1进入字符界面,进入下载的cuda_9.0.176_384.81_linux.run文件,使用
sudo sh cuda_9.0.176_384.81_linux.run
安装,需要特别注意的是:
(1)由于之前安装了驱动,因此在选择是否安装图形驱动的时候一定选择no,不然会重复进入登录界面。
(2)由于要安装其他版本的CUDA,因此不要选择生成快捷方式,不然后面会默认找到这个版本的CUDA
安装完成后使用,ctrl+alt+f7返回图形界面,然后注销一下在登录,没有问题的话,第一个版本的CUDA就装好了。
然后执行下面命令设置环境变量
sudo gedit /etc/profile
在末尾添加一下两行:
export PATH=/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
source一下:
source /etc/profile
注销一下使用env命令查看是否存在添加的环境变量。
可以在安装的的例子里面使用:make -j7编译一下,然后在生成的可执行文件里使用:
./deviceQuery
./bandwidthTest
查看是否安装完成,一般来说不会有什么问题。
3、多版本共存
这一步其实和上面一样:
sudo sh cuda_8.0.44_linux.run
(1)由于之前安装了驱动,因此在选择是否安装图形驱动的时候一定选择no,不然会重复进入登录界面。
(2)由于安装有版本的CUDA,因此不要选择生成快捷方式,不然后面会默认找到这个版本的CUDA
然后设置环境变量:
sudo gedit /etc/profile
在末尾添加一下两行:
export PATH=/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64
如果使用此版本的CUDA,那么将之前的设置的环境变量注释,保存。
source一下:
source /etc/profile
注销一下使用env命令查看是否存在添加的环境变量,此时就因该是8.0版本的环境变量了。
当然亦可以make一下例子文件,查看一下。
多说一句:在安装完成CUDA9.0,并使用其编译opnecv时:
Cmake版本不能太低
3.6不行(错误是:xfeatures2d/boostdesc: Download failed: 1;"Unsupported protocol";opencv2/xfeatures2d/cuda.hpp no such file or directory等)
3.9可以