Step0:在终端输入:ubuntu-drivers devices,查看自己显卡适配的驱动:

ubuntu-drivers devices

在Ubuntu18.04下安装cuda_重启
选择recommended版本

在Ubuntu18.04下安装cuda_bash_02

sudo apt-get install nvidia-driver-455

重启

sudo reboot

验证是否安装成功

nvidia-smi

在Ubuntu18.04下安装cuda_bash_03

step2:安装Cuda

https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
在Ubuntu18.04下安装cuda_linux_04

在Ubuntu18.04下安装cuda_.net_05

sudo sh cuda_10.0.130_410.48_linux.run 

补充:cuda10.0版本以后不需要读,直接accept
在Ubuntu18.04下安装cuda_linux_06

补充:cuda10.0版本以后会显示一张表,【X】这个里面的X表示要安装的,所以要把第一个安装驱动的X去掉,因为我们已经安装完驱动了
在Ubuntu18.04下安装cuda_linux_07

最后会提示:

在Ubuntu18.04下安装cuda_bash_08

这是因为我们在安装CUDA的时候没有选择安装驱动,提示需要安装驱动,忽略就行。

vi ~/.bashrc

在尾部添加:
添加环境变量:第三行需要根据你的版本选择/usr/local/cuda-10.0/

export CUDA_HOME=/usr/local/cuda 
export PATH=$PATH:$CUDA_HOME/bin 
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存并退出:1.按ESC,2.再按3.输入wq!

wq!

激活

source ~/.bashrc

测试是否安装成功

上面的选项选择安装了CUDA例子,运行其中一个来测试是否安装成功:

cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

结果PASS就表明成功啦

step3:安装cudnn

选择对应的cuda版本的cudnn
在Ubuntu18.04下安装cuda_重启_09
选择下面的
在Ubuntu18.04下安装cuda_bash_10
之后解压:

在命令行窗口进入解压的文件夹中 ,即当前的文件夹中,有cuda这个文件夹,这很重要,否则下面的命令会无效,然后执行下面的命令

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ 
sudo chmod a+r /usr/local/cuda/include/cudnn.h 
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

打开python,运行下面代码,返回True就是成功。

import torch
torch.cuda.is_available()

卸载:

卸载CUDA很简单,一条命令就可以了,主要执行的是CUDA自带的卸载脚本,读者要根据自己的cuda版本找到卸载脚本:

sudo /usr/local/cuda-10.0/bin/uninstall_cuda_10.0.pl

卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0。可以一并删除:

sudo rm -rf /usr/local/cuda-8.0/

这样就算卸载完了CUDA。

补充:可能需要的操作

1.Bios禁用secure boot,设置为disable

2.卸载之前安装的驱动

sudo apt-get purge nvidia*

3.禁用nouveau

一定要禁用,否则可能会导致一些乱七八糟的问题!

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

在文末添加:blacklist nouveau

执行

sudo update-initramfs -u

然后重启

reboot

重启后执行

lsmod | grep nouveau

若无输出代表禁用nouveau生效。