张小白GPU安装MindSpore给你看(Ubuntu 18.04.5)
在张小白尝试了 Windows CPU版本(PIP安装),Ubuntu CPU版本(PIP安装,源码安装)之后(参见 《张小白带你快速体验MindSpore V1.0(For ubuntu 18.04)》 https://bbs.huaweicloud.cn/blogs/198324 和 《张小白教你如何在Ubuntu 18.04上源码安装MindSpore V1.0》 https://bbs.huaweicloud.cn/blogs/198349 ),GPU的安装也纳入了议事日程。
毕竟Ascend910不是穷逼的张小白能买得起的。但是Nvidia的过气GPU,张小白倒是有好几块(台式机一块,笔记本一块)
不过根据张小白的分析,想用Windows安装GPU版本的MindSpore V1.0貌似是不可能的了。因为根本没有这个选项。所以张小宝就动起了自己笔记本的歪脑筋。自己的笔记本不有个Nvidia显卡吗?那就试试呗。。没想到就此躺坑。。。
先把硬件环境介绍一下:
CPU:Intel Core i7-8750H @2.20GHz 六核
内存:64G DDR4 2666
硬盘:Crucial MX500 250G SSD(2.5寸SATA)
显卡:Nvidia Quardo P1000(4G)
惯例,看 http://mindspore.cn/install
GPU只能选择Ubuntu操作系统。只能选择Python 3.7.5 (后面还会发现,只能选择CUDA 10.1。。。这是后话,暂且不提)
那么,第一步,就是先装Ubuntu 18.04操作系统。。。Nonono,第一步是先拆机,换硬盘好吧。。。
打开笔记本背板:
1个SATA硬盘(图中银色部分)和2个NVME硬盘(图中黑色条挡住的部分)映入眼帘。
因为怕安装双系统会导致系统启动出问题,张小白果断选择了拔掉所有的硬盘。然后装上这块久违了的SSD 250G硬盘。。
然后,使用台式机的360软件管家,安装了UltraIso:
并从ubuntu网站下载了 18.04.1的iso文件。(就是安装前面CPU版本的iso)
找到一个久违了的4GU盘。
然后,使用UltraISO制作启动U盘:
点击,启动-》制作硬盘镜像。。。
然后,将U盘插入笔记本电脑。
加点,启动。
开机进入ubuntu的GRUB界面:
仔细看看:
点击 Install Ubuntu...
原来以为一切会很美好。。。系统出现个画面:(映出张小白的头影)
第一个坑不期而至:
刚开机就Crash了。啥也没装。。。
赶紧度娘搜寻。原来Ubuntu和Nvidia好像天然就有矛盾。。。因为Ubuntu开机是内置了一个开源的显卡驱动nouveau,而Nvidia天生跟这个显卡驱动冲突,所以应该先把这个nouveau显卡驱动删除,然后再装上Nvidia的驱动,然后才能正常安装Ubuntu系统。
有说这样做的:
还有说修改为 acpi=off 之类的。张小白都一一试过了。好像通通不行。。
要么给这个错:
要么给那个错:
总之,都进不了安装ubuntu的界面。
张小白都快急死了。。。直到看到网上一位大大的一句话:
先装 ubuntu server的版本,等把显卡驱动搞定后,再去装desktop桌面。。。
这句话简直就是明灯了。。(不是老罗的“行业冥灯”的那个冥。。)
张小白也是觉得这样是个出路。
二话不说,赶紧去Ubuntu官网下载 ubuntu 18.04的桌面版镜像 ubuntu-18.04.5-live-server-amd64.iso
并用UltraIso制作这个iso文件的U盘启动盘(参数跟前面的一样)。
然后启动。。。。果然,不使用图形界面,是完全可以安装下去的。。
截几张中间安装的图:
选择硬盘配置:
分区:
主机名:gpu
用户名:ascend
密码:***
附加软件:先不装。。
慢慢等待安装完毕:
重启后,可以正常用命令行登录了:
忘记说了,笔记本是提前接上网线的:
然后,查资料,说Nvidia的显卡管理程序是nautilus..
运行的时候发现没装,那就装上吧。。。
继续:
居然发现要装那么多依赖,而且是从ubuntu.com装。。。那得多慢。。
确实,每次装完ubuntu第一件事情,就应该换apt源。。。
赶紧修改 sources.list文件
然后更新源:
apt update
apt-get update
apt-get install aptitude
顺便检查下 预置的Python版本:3.6.9. 看来还是得源码安装Python 3.7.5啊(不过安装视频上用了conda创建,不过既然张小白已经有了源码安装的经验,那也没必要用conda了。。)
这里一定要不能转移目标,而是要想到当前的关键任务是:卸载开源显卡驱动,安装Nvidia显卡驱动。。其他的事情都是可以先放手的。。。这个最重要。
根据上图的做法,先禁用nouveau吧。。。
更新系统
重启。。。
再来装一次nautilus..
等待安装完毕:
添加PPA源:
add-apt-repository ppa:graphics-drivers/ppa
与此同时,需要到Nvidia官网下载对应的显卡驱动:NVIDIA-Linux-X86_64-450.80.02.run
每个人的显卡不一样,张小白是这么搜索的。。
确认是支持P1000的显卡:
将这个文件拷贝到U盘(前面的U盘已经安装完毕,可以重新格式化后再拷贝。。。)
将U盘mount到/mnt目录,并将 该安装包拷贝到/root目录下。然后 umount U盘。。
按照以下方法,先删除nvidia的原有驱动。。
apt-get remove nvidia-*
然后试着运行run。。。
./NVIDIA-Linux-x86_64-450.80.02.run -no-x-check -no-nouveau-check -no-opengl-files
(以上的参数都填上吧。。)
发现gcc,g++,make都没装。。
那就赶紧装吧:
apt-get install gcc
apt-get install g++
apt-get install make
再运行Nvidia的那个run。。。,终于跑了起来。。。
会进入图形界面:
然后会有几个提示:
可以按实际情况点击即可继续。。。
直到最后安装完毕:
然后可以激活并查看状态:
modprobe nvidia
nvidia-smi
从上面的参数可以看出,显卡驱动是 450.80.02版本,CUDA的版本是11.0. 显卡类型为 Quadro P1000。内存4040M(也就是4G显存)。张小白发现CUDA的版本11.0跟此次安装需要的CUDA版本10.1不一致。就很担心又出现版本不一致的问题。但是以后查了下资料,发现 nvidia-smi显示的CUDA 11.0跟 后面需要的CUDA貌似不是一回事。
这样看来,原来的开源显卡已屏蔽,合适的Nvidia驱动也已经装上。应该是时候安装ubuntu-desktop了。。。
apt-get install ubuntu-desktop
(这笔记本真容易落灰。。。)
等待直到安装完毕。。。
apt-get install lightdm
会进入图形界面,让张小白选择缺省的显示管理器。。。这时,可以选择任何一个。。
感觉应该快装完了。。。
重启系统
sync
sync
reboot
结果停留在这个界面:
怎么也进不了Ubuntu的图形登录界面。。。
张小白又去搜索,为啥Ubuntu 18.04启动后无法进入桌面。。
比如这个
。。。
说要修改grub文件并且更新grub
照此办理,折腾了好几下。。包括重启。。
终于有图形界面出来了。。。登录进去。。。看到了原来在虚拟机中熟悉的红色桌面。。。
这说明,万里长征的第一步算是圆满完成了。。。
在桌面打开firefox浏览器,打开 http://mindspore.cn/install ,选择这次的安装方式,并在打开的窗口中输入 nvidia-smi
是的,CUDA不一样的问题暴露出来了。
先装Python 3.7.5吧。。。
这个张小白熟悉得不能再熟悉了。。。记得编译成动态库。。
下载源码包:
解压后先 安装一些依赖:
等待依赖安装完毕...
configure...(注意看最下面的行——编译参数不能错。。。)
make。。。
make install后 再做一些配置上的修改(/etc/profile)——可参见《张小白教你如何在Ubuntu 18.04上源码安装MindSpore V1.0》 https://bbs.huaweicloud.cn/blogs/198349 )——增加 PATH(/usr/python3/bin)和LD_LIBRARY_PATH(/usr/python3/lib)
然后检查python3是否可以正常运行。。。
结果证明是可以的。
下面可以先装一些pip的依赖。。。(当然,也可以不装,而是在装mindspore的whl文件时再在线装。。)不过自行装有个好处,就是可以自己先指定好pip源。。。
像下面Pillow这个忘记指定了,下载速度还是有点慢的。。。
但是下面这个指定了,速度非常快:
等待装完。。
继续装其他依赖numpy。。
以及opencv-python
好了,pip的依赖好像就上面那么多了。
张小白再检查下其他的系统依赖。。
看上面箭头部分的就可以了。
包含Python 3.7.5, CUDA 10.1 , CuDNN>=7.5 gmp 6.1.2
另外两个可选的自然是可以不装的。(而且张小白就一个GPU,也没有多卡。。)
那么先搞定gmp 6.1.2吧。。还记得在源码安装CPU版本时,也装过gmp的,但是当时gmp的版本没那么高。
那就开始吧。。
到gnu的网站找gmp源码位置:
找到6.1.2的版本后复制链接。。然后在终端使用wget下载。。
下载完毕后例行 configure,make和make install
gmp搞定。
下面来装CUDA:
点击mindspore安装链接中 CUDA对应的链接 https://developer.nvidia.com/cuda-10.1-download-archive-base
按以下图示选好相关的配置:
这个方式跟MindSpore的安装方式非常像。。。是不是互相借鉴的。。。。张小白不怀好意的想。。。
别想了。点击右边的Download。。。(有2.4的G的文件要下载呢。。)
张小白是在ubuntu的firefox里面点击这些的。当然,也可以现在其他电脑下载好了,再通过前面的方式用U盘传进来。。可能使用windows的浏览器会快一点。谁知道呢。。。
当然,第一次下载的时候,Nvidia会提示张小白去注册个 Nvidia开发者的账户。。。
选择 Join Now,然后用有效的邮箱注册就可以了。163的邮箱就可以。
然后去验证下自己的邮箱
cuDNN也如法炮制:
点击 http://mindspore.cn/install 提供的链接,张小白先选择了 8.0.3 for CUDA 10.1的版本。mindspore官网要求的是 cuDNN >= 7.6。。 张小白想 8.0.3>7.6,应该是可以的。
同样点击后下载。。。
这个时间比较长,张小白需要等待将近3G的2个文件下载完毕。。。
这个时候,可以先把mindspore的gpu版本的whl下载下来。
打开 https://www.mindspore.cn/versions 地址
复制GPU对应的链接
在终端中做wget
耐心地等待三个文件下完。。
根据提示,再做一些准备补充的准备工作:
如 apt-get install linuix-headers-$(uname -r)
好了,开始装CUDA 10.1吧。。
进入界面:
输入accept,回车。。
在弹出的界面中,只选 CUDA ToolKit 10.1 ,其他统统不选。
点击上图中的install(有点看不清,就是白色的那个块块)
装完后,系统会提示要修改PATH和LD_LIBRARY_PATH.这个在安装Python 3.7.5的时候张小白就已经驾轻就熟了。。
按照上图,修改 /etc/profile 并执行 source /etc/profile 让当前终端生效。
然后解压CuDNN包
将CuDNN解压后的include和lib64下的文件分别拷贝到 /usr/local/cuda-10.1/的 include和lib64目录下去。。
终于可以安装mindspore的gpu版本了。。。
耐心等待安装结束。。
有的已经满足了(前面装过了)。。。有的还没有(比如scipy居然不对。。)
仔细看了一下,是缺省scipy安装了 1.5.2的版本,但是mindspore要求1.3.3的版本。所以mindspore卸载了 1.5.2的版本,重新拉了1.3.3的版本。。早知道前面张小白直接装scipy==1.3.3了。还好。一个安装包,不大不要紧。
安装完毕了,可以试验一下了。。
根据官网提示,验证gpu的方式跟验证cpu的略有不同。
官网提供了这么一个脚本:
张小白将这段脚本贴进去,保存为 test.py文件。
然后执行 python3 test.py
额,,importError了。。。
他要找libcudnn.so.7,而看看上面截图,张小白安装的是libcudnn.so.8... 原来,还是不能太相信 大于这回事。。
让我们回忆一下前面张小白怎么说的。。
显然8是不可以的。看来得重新下载7的版本了。
重新进入CuDNN的下载界面
选择 7.6.5 for CUDA 10.1 以及 cuDNN Library for Linux
同样的方式下载完毕。。。解压完毕。。
然后再同样的方式将 include和lib64目录拷贝到cuda的相应目录下。
这个时候,张小白发现,原来 /usr/local/cuda和/usr/local/cuda-10.1是一个目录,所以拷贝也可以简单写了。。
当然,/etc/profile也可以简单写了。
好了,这回让张小白来验证吧。。
总算验证通过了。
最后发一张收尾的工作图吧。。
看来,装一个GPU的Mindspore V1.0版本也确实不容易啊。。。好在张小白踩坑习惯了,遇到问题也没那么紧张了。想来,下一个坑,张小白仍然会遇到,但是张小白就像张小强一样,是打不倒的。。。
(全文完,谢谢阅读)
- 点赞
- 收藏
- 关注作者
评论(0)