一、准备工作
电脑GPU型号、Ubuntu版本、NVIDIA驱动版本、CUDA版本。这四个需要相互匹配,具体见官网。
我的配置是:
- 显卡:GT 710
- Ubuntu : 18.04
- NVIDIA驱动:NVIDIA-Linux-x86_64-450.57.run
- CUDA:cuda_11.0.2_450.51.05_linux.run
1、下载NVIDIA显卡驱动:
在NVIDIA官网查找驱动,并下载。
如果下一步安装时候显示错误:error in check sums,就找一个较低版本的安装。
下载好的驱动文件放在主目录,方便安装。
2、下载CUDA:
按照官网命令下载最新版本的CUDA11.0.2;
如果要下载旧版本,需要从网页搜索下载。
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
二、安装NVIDIA驱动
step1:bios禁用secure boot,设置为disable
(注意:按的是在小键盘那里的delete键)
step2:卸载之前安装的驱动:
sudo apt-get purge nvidia*
step3:禁用nouveau:
sudo gedit /etc/modprobe.d/blacklist.conf
在文末添加:blacklist nouveau
然后执行
sudo update-initramfs -u
然后重启
reboot
重启后按住CTRL+ALT+F6,进入命令行模式。这个时候是进不去图形界面的,会卡在【OK】Start GNOME
Display Manager;
如果Ubuntu安装了中文系统,进入命令行之后一段时间,屏幕都会一直闪烁,耐心等一会。
进入命令行之后,输入命令:
lsmod | grep nouveau
若无输出代表禁用nouveau生效,可以继续操作。
如果不金庸nouveau,那么后面安装驱动的时候也会报错的,所以这步不可以省略。
step4:给驱动文件增加可执行权限:
(此时体现出将安装包放在主目录的好处)
sudo chmod a+x NVIDIA-Linux-x86_64-450.57.run
step5:安装NVIDIA驱动:
sudo ./NVIDIA-Linux-x86_64-450.57.run -no-opengl-files
-
进入安装向导后,第一个问题:The distribution pre-install script failed!
——这里选择continue; -
因为我新安装的系统,所以报错:Unable to find the development tool ‘cc’ in your path!
——需要安装gcc:
sudo apt-get install gcc
安装完gcc之后,执行:whereis gcc
,看一下是不是有三个文件(bin/lib/压缩包),然后执行echo $PATH
,应该包含/usr/bin/gcc;usr/lib/gcc
,如果没有就手动加入:
export PATH=$PATH:/usr/bin/gcc
-
报错:Unable to find the development tool ‘make’ in your path!
——需要安装make:
和gcc的安装类似,此时再查看路径,应该包含/usr/bin/gcc;usr/lib/gcc;/usr/bin/make
-
继续安装,出现:The CC version check failed!
——选择Ignore; -
Would you like to run the nvidia-xconfig utility to…
——选择Yes; -
ERROR:Unable to find the kernel source tree for the currently running kernel.
参考了博文,我是4.15版本,所以在这个网址里面下载Build for amd64 succeeded (see BUILD.LOG.amd64)
标题下的五个文件,然后执行:
sudo dpkg -i *.deb
全部安装,最后重启,就可以解决找不到kernal的问题。
step6:测试驱动是否安装成功
nvidia-smi
输出一个表格,就是安装成功!
三、安装CUDA
接着上面的界面继续操作,不需要重启。
step1给CUDA文件增加可执行权限:
(这里要是忘记了cuda叫什么,就去主目录看一下)
sudo chmod a+x cuda_11.0.2_450.51.05_linux.run
step2:安装CUDA
sudo ./cuda_11.0.2_450.51.05_linux.run --no-opengl-libs
如果出现大段声明, CTRL+C可以跳过。
step3:检查CUDA是否安装成功
安装结束后,会出现:
step4:重新启动电脑,此时可以进入图形界面了。
四、配置环境变量
路径变量需要包括/usr/local/cuda-11.0/bin
和/usr/local/cuda-11.0/nsight-compute- (CUDA随附的Nsight Compute版本,例如nsight-compute-2020.1.1)。
# 添加路径到PATH变量
export PATH=/usr/local/cuda-11.0/bin:/usr/local/cuda-11.0/nsight-compute-2020.1.1${PATH:+:${PATH}}
# 此外,使用runfile安装时,64位系统上的LD_LIBRARY_PATH变量需要包含/usr/local/cuda-11.0/lib64
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#保存环境变量
source /etc/profile
此时,执行命令env
,应该能看到PATH里面出现了CUDA的路径。
#重启电脑
reboot
source /etc/profile
只能在当前终端生效,重新开启一个终端后,该环境变量失效;重启电脑才是永久生效。
五、确认安装成功
step1:在继续之前,重要的是确认CUDA工具包能够找到并且正确地与支持CUDA的硬件通信。为此,需要编译并运行其中一些示例程序。
# 通过执行以下命令来确定驱动程序的版本
cat /proc/driver/nvidia/version
汇编示例。如果不加make后的参数,可能会遇到错误。
# 进入/usr/local/cuda-11.0/Samples目录:
make -k
step2:没有make成功的可能解决方法
- 报错,没有g++,执行:
sudo apt-get install build-essential --fix-missing
——build-essential是一整套包括gcc、g++、make等,这个命令是修补安装build-essential,即已安装了部分build-essential,但没有安装完全,此时可以使用该命令继续安装build-essential。
- “权限不够”的致命错误:
——没有将CUDA加入环境变量。执行env
,确认PATH中是否有CUDA的路径。
step3:编译完成后,/Samples下会出现/bin文件夹。运行二进制文件
cd ~/usr/local/cuda-11.0/Samples/bin/x86_64/linux/release
./deviceQuery
在~/NVIDIA_CUDA-10.2_Samples目录下找到并运行deviceQuery文件,如果CUDA软件安装和配置正确的话,最后一行输出:Result = PASS
真正的输出取决于系统。
第一行显示检测到设备,第二行显示设备型号,最后一行显示测试通过。
如果设备支持CUDA且CUDA驱动程序已经安装,但是deviceQuery文件报告现在没有支持CUDA的设备,那就可能是/dev/nvidia*文件丢失或者权限问题,还有可能是未关闭SELinux。
六、测试GPU加速效果
1、编译时,Makefile中GPU=0,OPENCV=1,则不采用GPU加速;
2、编译时,Makefile中GPU=1,OPENCV=1,则有加速。
对比看效果。
参考资料
https://blog.csdn.net/qq_32408773/article/details/84111244
https://blog.csdn.net/ywdll/article/details/103619130#commentBox