淡黄的炼丹炉(篇三):Ubuntu 18.04深度学习Server NVIDIA与CUDA相关环境安装
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 ,效果是这个样子的 可以看到,安装失败,原因是: 所以我们要更换内核
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 可以看到,这里面是内核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,改为如下代码 ??????????????还插timeout!!!!!!!!!!!!!!!!!!!!!
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
这样操作后,就完成了内核降级的操作
Install driver cuda and cudnn
1st Step: change gcc version(如有需要)
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-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
3rd Step:Download cudnn
https://developer.nvidia.com/rdp/cudnn-archive
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前面‘–’
./cuda_10.0.130_410.48_linux.run --no-opengl-libs
安装效果如下:
可以看到,安装成功了。
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
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
如果没有问题,就可以往下进行了。
5th Step: install cudnn
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 -i libcudnn7-samples
sudo dpkg -i libcudnn7-dev
sudo dpkg -r libcudnn8
6th Step: test cuda and cudnn
测试cuda
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
测试cudnn
cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
|