一、参考资料

CUDA、CUDNN在Ubuntu下的安装及配置

二、注意事项

  1. 用deb方式安装CUDA,会附带安装显卡驱动,默认安装;
  2. 用run方式安装CUDA,会附带安装显卡驱动,可以选择不安装;
  3. 安装显卡驱动的时候,最好安装高版本的,这样不会受cuda版本的影响;

三、run方式

  1. 卸载用run方式安装的CUDA和驱动
# cuda10.0及以下的卸载
cd /usr/local/cuda-xx.x/bin/
sudo ./uninstall_cuda_xx.x.pl
sudo rm -rf /usr/local/cuda-xx.x

# cuda10.1及以上的卸载
cd /usr/local/cuda-xx.x/bin/
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x

如果上面的方法不行,再是试试下面的方法

#uninstall cuda
# 第一行命令不要忘记要加上perl命令,要不然会报错
sudo perl /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl 

# 删除文件夹
sudo rm -rf /usr/local/cuda-X.Y

#uninstall driver
sudo /usr/bin/nvidia-uninstall 
sudo apt-get remove --purge nvidia-*
  1. run方式安装CUDA
是否同意条款,必须同意才能继续安装)
accept/decline/quit: accept

(这里不要安装驱动,因为已经安装最新的驱动了,否则可能会安装旧版本的显卡驱动,导致重复登录的情况)
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 10.0 Toolkit?(是否安装CUDA 10 ,这里必须要安装)
(y)es/(n)o/(q)uit: y

Enter Toolkit Location(安装路径,使用默认,直接回车就行)
 [ default is /usr/local/cuda-10.0 ]:  

Do you want to install a symbolic link at /usr/local/cuda?(同意创建软链接)
(y)es/(n)o/(q)uit: y

Install the CUDA 10.0 Samples?(不用安装测试,本身就有了)
(y)es/(n)o/(q)uit: n

Installing the CUDA Toolkit in /usr/local/cuda-10.0 ...(开始安装)

3. run方式安装cuDNN

四、deb方式

  1. 卸载用deb方式安装的CUDA
# 卸载cuda
sudo apt-get --purge remove <package_name>
注:package_name即为cuda,或者/usr/local/cuda,  /usr/local/cuda-7.5

# 删除cuda-7.5文件夹
sudo rm -rf /usr/local/cuda-7.5

# 查看关联文件,逐个删除
sudo find / -name cuda-9*

# 自动删除
sudo apt-get autoclean

# 删除cuDNN
cd /usr/local/include/
sudo rm cudnn.h 

cd /usr/local/lib/
sudo rm libcudnn.*
  1. deb方式安装CUDA
# 按照提示安装CUDA
sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

# 安装Patch补丁
sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-nvjpeg-update-1_1.0-1_amd64.deb
...
done.
正在处理用于 libc-bin (2.23-0ubuntu11.3) 的触发器 ...
正在处理用于 initramfs-tools (0.122ubuntu8.17) 的触发器 ...
update-initramfs: Generating /boot/initrd.img-4.15.0-112-generic
正在处理用于 dbus (1.10.6-1ubuntu3.6) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19.1) 的触发器 ...
正在处理用于 ca-certificates (20210119~16.04.1) 的触发器 ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.

3. deb方式安装cuDNN

  • 下载deb格式的cuDNN文件
  • 按照顺序安装3个deb文件(先runtime,再developer,最后doc)
# 包含了某些深度学习应用
# cuDNN Runtime Library for Ubuntu16.04 (Deb)
sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.0_amd64.deb

# 包含了在Ubuntu系统上开发深度学习时所需的cuDNN头文件
# cuDNN Developer Library for Ubuntu16.04 (Deb)
sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.0_amd64.deb

# 包含了cuDNN例程和相关文档
# cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb)
sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.deb

五、配置CUDA环境变量

# 配置环境变量
>>> sudo gedit  ~/.bashrc
 
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
 
# 更新环境变量
>>> source ~/.bashrc
 
# 查看cuda是否安装成功
>>> nvcc -V

六、测试安装是否成功

  1. 测试CUDA是否安装成功
  2. 测试cuDNN是否安装成功

七、可能出现的问题

  • 无法定位软件包
解决办法:
(1)解压deb文件,找到cuda-10-0-local-10.0.130-410.48.list文件
cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64/data/etc/apt/sources.list.d/cuda-10-0-local-10.0.130-410.48.list
(2)手动添加ppa源
软件和更新,其他软件,添加
  • 下载显卡驱动超时
已下载 8,379 kB,耗时 4分 2秒 (34.5 kB/s)                                      
E: 下载 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/pool/main/n/nvidia-graphics-drivers-410/nvidia-410_410.78-0ubuntu0~gpu16.04.1_amd64.deb  连接超时 [IP: 91.189.95.85 80] 失败

E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
错误原因:
apt下载网速太慢,连接超时

解决办法:
安装apt-fast 通过使用多线程下载来给apt-get 提速
参考资料 [apt-get install 下载太慢怎么办,用apt-fast!](https://community.bwbot.org/topic/193/apt-get-install-下载太慢怎么办-用apt-fast)

sudo apt-get install cuda  --fix-missing

sudo add-apt-repository ppa:saiarcot895/myppa
sudo apt-get update
sudo apt-get -y install apt-fast

sudo apt-fast install 包名
  • nvidia-smi找不到显卡驱动
nvidia-smi
Failed to initialize NVML: Driver/library version mismatch

解决办法:
重启电脑
  • cuda : 依赖: cuda-11-1 (>= 11.1.0) 但是它将不会被安装
错误原因:
安装CUDA需要依赖较低级的包

解决办法:
通过 sudo aptitude install 来尝试通过降级解决问题

1. 安装aptitude-> sudo apt-get install aptitude
2.将apt-get换成aptitude -> sudo aptitude install cuda
3. 好多冲突,选择了Y,455替换了
4. 重启 -> nvidia-smi
5. nvcc --version 显示版本号,成功