请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎添加文末好友,共同成长!不定期掉落福利资讯(*^▽^*)

写在最前面

版权声明:本文为原创,遵循 CC 4.0 BY-SA 协议。转载请注明出处。

注意,需要昇腾AI处理器。

可以先通过npu-smi info,检查 Ascend 卡状态。

在这里插入图片描述

  • MindSpore 2.3及以上, 安装教程:https://www.mindspore.cn/install
  • download,可使用命令pip install download安装

在这里插入图片描述

创建并进入Conda虚拟环境

根据您希望使用的Python版本创建对应的Conda虚拟环境并进入虚拟环境。

如果您希望使用Python3.9.11版本:

conda create -c conda-forge -n mindspore_py39 python=3.9.11 -y
conda activate mindspore_py39

如果希望使用其他版本Python,只需更改以上命令中的Python版本。当前支持Python 3.8,Python 3.9和Python 3.10。

在虚拟环境中安装昇腾AI处理器配套软件包提供的whl包,whl包随配套软件包发布,升级配套软件包之后需要重新安装。

pip install sympy
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/te-*-py3-none-any.whl
pip install /usr/local/Ascend/ascend-toolkit/latest/lib64/hccl-*-py3-none-any.whl

在这里插入图片描述

如果升级了昇腾AI处理器配套软件包,配套的whl包也需要重新安装,先将原来的安装包卸载,再参考上述命令重新安装。

pip uninstall te topi hccl -y

安装MindSpore

确认您处于Conda虚拟环境中,并执行如下命令安装最新版本的MindSpore。如需安装其他版本,可参考版本列表在mindspore=后指定版本号。

conda install mindspore -c mindspore -c conda-forge

在联网状态下,安装Conda安装包时会自动下载MindSpore安装包的依赖项(依赖项详情参见setup.py中的required_package),其余情况需自行安装。运行模型时,需要根据ModelZoo中不同模型指定的requirements.txt安装额外依赖,常见依赖可以参考requirements.txt。

验证是否成功安装

方法一:

python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"

如果输出:

MindSpore version: 版本号
The result of multiplication calculation is correct, MindSpore has been installed on platform [Ascend] successfully!

说明MindSpore安装成功了。

方法二:

import numpy as np
import mindspore as ms
import mindspore.ops as ops

ms.set_context(device_target="Ascend")
x = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
y = ms.Tensor(np.ones([1,3,3,4]).astype(np.float32))
print(ops.add(x, y))

如果输出:

[[[[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]

  [[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]

  [[2. 2. 2. 2.]
   [2. 2. 2. 2.]
   [2. 2. 2. 2.]]]]

说明MindSpore安装成功了。

配置环境变量

报错:Please check whether the Environment Variable ASCEND_OPP_PATH is set

这个错误表明当前环境中使用 Ascend 设备的 MindSpore 环境配置不完整或不正确。具体问题可能包括 Ascend 软件包未安装、环境变量未正确设置,或者 MindSpore 未正确编译以支持 Ascend 设备。

(mindspore_py39) root@admin01-NF5468M5:~# python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"
[WARNING] ME(2325047:140229424920384,MainProcess):2024-12-19-10:56:26.615.041 [mindspore/run_check/_check_version.py:320] 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. For details, refer to the installation guidelines https://www.mindspore.cn/install
[WARNING] ME(2325047:140229424920384,MainProcess):2024-12-19-10:56:26.615.209 [mindspore/run_check/_check_version.py:393] Can not find ccec_compiler(need by mindspore-ascend). Please check whether the Environment Variable PATH is set. For details, refer to the installation guidelines: https://www.mindspore.cn/install
[WARNING] ME(2325047:140229424920384,MainProcess):2024-12-19-10:56:26.615.271 [mindspore/run_check/_check_version.py:398] Can not find the tbe operator implementation(need by mindspore-ascend). Please check whether the Environment Variable PYTHONPATH is set. For details, refer to the installation guidelines: https://www.mindspore.cn/install
[WARNING] ME(2325047:140229424920384,MainProcess):2024-12-19-10:56:26.615.327 [mindspore/run_check/_check_version.py:409] Can not find opp path (need by mindspore-ascend). Please check whether the Environment Variable ASCEND_OPP_PATH is set. For details, refer to the installation guidelines: https://www.mindspore.cn/install
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/root/anaconda3/envs/mindspore_py39/lib/python3.9/site-packages/mindspore/_checkparam.py", line 1367, in wrapper
    return func(*args, **kwargs)
  File "/root/anaconda3/envs/mindspore_py39/lib/python3.9/site-packages/mindspore/context.py", line 1870, in set_context
    ctx.set_device_target(kwargs['device_target'])
  File "/root/anaconda3/envs/mindspore_py39/lib/python3.9/site-packages/mindspore/context.py", line 495, in set_device_target
    self.set_param(ms_ctx_param.device_target, target)
  File "/root/anaconda3/envs/mindspore_py39/lib/python3.9/site-packages/mindspore/context.py", line 187, in set_param
    self._context_handle.set_param(param, value)
RuntimeError: Unsupported device target Ascend. This process only supports one of the ['CPU']. Please check whether the Ascend environment is installed and configured correctly, and check whether current mindspore wheel package was built with "-e Ascend". For details, please refer to "Device load error message".

----------------------------------------------------
- Device load error message:
----------------------------------------------------
Load dynamic library: libmindspore_ascend.so.2 failed. libge_runner.so: cannot open shared object file: No such file or directory

----------------------------------------------------
- C++ Call Stack: (For framework developers)
----------------------------------------------------
mindspore/core/utils/ms_context.cc:287 SetDeviceTargetFromInner

在这里插入图片描述

问题分析

  1. Ascend 软件包问题

    • 错误中提到 libmindspore_ascend.so.2 加载失败,且缺少 libge_runner.so
    • 说明 Ascend 软件包可能未安装,或者其路径未正确配置。
  2. 环境变量问题

    • 警告中提到 PATH, PYTHONPATH, 和 ASCEND_OPP_PATH 环境变量未正确设置。
    • 这些变量是 Ascend 软件运行所必需的。
  3. MindSpore 安装问题

    • 提示 device_target Ascend 不受支持,可能表明当前安装的 MindSpore 不支持 Ascend 设备。
    • 需要检查是否使用了支持 Ascend 的 MindSpore 版本 (mindspore-ascend),并确保安装时正确使用 -e Ascend 选项。

尝试解决(然后发现没有昇腾AI处理器,换成CPU版本另写一篇博客)

官网指南

如果昇腾AI处理器配套软件包没有安装在默认路径,安装好MindSpore之后,需要导出Runtime相关环境变量,下述命令中LOCAL_ASCEND=/usr/local/Ascend的/usr/local/Ascend表示配套软件包的安装路径,需注意将其改为配套软件包的实际安装路径。

# 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/built-in/op_impl/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/built-in/op_impl/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}

分解步骤

按照所提供的环境变量配置步骤,如果 Ascend AI 处理器软件包没有安装在默认路径(例如 /usr/local/Ascend),需要将 LOCAL_ASCEND 修改为实际安装路径,并执行以下命令。

这个错误表明当前环境中使用 Ascend 设备的 MindSpore 环境配置不完整或不正确。具体问题可能包括 Ascend 软件包未安装、环境变量未正确设置,或者 MindSpore 未正确编译以支持 Ascend 设备。以下是问题分析和解决方案:

1. 检查 Ascend 环境
  • 确保安装了 Ascend AI 软件包(如 Ascend Data Center SolutionAscend AI Processor)。
  • 使用以下命令检查 Ascend 软件包版本:
    npu-smi info
    
  • 如果未安装 Ascend 软件包,请按照 MindSpore 安装指南 安装。
2. 设置环境变量

根据 Ascend 安装路径,正确设置以下环境变量:

  • 编辑 ~/.bashrc~/.zshrc 文件,添加:
    export PATH=/usr/local/Ascend/latest/bin:$PATH
    export PYTHONPATH=/usr/local/Ascend/latest/opp/op_impl/built-in/ai_core/tbe:$PYTHONPATH
    export ASCEND_OPP_PATH=/usr/local/Ascend/latest/opp
    export LD_LIBRARY_PATH=/usr/local/Ascend/latest/lib64:$LD_LIBRARY_PATH
    
  • 执行以下命令使配置生效:
    source ~/.bashrc
    
3. 检查 MindSpore 安装
  • 确保安装了支持 Ascend 的 MindSpore 包:
    pip show mindspore
    
    应确认版本号和支持设备目标(Ascend)。
  • 如果未安装正确版本,重新安装:
    pip install mindspore-ascend -f https://www.mindspore.cn/whl/ascend.html
    
4. 检查硬件配置
  • 确保设备正确连接,使用以下命令检查 Ascend 卡状态:
    npu-smi info
    
  • 确保驱动和固件版本满足 MindSpore 的最低要求。
5. 验证环境

设置完成后,使用以下代码验证 Ascend 环境是否正常:

import mindspore
mindspore.set_context(device_target="Ascend")
print("MindSpore Ascend environment setup is successful!")

其他建议

  • 如果依然报错,可以尝试降级或升级 MindSpore 和 Ascend 软件包以匹配版本要求。
  • 查看 /var/log/npu/slog 下的日志文件获取更多 Ascend 环境的详细错误信息。
  • 参考官方文档 Ascend 环境配置 进行逐步检查。
1. 创建脚本

按照所提供的环境变量配置步骤,如果 Ascend AI 处理器软件包没有安装在默认路径(例如 /usr/local/Ascend),需要将 LOCAL_ASCEND 修改为实际安装路径,并执行以下命令。

将以下内容保存为脚本文件,例如 setup_ascend_env.sh

#!/bin/bash

# 控制日志级别:0-DEBUG, 1-INFO, 2-WARNING, 3-ERROR, 4-CRITICAL(默认级别是 WARNING)
export GLOG_v=2

# 配置 Ascend 软件包安装路径(根据实际安装路径修改)
LOCAL_ASCEND=/path/to/your/ascend/installation  # 替换为实际路径

# 依赖库路径
export LD_LIBRARY_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/lib64:${LOCAL_ASCEND}/driver/lib64:${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH}

# 必须配置的环境变量
## TBE 运算符实现工具路径
export TBE_IMPL_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe

## OPP 路径
export ASCEND_OPP_PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/opp

## AICPU 路径
export ASCEND_AICPU_PATH=${ASCEND_OPP_PATH}/..

## TBE 运算符编译工具路径
export PATH=${LOCAL_ASCEND}/ascend-toolkit/latest/compiler/ccec_compiler/bin/:${PATH}

## TBE 实现所需的 Python 库路径
export PYTHONPATH=${TBE_IMPL_PATH}:${PYTHONPATH}

2. 应用脚本

为脚本赋予执行权限,并运行:

chmod +x setup_ascend_env.sh
source setup_ascend_env.sh

验证环境变量

运行以下命令,验证环境变量是否正确设置:

echo $LD_LIBRARY_PATH
echo $ASCEND_OPP_PATH
echo $TBE_IMPL_PATH
echo $PATH
echo $PYTHONPATH

常见问题及解决

  1. 路径设置错误
    如果路径错误,可能会提示无法找到依赖文件。检查 Ascend 软件实际安装路径,并确认环境变量指向正确的目录。

  2. 权限问题
    如果出现权限相关错误,可能需要以 root 权限运行脚本:

    sudo bash setup_ascend_env.sh
    
  3. 重启生效问题
    如果环境变量在关闭终端后失效,可以将脚本内容追加到 ~/.bashrc~/.zshrc

    cat setup_ascend_env.sh >> ~/.bashrc
    source ~/.bashrc
    

完成这些步骤后,运行 MindSpore 验证代码确认 Ascend 环境是否正常:

import mindspore
mindspore.set_context(device_target="Ascend")
print("MindSpore Ascend environment setup is successful!")

如果还有问题,可以提供具体的安装路径或错误信息,我会帮助进一步排查。


hello,我是 是Yu欸 。如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
原文链接 👉 ,⚡️更新更及时。

欢迎大家点开下面名片,添加好友交流。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐