张小白GPU安装MindSpore给你看(Ubuntu 18.04.5)

网友投稿 951 2022-05-28

在张小白尝试了 Windows CPU版本(PIP安装),Ubuntu CPU版本(PIP安装,源码安装)之后(参见 《张小白带你快速体验MindSpore V1.0(For ubuntu 18.04)》 https://bbs.huaweicloud.com/blogs/198324 和 《张小白教你如何在Ubuntu 18.04上源码安装MindSpore V1.0》 https://bbs.huaweicloud.com/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)

张小白GPU安装MindSpore给你看(Ubuntu 18.04.5)

惯例,看 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.com/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版本也确实不容易啊。。。好在张小白踩坑习惯了,遇到问题也没那么紧张了。想来,下一个坑,张小白仍然会遇到,但是张小白就像张小强一样,是打不倒的。。。

(全文完,谢谢阅读)

AI平台 EI企业智能 昇腾

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:delete、truncate、drop的区别有哪些,该如何选择
下一篇:Linux文件系统
相关文章