淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装

    • total tips:
    • background konwledge
      • 一、显卡驱动、CUDA、cuDNN介绍
    • change source 中科大源
    • 降内核版本
      • step1:查
      • step2:装
      • step3:改
      • step4:删
    • Install driver cuda and cudnn
      • 1st Step: change gcc version(如有需要)
      • 2nd Step:Download cuda
      • 3rd Step:Download cudnn
      • 4th Step: Install cuda
      • 5th Step: install cudnn
      • 6th Step: test cuda and cudnn
    • nvidia-smi fail

total tips:

1 不必先安装显卡驱动,cudaToolkit自带有驱动了。先安装反而报各种错误

2 cudaToolKit一定要选择runFile,不要选择deb,否则会报错,并且不能再安装时选择配置

3 安装gcc,ubuntu18.04默认安装版本7.3,在进行cuda和cudnn安装测试时不能make,需要将gcc降级,比如5.5

background konwledge

一、显卡驱动、CUDA、cuDNN介绍

显卡驱动

显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。

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

change source 中科大源

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 ,效果是这个样子的
淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第1张图片
淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第2张图片
可以看到,安装失败,原因是:
在这里插入图片描述所以我们要更换内核

step1:查

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
淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第3张图片
可以看到,这里面是内核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

step2:装

 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

step3:改

修改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 查看内核版本,看看是不是成功了。

step4:删

查看所有内核

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

Install driver cuda and cudnn

1st Step: change gcc version(如有需要)

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

2nd Step:Download cuda

card - driver

https://developer.nvidia.com/cuda-toolkit-archive

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第4张图片淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第5张图片

3rd Step:Download cudnn

https://developer.nvidia.com/rdp/cudnn-archive

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第6张图片

4th Step: Install cuda

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

安装效果如下:

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第7张图片淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第8张图片可以看到,安装成功了。

如果需要单独安装显卡驱动:
之后执行以下命令开始安装驱动:

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

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第9张图片

dmesg | grep NVRM

如果没有问题,就可以往下进行了。

5th Step: install cudnn

#最新的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

6th Step: test cuda and cudnn

测试cuda

cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
#由自己电脑目录决定
sudo make
sudo ./deviceQuery

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第10张图片最下面显示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

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第11张图片

nvidia-smi fail

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

淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第12张图片
淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装_第13张图片

你可能感兴趣的:(淡黄的炼丹炉)