深度学习框架搭建ubuntu16.04LTS+NVIDIA+cuda+cudnn+mxnet+tensorflow+anaconda和pycharm虚拟环境配置

参考
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

image.png

注意下载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

Validate MXNet Installation

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 安装。这样就能在代码里顺利导入相关的包了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容