深度学习框架搭建ubuntu16.04LTS+NVIDIA+cu
参考
https://blog.csdn.net/wf19930209/article/details/81877822
http://blog.csdn.net/fdqw_sph/article/details/78745375
http://blog.csdn.net/wiinter_fdd/article/details/66523468
http://blog.csdn.net/liangyihuai/article/details/77842628
https://mxnet.incubator.apache.org/install/index.html
https://www.jianshu.com/p/9ba7b257c91c
Nvidia驱动另一种安装方法
https://blog.csdn.net/tjuyanming/article/details/80862290
卸载方法:
https://blog.csdn.net/l297969586/article/details/67632608
https://blog.csdn.net/FIELDOFFIER/article/details/54017297
使用软件版本:cuda9.0,cudnn7.0.x坚决不用7.1!
系统安装
问题1:双显卡电脑启动会黑屏
解决方法:
- 在引导界面,按e进入grub编辑界面,在quiet splash 后面添加 acpi_osi=linux nomodeset
- 按F10接着引导启动
- 进入登录界面,输入用户名密码,进入主界面,在命令行输入代码
sudo vim /etc/default/grub
找到 quiet splash 后面添加 acpi_osi=linux nomodeset
按:wq保存
sudo update-grub
重启即可
下载安装包
查看自己gpu显卡型号
lspci | grep -i nvidia
驱动管网上下载安装包NVIDIA-Linux-x86_64-390.25.run
网址http://www.nvidia.cn/page/home.html
下载cuda_9.1.85_387.26_linux.run
网址https://developer.nvidia.com/cuda-downloads
注意下载runfile文件
下载cudnn-9.1-linux-x64-v7.1.tgz 需要注册登录后才可以下载,cudnn版本一定要支持cuda版本
网址https://developer.nvidia.com/cudnn
nvidia 驱动安装
禁用nouveau
ubuntu自带的nouveau驱动会影响cuda安装,不当操作会导致黑屏和登陆循环。参考https://linuxconfig.org/how-to-disable-nouveau-nvidia-driver-on-ubuntu-18-04-bionic-beaver-linux
安装中遇到的问题:安装驱动会无限循环登录界面
解决方法:在登录界面按住ctril+alt+F1 进入tty界面输入用户名和密码登录,卸载原有NVIDIA驱动
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
安装中遇到 unable load Nvidia-drm
在这两个目录中找到有关nvidia文件
grep nvidia /etc/modprobe.d/* /lib/modprobe.d/*
如果有blacklist-nvidia
文件,把它删除
然后运行
sudo update-initramfs -u
sudo reboot
安装中遇到nvidia-smi 可以使用,但是nvidia-setting不能使用
这是在/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT 中设置了 acpi_osi=linux nomodeset 的结果
在/etc/default/grub
删除该代码并添加
acpi_rev_override=5 nouveau.runpm=0
sudo update-grub
即可
安装一些依赖(网上借鉴,个人安装没有遇到)
我在安装过程中遇到下图中的问题
网上查找发现遇到的人不多,经查找,可能是因为缺少32位的库文件(我安装64位的,为啥需要这个。。。晕),需要安装依赖
sudo apt-get install lib32ncurses5
sudo apt-get install lib32z1
安装后可解决
然后开始安装驱动,继续在tty界面输入命令
sudo service lightdm stop
(*网上借鉴,个人没有遇到)此时可能关不了,即使现实该操作OK,但是一会再开启时会有问题,可以在此基础上增加操作,手动删除X图像界面,图像界面X在/tmp路径下,具体操作:
cd /tmp
sudo rm -rf .X*
这样就可以把关于X的图像界面文件全部删除(每次重启都会再次生成,所以会在alt+ctrl+f1界面下操作)
安装nvidia driver
sudo chmod a+x NVIDIA-Linux-x86_64-390.25.run
sudo ./NVIDIA-Linux-x86_64-390.25.run -no-x-check -no-nouveau-check -no-opengl-files
- –no-x-check 安装驱动时关闭X服务
- –no-nouveau-check 安装驱动时禁用nouveau
- –no-opengl-files 只安装驱动文件,不安装OpenGL文件
提示步骤
Accept->Continue installation->sign the kernel module(为内核模块签名)?选择是->使用已有的密钥给模块签名还是重新生成?选重新生成密钥->是否删除已生成的密钥文件?选择否->安装完成
问题:The target kernel has CONFIG_MODULE_SIG set,which means that it supports cryptographic signatures on kernel module. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key.This system also UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?
解决:禁用UEFI安全启动功能
启动电脑,然后按电脑的设置访问UEFI,本机器按[F2]键,不同的制造商可能有不同的设置,具体请参考主板说明书。
根据不同的UEFI版本,安全启动选项通常在一个选项卡下,这个选项卡可能被命名为“Boot”、“Security”或者“Authentication”,在类似的选项卡中查找,我们会发现一个“Secure Boot”选项,该选项默认设置为“Enabled”,选中它并回车,将其设置为“Disabled”,按[Apply]键存储设置,重新启动电脑即可安装我们需要的操作系统。
sudo reboot
进入主界面输入
nvidia-smi
显示上图则说明成功
显卡切换
prime-select intel
prime-select nvidia
安装cuda9.1
找到下载文件的路径
chmod a+x cuda_9.1.85_387.26_linux.run
sudo ./cuda_9.1.85_387.26_linux.run
单击回车,一路往下运行,直到提示“是否为NVIDIA安装驱动nvidia-384?”,选择否,因为已经安装好驱动程序了,其他的全都是默认,不过要记住安装位置,默认是安装在/usr/local/cuda文件夹下。
配置环境变量,运行如下命令打开profile文件
sudo gedit /etc/profile
打开文件后在文件末尾添加路径,也就是安装目录,命令如下:
export PATH=/usr/local/cuda-9.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64$LD_LIBRARY_PATH
保存,然后重启电脑
sudo reboot
测试CUDA的例子
cd /usr/local/cuda-9.1/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
如果显示的是关于GPU的信息,则说明安装成功了。
最后你会看到cuda驱动、sample、tookit已经安装成功,但是缺少一些库。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
环境变量配置
安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:
export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后设置环境变量和动态链接库,在命令行输入:
sudo gedit /etc/profile
在打开的文件末尾加入:
export PATH=/usr/local/cuda/bin:$PATH
保存之后,创建链接文件:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件中添加如下语句:
/usr/local/cuda/lib64
然后执行
sudo ldconfig
使链接立即生效。
安装cudnn
继续Ctrl+alt+F1进入的字符界面
进入解压后的cudnn-9.1-linux-x64-v7.1.tgz文件cuda,在终端执行下面的指令安装:
tar -zxvf cudnn-9.1-linux-x64-v7.1.tgz
cd cuda
sudo cp lib64/lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
然后更新网络连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.0.3 # 自己查看.so的版本
sudo ln -sf libcudnn.so.7.0.3. libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
重新启动图形化界面
sudo service lightdm start
再Ctrl+alt+F7退出Text Mode。
使用anaconda创建虚拟化环境
conda create -n mxnet python=3.6
激活虚拟化环境
conda activate mxnet
在虚拟化环境中使用pip安装gpu mxnet
Install MXNet with GPU support using CUDA 9.1
pip install mxnet-cu91
install graphviz(Optional, needed for graph visualization using mxnet.viz package).
sudo apt-get install graphviz
pip install graphviz
Validate the installation by running simple MXNet code described here.
Experimental Choice If You would like to install mxnet with Intel MKL, try the experimental pip package with MKL:
pip install mxnet-cu91mkl
python
>>> import mxnet as mx
>>> a = mx.nd.ones((2, 3), mx.gpu())
>>> b = a * 2 + 1
>>> b.asnumpy()
array([[ 3., 3., 3.],
[ 3., 3., 3.]], dtype=float32)
运行成功则安装成功
pycharm 使用虚拟环境
File->setting->Project:XXXX->Project Interperter
image.png
选择anaconda3/envs/mxnet/bin/python3.6,选择后系统会load相关的配置,这样就可以愉快的在PyCharm中使用Anaconda的虚拟环境了。
遇到的坑(没遇到)
练习的时候需要使用Graphviz这样一个包,这是一个把数据图形化的包。但是不管是通过brew brew install graphviz
还是Anaconda conda install -c anaconda graphviz
安装,在代码中始终无法导入。
最后通过查看这里解决。大概的意思是graphviz的conda包并不是一个python包,通过conda install -c anaconda graphviz
只是把相关的文件下载下来,还需要通过pip install graphviz
安装。这样就能在代码里顺利导入相关的包了。