1 不必先安装显卡驱动,cudaToolkit自带有驱动了。先安装反而报各种错误
2 cudaToolKit一定要选择runFile,不要选择deb,否则会报错,并且不能再安装时选择配置
3 安装gcc,ubuntu18.04默认安装版本7.3,在进行cuda和cudnn安装测试时不能make,需要将gcc降级,比如5.5
显卡驱动
显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。
CUDA
官网introduction:其是由NVIDIA发明的并行计算平台以及编程模型,它可以显著的提高GPU的计算性能。
官网introduction链接:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
cuDNN
官网综述:NVIDIA的cuDNN是针对深度神经网络计算的一个GPU加速库,为标准例程提供了高度优化的实现,比如向前、向后卷积,池化,规范化和激活层。其是NVIDIA Deep Learning SDK的一部分。
官网综述链接:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/
有一个比喻能够更形象的说明CUDA、cuDNN两者的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
比喻出自:https://www.jianshu.com/p/622f47f94784
sudo gedit /etc/apt/sources.list
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
sudo apt update
如果不降内核,直接安装cuda ,效果是这个样子的
可以看到,安装失败,原因是:
所以我们要更换内核
https://developer.nvidia.com/cuda-toolkit-archive
找你想装的 cuda 的online document(我的是10.0)
https://docs.nvidia.com/cuda/archive/10.0/cuda-installation-guide-linux/index.html
可以看到,这里面是内核4.15.0,gcc是7.3,但是18.04默认内核是5.4.0,所以要降内核。
PS:降内核有风险,操作前请慎重
参考地址:
https://www.cnblogs.com/leeqizhi/p/11469309.html
https://www.jianshu.com/p/f284bc90944f
sudo apt-get install linux-headers-x.x.x-x-generic linux-image-x.x.x-x-generic
x.x.x-x = 4.15.0-38
修改GRUB,使用新内核进系统
编辑/etc/default/grub文件中的GRUB_DEFAULT
默认为GRUB_DEFAULT=0,改为GRUB_DEFAULT=10
屏蔽掉GRUB_TIMEOUT_STYLE
GRUB_RECORDFAIL_TIMEOUT=10
GRUB_DEFAULT="Advanced options for Ubuntu > Ubuntu, with Linux 4.15.0-38-generic"
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_RECORDFAIL_TIMEOUT=10
GRUB_CMDLINE_LINUX=""
GRUB_DEFAULT="Advanced options for Ubuntu > Ubuntu, with Linux 4.15.0-38-generic"
3、更新GRUB并重启
sudo update-grub
reboot
4、重启选择的内核
在重启过程中,需要进入【Ubuntu高级选项】,选择Linux 4.15.0 generic进行启动刚才安装的内核,否则无法进入系统
系统启动以后,使用uname -a 查看内核版本,看看是不是成功了。
查看所有内核
dpkg --get-selections | grep linux
移除冗余内核:
所有和4.15.0-38无关的内核统统干掉
sudo apt-get remove XXXXX
卸载后重新检查:
dpkg --get-selections | grep linux
状态为deinstall即已经卸载,如果觉得看着不舒服的话可以使用purge连配置文件里一起彻底删除,清理内核列表
sudo apt-get purge XXXX
更新系统引导
删除内核后需要更新grub移除失效的启动项
sudo update-grub
reboot
这样操作后,就完成了内核降级的操作,GRUB显示启动内核是4.15了:
mlinux@mlinux:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-38-generic
Found initrd image: /boot/initrd.img-4.15.0-38-generic
Adding boot menu entry for EFI firmware configuration
done
sudo apt-get install gcc make
#gcc和make这一步千万别省,这个还可以帮我们建立$CC这个变量,装显卡驱动要用
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt install gcc-5 g++-5 gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 30
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 30
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40
sudo update-alternatives --install /usr/bin/g++ gc++/usr/bin/g++-5 50
sudo update-alternatives --config gcc
gcc --version
card - driver
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-archive
1 禁用nouvea显卡驱动
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
在结尾添加
blacklist nouveau
接着执行
sudo update-initramfs -u
sudo reboot
重启后执行:
lsmod | grep nouveau
没有输出即屏蔽好了.
2 关闭图形界面(注意是关闭,不是切换),重启选择进入命令行界面
关闭图形界面:
sudo systemctl set-default multi-user.target
sudo reboot
打开图形界面
sudo systemctl set-default graphical.target
sudo reboot
3 先彻底删除原有nvidia驱动
sudo apt-get remove --purge nvidia*
4 安装cuda10, –no-opengl-libs参数一定要if wanna remove cudnn:
加上,注意no前面‘–’
sudo sh ./cuda_10.0.130_410.48_linux.run --no-opengl-libs
安装效果如下:
如果需要单独安装显卡驱动:
之后执行以下命令开始安装驱动:
sudo ~/Downloads/NVIDIA-Linux-x86_64-495.44.run -no-opengl-files -no-nouveau-check
-no-opengl-files:只安装驱动文件,不安装OpenGL
文件
-no-nouveau-check:安装驱动时不检查NouVeau
安装过程中会出现页面需要选择:
1:安装 DKMP,选择 YES,以后内核更新后,不用手动再次更新驱动
2:安装32-bits兼容文件,选择Yes和No都可以。
3:安装 Nvidia X-config 允许更新xorg.conf配置文件重启时生效,选择NO。
安装成功之后进行重启
5.设置环境变量
sudo vim .bashrc
in the end of this file ,add this several lines:
PATH=/usr/local/cuda/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH
export LD_LIBRARY_PATH
sudo su #切换到root账户
echo "/usr/local/cuda/lib64" > /etc/ld.so.conf.d/cuda.conf
6.reboot and have a look at nvidia-smi :
sudo reboot
nvidia-smi
dmesg | grep NVRM
如果没有问题,就可以往下进行了。
#最新的nvidia是有一个deb installer的,先安装这个deb
#要是下载下来是三个deb,那跳过此步骤
#要是下载下来不是运行文件,解压缩后直接是库,那就baidu搜索cudnn安装,看是拷贝的那种教程
sudo dpkg -i cudnnxxxxx.deb
#deb安装完成后其实还没有安装cudnn,只是解压缩了deb包(就离谱,谁设计的玩意)
sudo find / -name libcudnn
cd xxxxx
sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.4.1.5-1+cuda10.0_amd64.deb
如果想要移除cudnn:
sudo dpkg -r libcudnn7-samples
sudo dpkg -r libcudnn7-dev
sudo dpkg -r libcudnn7
测试cuda
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
#由自己电脑目录决定
sudo make
sudo ./deviceQuery
最下面显示TEST=PASS就是证明CUDA安装的没问题
但是,不能证明CUDNN没问题
测试cudnn
sudo apt-get install libfreeimage3 libfreeimage-dev
#解决fatal error: FreeImage.h: No such file or directory
cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
ref:
https://blog.csdn.net/nizhenshishuai/article/details/123873453
第一步,安装dkms:
sudo apt-get install dkms
第二步,查看本机连接不上的驱动版本:
ls -l /usr/src/
第三步,使用dkms重新安装适合驱动:
sudo dkms install -m nvidia -v 470.103.01