1 系统环境
硬件环境(Ascend/GPU/CPU): Ascend
MindSpore版本: 不限版本
执行模式(动态图): 不限模式
Python版本: 3.7/3.8/3.9
操作系统平台: linux
2 报错信息
2.1 问题描述
在系统上安装MindSpore后,import失败
2.2 报错信息
import mindspore
[WARNING] ME(63118:139781560567616,MainProcess):2022-10-28-22:52:09.840.358 [mindspore/run_check/_check_version.py:287] Using custom Ascend AI software package (Ascend Data Center Solution) path, package version checking is skipped, please make sure Ascend AI software package (Ascend Data Center Solution) version is supported, you can reference to the installation guidelines cid:link_0
[ERROR] ME(63118,7f216e438740,python):2022-10-28-22:52:10.017.779 [mindspore/ccsrc/runtime/hardware/device_context_manager.cc:46] LoadDynamicLib] Load dynamic library libmindspore_ascend failed, returns [/home/zzz/miniconda3/envs/hznmb/lib/python3.9/site-packages/mindspore/lib/plugin/libmindspore_ascend.so: undefined symbol: _ZN3Adx18AdxDataDumpProcess25MessageCallbackUnRegisterEv].
[WARNING] ME(63118:139781560567616,MainProcess):2022-10-28-22:52:10.474.98 [mindspore/run_check/_check_version.py:389] Can not find ccec_compiler(need by mindspore-ascend), please check if you have set env PATH, you can reference to the installation guidelines cid:link_0
[WARNING] ME(63118:139781560567616,MainProcess):2022-10-28-22:52:10.476.59 [mindspore/run_check/_check_version.py:400] Can not find driver so(need by mindspore-ascend), please check if you have set env LD_LIBRARY_PATH, you can reference to the installation guidelines cid:link_0
Segmentation fault (core dumped)
2.3 脚本代码
import mindspore
3 根因分析
从报错信息的warning和error信息中可以初步猜测,大概是因为安装mindspore前没有安装昇腾AI处理器配套软件包,或者没有正确设置LD_LIRARY_PATH等环境变量,导致找不到许多mindspore依赖的动态链接库。 下面详细分析各个报错信息:
- warning:
[WARNING] ME(63118:139781560567616,MainProcess):2022-10-28-22:52:09.840.358 [mindspore/run_check/_check_version.py:287] Using custom Ascend AI software package (Ascend Data Center Solution) path, package version checking is skipped, please make sure Ascend AI software package (Ascend Data Center Solution) version is supported, you can reference to the installation guidelines cid:link_0
查看_check_version.py的287行发现,发现是因为self.fwk_version文件不存在
fwk_version通过以下变量赋值:
进一步说明可能昇腾AI处理器配套软件包没有正确安装。
- error
[ERROR] ME(63118,7f216e438740,python):2022-10-28-22:52:10.017.779 [mindspore/ccsrc/runtime/hardware/device_context_manager.cc:46] LoadDynamicLib] Load dynamic library libmindspore_ascend failed, returns [/home/zzz/miniconda3/envs/hznmb/lib/python3.9/site-packages/mindspore/lib/plugin/libmindspore_ascend.so: undefined symbol: _ZN3Adx18AdxDataDumpProcess25MessageCallbackUnRegisterEv].
通过以下命令,进入到libmindspore_ascend.so的目录查看该so依赖的动态库
cd /home/zzz/miniconda3/envs/hznmb/lib/python3.9/site-packages/mindspore/lib/plugin/ readelf -d libmindspore_ascend.so | grep rpath
输出
再进一步查看服务器和LD_LIBRARY_PATH中是否存在这些的路径。
- warning
[WARNING] ME(63118:139781560567616,MainProcess):2022-10-28-22:52:10.474.98 [mindspore/run_check/_check_version.py:389] Can not find ccec_compiler(need by mindspore-ascend), please check if you have set env PATH, you can reference to the installation guidelines cid:link_0
ccec_compiler是mindspore用于编译算子的工具,一般在昇腾AI处理器配套软件包中安装,安装完成后需要将bin加入到PATH环境变量
4 解决方案
- 按照mindspore官网指南安装昇腾AI处理器配套软件包https://mindspore.cn/install
- 按照mindspore官网中配置以下环境变量
PS:可以将以上环境变量设置写成一个bash文件,在打开终端时执行。
1 系统环境
硬件环境(Ascend/GPU/CPU): Ascend
MindSpore版本: 不限版本
执行模式(动态图): 不限模式
Python版本: 3.7/3.8/3.9
操作系统平台: linux
2 报错信息
2.1 问题描述
在系统上安装MindSpore后,import失败
2.2 报错信息
2.3 脚本代码
3 根因分析
从报错信息的warning和error信息中可以初步猜测,大概是因为安装mindspore前没有安装昇腾AI处理器配套软件包,或者没有正确设置LD_LIRARY_PATH等环境变量,导致找不到许多mindspore依赖的动态链接库。 下面详细分析各个报错信息:
查看_check_version.py的287行发现,发现是因为self.fwk_version文件不存在
285 def check_version(self): 286 if not Path(self.fwk_version).is_file(): 287 logger.warning("Using custom Ascend AI software package (Ascend Data Center Solution) path, package " 288 "version checking is skipped, please make sure Ascend AI software package (Ascend Data " 289 "Center Solution) version is supported, you can reference to the installation guidelines " 290 "cid:link_0") 291 returnfwk_version通过以下变量赋值:
进一步说明可能昇腾AI处理器配套软件包没有正确安装。
通过以下命令,进入到libmindspore_ascend.so的目录查看该so依赖的动态库
输出
再进一步查看服务器和LD_LIBRARY_PATH中是否存在这些的路径。
ccec_compiler是mindspore用于编译算子的工具,一般在昇腾AI处理器配套软件包中安装,安装完成后需要将bin加入到PATH环境变量
4 解决方案
# control log level. 0-DEBUG, 1-INFO, 2-WARNING, 3-ERROR, 4-CRITICAL, default level is WARNING. export GLOG_v=2 # Conda environmental options LOCAL_ASCEND=/usr/local/Ascend # the root directory of run package # lib libraries that the run package depends on export LD_LIBRARY_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/lib64:${LOCAL_ASCEND}/driver/lib64:${LOCAL_ASCEND}/ascend-toolkit/latest/opp/op_impl/built-in/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH} # Environment variables that must be configured ## TBE operator implementation tool path export TBE_IMPL_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp/op_impl/built-in/ai_core/tbe ## OPP path export ASCEND_OPP_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp ## AICPU path export ASCEND_AICPU_PATH=${ASCEND_OPP_PATH}/.. ## TBE operator compilation tool path export PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/compiler/ccec_compiler/bin/:${PATH} ## Python library that TBE implementation depends on export PYTHONPATH=${TBE_IMPL_PATH}:${PYTHONPATH}PS:可以将以上环境变量设置写成一个bash文件,在打开终端时执行。