要点初见:Ubuntu下CUDA环境安装的相关问题解决

笔者操作的系统为Ubuntu16.04,显卡为1080Ti,在反复重装CUDA的过程中遇到了不少问题,而网上博客的相关解决方法真的良!莠!不!齐!以下为笔者遇到并解决的坑,以及一些小Tips:

1、驱动环境的安装问题:Failed to initialize NVML: Driver/library version mismatch 或  no CUDA-capable device is detected

本机入的坑:

笔者从NVIDIA官网装好最新的NVIDIA GPU驱动(440)、装好CUDA后,nvcc -V有CUDA版本信息,未重启,输入nividia-smi,系统报了“no CUDA-capable device is detected”的ERROR,运行神经网络框架Darknet报了“Failed to initialize NVML: Driver/library version mismatch”的ERROR,笔者一开始采用了如下两篇博客中的操作Ubuntu中Failed to initialize NVML: Driver/library version mismatch问题的解决出现“no CUDA-capable device is detected”报错解决,用sudo apt-get install重新安装驱动,结果系统报了CUDA安装时的GPU驱动版本与当前GPU驱动不匹配的错。

本机的解决:

参考详解Ubuntu16.04安装nvidia驱动+CUDA+cuDNN的教程,必须先装驱动,而后重启!这种情况下重启即可解决no CUDA-capable device is detected的ERROR!!

Ubuntu安装NVIDIA最新驱动的方法如下:

(1)下载最新官方驱动

到如下NVIDIA官网网址中搜索并下载自己电脑所搭载的NVIDIA显卡对应的驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn,记住这个目录!

(2)卸载旧驱动

如果原先驱动由apt-get安装,则用:

sudo apt-get remove --purge nvidia*
sudo apt-get remove --purge nvidia-*

如果原先驱动由.run文件安装,则用

sudo chmod +x *.run
sudo ./<NVIDIA-Linux-File-Name>.run --uninstall

删除。

(3)禁用nouveau驱动

sudo gedit /etc/modprobe.d/blacklist.conf

在文本最后添加并保存:

blacklist nouveau
options nouveau modeset=0

然后在命令行中运行:

sudo update-initramfs -u

重启,在命令行中输入:

lsmod | grep nouveau

如果无输出则代表nouveau禁用成功。

(4)禁用X-Window服务(这步记得要拍照,因为图形界面会在这步操作内关闭)

关闭图形界面:

sudo service lightdm stop 

按Ctrl+Alt+F1进入系统1号命令行,输入Ubuntu系统的用户名、密码登录。

(5)安装驱动

cd到先前下载的驱动目录下,输入:

sudo chmod +x <Latest-NVIDIA-Linux-File-Name>.run
sudo ./<Latest-NVIDIA-Linux-File-Name>.run –no-opengl-files

(6)重启并测试

重启!!然后新开一个命令行输入

nvidia-smi
nvidia-settings 

前者有输出显卡信息框,后者有打开显卡设置界面即为安装成功。

2、在命令行中实时显示显卡使用情况:

本机的解决:

watch -n 1 -d nvidia-smi

1s更新一次,会占用一个命令行。

 

3、CUDA的下载、安装以及Darknet适配的版本

本机的解决:

笔者下载的是CUDA9.0,网址为:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal,常用的Installer Type一般是deb(local)或者runfile(local),前者安装时需要联网下载的内容较少,笔者较熟悉;后者安装后自带CUDA卸载脚本。

以deb(local)的安装为例,直接参考选好Type后下方的官方安装命令:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

其中cuda-repo-<version>笔者本机的是cuda-repo-9-0-local,具体可在系统/var/目录下看自己的路径是什么。注意版本一定要和下载的版本一致,如果链接到CUDA7.5去就要检查update运行了没有add pub添加key成功了没有。

还有就是要注意Darknet之类环境适配的CUDA版本,笔者先前试过CUDA9.2与Darknet不适配,不知道现在CUDA10时候能适配,建议在网上看看别人成功使用的版本配套方案。版本安装错误后一定要按照本文第5点的方法卸载先前安装的CUDA版本,不然CUDA多版本冲突的问题可比Python多版本冲突的问题烦多了。

 

4、CUDA扩展包安装

本机的解决:

上一步的链接中不仅包括Base Installer,还有官方对CUDA的后续补丁Patch 1到Patch 4,它们的安装方法在网上较为小众,参考CUDA 9.0在Ubuntu上的安装,对Patch1到4依次如下操作:

sudo dpkg -i <Patch-Name>.deb
sudo apt-get update  
sudo apt-get upgrade cuda-9-0

5、卸载CUDA

本机入的坑:

网上各博客对CUDA的卸载描述各不相同,,很多完全就没有卸载干净。

本机的解决:

sudo apt-get remove cuda*
sudo apt-get remove --purge cuda*
sudo apt-get update
cd /usr/local/
sudo rm -r cuda-*

然后删除环境变量:

sudo gedit ~/.bashrc

在打开的本文中搜索“cuda”,删掉包含cuda的那几行。

 

6、cuDNN的下载与安装

本机的解决:

cuDNN是CUDA的辅助包,能提高神经网络的训练、推理效率,一般在CUDA安装后安装,官网下载地址为:https://developer.nvidia.com/rdp/cudnn-download,Login后选择匹配CUDA版本的cuDNN版本,下载cuDNN Library for Linux的版本,解压并cd进解压后的目录(默认名称为cuda),用如下方法安装:

sudo cp include/cudnn.h /usr/local/cuda-9.0/include/
sudo cp lib64/* /usr/local/cuda-9.0/lib64/

其中cuda-9.0部分根据本机的cuda版本进行修改。

 

欢迎探讨!

猜你喜欢

转载自blog.csdn.net/m0_37857300/article/details/104074955