MindSpore在CentOS上无Root权限下的安装踩坑和给mindspore团队的建议

转载地址:https://bbs.huaweicloud.com/forum/thread-121675-1-1.html

作者:Tank不会code

首先,MindSpore如果不是在Ascend芯片下,只支持Ubuntu的pip安装方式,其它系统也没说支持不支持,就连教程的第一条也是说确认是否是Ubuntu18.04,这样搞还怎么推广……

我就试了下,在centos7.5上编译mindspore,由于一些原因我没有root权限,所有需要的库都需自己编译安装,安装位置也不能是系统目录下,所以有点麻烦,总的来说,坑不是很大,但是还是会很折腾人,如果官方能稍微改一下官网上编译安装的instruction,相信对于没有root权限而安装mindspore的人会很顺利地编译使用mindspore。

本文可能对于以下这些同学有些帮助:需要在ubuntu以外的系统linux dist上安装mindspore的,需要编译GPU版本的,没有root用户权限的。

较熟悉linux以及make,cmake这一套东西的同学可能会更好理解,因为有些细节和说法我省略了,不熟悉的同学可以先了解一下linux下自行编译安装软件的流程。

以下是我踩的坑:

1. 教程上list的那些包,说什么xxxx版本及以上的,请一定一定就安装他说的这个xxxx版本,不要装更新的版本,以免踩坑。

2. 请基本按照教程上的安装顺序安装这些所需依赖,autoconf automake libtool除外,下面会讲到。

3. 以下内容都针对全部依赖都是自己编译安装的同学,如果可以sudo yum install, sudo apt install之类的同学,可能不会遇到以下坑。

  • 编译安装gmp时,记得在configure时加上 --enable-cxx 选项,因为默认不生成libgmpxx库,而编译mindspore是需要的。
  • 安装这三个工具需要格外注意:autoconf, automake, libtool
    •  教程里说可以用系统自带的,但是往往系统自带的,这3个里总有一两个版本不符合要求,此时你不能只安装其中不符合要求的,而是需要把他们统一都重新编译安装一遍,而且他们需要在同一个位置下安装(就是configure时的prefix都设为一样),这点格外重要,必须装在一个路径下,这样就可以让他们共享bin,lib,share文件夹。
    • 安装的版本需要格外注意,尤其是autoconf,必须是2.69,2.70我没试,但2.71不行;automake就1.15.1,libtool就2.4.6。还需要注意的是autoconf的2.69版本好像后续又有人维护更新,变成2.69b 2.69c 2.69e什么的版本,统统不要用,用了编译不通mindspore。
    • 另外,格外需要注意他们安装的顺序,依次是autoconf, automake, libtool,顺序不能错。
    • 每编译安装完一个,需要先在PATH和LD_LIBRARY_PATH里把他们添加到库里,然后确认目前他们已经在环境中生效,可以用which命令来确定,比如which autoconf应该会输出你安装的autoconf的位置。确认好以后,再进行下一个工具的configure以及make。
    • 还有一个工具,m4,如果上述你都照做,编译mindspore时还是出现了这三个工具相关的报错,就请把编译的这仨工具全部删除,先自行编译一个m4,版本用1.4.17(别的没测),然后回到第一步,重新装这仨工具。
    • 上述这些都是为了保证mindspore在编译安装时,在 [mindspore根目录]/build/mindspore/_deps/ompi-src 子目录下配置依赖时不会出错。如果你在build mindspore时出现错误,错误相关的subdir是这个路径的话,请去openMPI的github page去搜索问题,去搜mindspore相关问题是找不到的。OpenMPI官方仓库有个HACKER.md文件,大家可以看看,也是提醒我并解决我这个坑的主要信息来源,我目前安装的mindspore 1.2.0-rc1在自动配置_deps/目录下的openMPI时是用的4.0.3版本的代码仓库,有点年头了,所以你安装库时要估摸着,不要安装太新版本的依赖,以免踩坑。
  • 如果系统没有numa或者版本不够需要自己安装时,不要去github上直接clone,不能用!因为版本不是他要求的2.0.11,你去仓库的release page去找相应版本的包下载,编译安装。
    • 这里还有个坑,除了PATH和LD_LIBRARY_PATH以外,你还需要把numa的include和lib添加到如下环境变量里,一个都不要少:
    • LIBRARY_PATH
      CPATH
      C_INCLUDE_PATH
      CPP_INCLUDE_PATH
      CMAKE_INCLUDE_PATH
      CMAKE_LIBRARY_PATH

最后会生成一个whl文件,按照文档写的步骤进行安装,就可以在python里使用mindspore了

这个whl文件应该可以在任何相似环境的centos系统上快速安装mindspore。

基本上我踩的坑就是上述这些,还有一些小坑,都是一些可以在网上轻易搜到解决方案的。上述这几个坑是真的坑,网上没有任何相关信息,address这些问题是需要花些时间的,然后才能根据找到的问题根源去想办法解决。

最后,我想给mindspore团队一点小小的建议,在安装文档里,还是能把安装顺序和重点需要关注的地方说的多一点,比如我上述提到的autoconf这些工具的安装,因为现在可能你们重心并没有放在GPU版本上,也没有测试很多发行版上的编译安装情况,第三方帮你们踩过一些坑以后,希望能在文档上有更多补充和完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值