ubuntu16.04中使用多版本的CUDA

在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可以

猜你喜欢

转载自blog.csdn.net/qq_38589460/article/details/88759509