在这里插入图片描述

前言:为什么要在 Notebook 中开发 CANN?

适用版本:CANN 5.1.0 + MindSpore 1.7.0
最后更新:2025年11月
目标读者:初次接触CANN、希望快速上手昇腾AI开发的新手开发者

昇腾(Ascend)AI处理器作为华为自研的高性能AI芯片,正被广泛应用于大模型训练、推理加速等场景。而 CANN(Compute Architecture for Neural Networks) 是其核心软件栈,为开发者提供底层算子支持、编译优化与运行时调度能力。

然而,本地部署CANN环境往往涉及复杂的驱动安装、依赖管理与权限配置,对新手极不友好。幸运的是,借助 云平台上的 Jupyter Notebook,我们可以实现:

  • 免配置启动:无需手动安装CANN或驱动
  • 开箱即用:预装MindSpore、TensorFlow与CANN工具链
  • 高效调试:交互式编程 + 实时结果可视化
  • 社区友好:便于复现他人项目、贡献代码

本文将手把手教你如何在 没有显式“CANN”标签镜像 的情况下,精准识别并使用一个隐藏但功能完整的CANN开发镜像——tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64,完成从零到可运行的完整搭建流程。


一、确认可用镜像:找到“藏起来”的CANN环境

在华为云ModelArts的Notebook创建页面中,搜索“CANN”可能返回空结果,但这并不意味着没有CANN支持。

🔍 关键发现
在镜像列表中存在以下选项:

名称:tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64  
描述:Ascend+ARM算法开发和训练基础镜像,AI引擎预置TensorFlow和MindSpore

该镜像已集成:

  • CANN 5.1.0(含ACL、TBE、Driver等组件)
  • MindSpore 1.7.0(支持Ascend后端)
  • TensorFlow 1.15(兼容部分旧模型)
  • EulerOS 2.8(华为官方操作系统)

结论:这是当前环境下最合适的CANN开发起点。


二、完整搭建流程

步骤1:创建 Notebook 实例

  1. 登录 华为云控制台

在这里插入图片描述

  1. 进入 ModelArts > 开发环境 > Notebook

  2. 点击 【创建】

在这里插入图片描述

  1. 填写基本信息:
    • 名称:cann-dev-notebook
    • 计费模式:按需计费(适合学习测试)

在这里插入图片描述

  1. 选择 AI引擎
    • AI引擎类型:Ascend
    • 镜像:勾选 tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64

在这里插入图片描述

  1. 选择计算规格:
    • 推荐: Ascend: 1*Ascend Snt9|ARM: 24核 96GB

在这里插入图片描述

  1. 点击 【立即创建】
    在这里插入图片描述

⏱️ 实例创建通常需要 3–5 分钟,请耐心等待状态变为“运行中”。


步骤2:进入 JupyterLab 并加载环境

  1. 实例创建成功后,点击 【打开】 按钮
  2. 系统将自动跳转至 JupyterLab 界面
  3. 在左侧菜单点击 “+” → 打开 Terminal(终端)

在终端中执行以下命令,加载CANN环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh

💡 此脚本会设置 PATHLD_LIBRARY_PATHPYTHONPATH 等关键路径,确保后续命令能正确调用CANN组件。


步骤3:验证NPU设备与CANN状态

3.1 查看NPU硬件信息
npu-smi info

✅ 成功输出应包含设备ID、温度、功耗、健康状态等,例如:

+-------------------+-------------------+------------------------------------------------------+
| NPU     Name      | Health            | Power(W)    Temp(C)    HBM(MB)    Util(%)           |
+===================+===================+======================================================+
| 0       910B      | OK                | 85.2        45         32768      0                 |
+-------------------+-------------------+------------------------------------------------------+

若显示“OK”,说明NPU驱动正常。

3.2 验证CANN版本
cat /usr/local/Ascend/ascend-toolkit/version.txt

预期输出:

CANN 5.1.0
3.3 测试MindSpore是否可调用Ascend

新建一个 .ipynb 文件,运行以下Python代码:

import mindspore as ms

print("MindSpore version:", ms.__version__)
ms.set_context(device_target="Ascend")
print("Device target set to:", ms.context.get_context('device_target'))

# 尝试创建一个NPU张量
x = ms.Tensor([1, 2, 3], dtype=ms.float32)
print("Tensor on NPU:", x)

✅ 若无报错且输出类似:

MindSpore version: 1.7.0
Device target set to: Ascend
Tensor on NPU: [1. 2. 3.]

则表明 CANN + MindSpore + NPU 全链路已打通


三、常见问题排查

问题现象 可能原因 解决方法
npu-smi: command not found 未加载环境变量 执行 source /usr/local/Ascend/ascend-toolkit/set_env.sh
ImportError: libascend.so not found 动态库路径缺失 检查 echo $LD_LIBRARY_PATH 是否包含 /usr/local/Ascend/ascend-toolkit/lib64
MindSpore 报错 “device_target not supported” 未显式设置设备 添加 ms.set_context(device_target="Ascend")
实例无法启动 区域资源不足 尝试切换可用区(如北京四 → 上海一)

四、下一步:开始你的算子开发之旅

环境就绪后,你可以:

  • 浏览官方示例:/usr/local/Ascend/samples/custom_ops/
  • 编写自定义TBE算子(基于Python)
  • 使用ACL C++接口开发高性能算子
  • 将Notebook项目导出为 .py 脚本用于生产部署

📌 提示:CANN 5.1.0 虽非最新版,但已支持绝大多数算子开发需求。如需更高版本,可关注社区Docker方案。


结语:从“找不到”到“跑起来”,只需一步之遥

在云平台上寻找CANN环境时,我们常常被“搜索无结果”所困扰。但正如本文所示,真正的开发资源往往藏在细节之中——那个名字冗长却功能完整的镜像,正是开启昇腾AI开发大门的钥匙。

通过本文的完整流程,你已经成功在Notebook中搭建了一个可运行、可调试、可扩展的CANN开发环境。接下来,无论是学习算子原理、复现社区项目,还是贡献自己的创新,你都已站在坚实的起点之上。

参考文档:

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐