当前位置: 首页 > news >正文

CANN asnumpy快速开始指南

快速开始

【免费下载链接】asnumpy-docs项目地址: https://gitcode.com/cann/asnumpy-docs

本指南将带你了解 AsNumpy 的基本用法,并展示如何以最小的改动将现有 NumPy 代码迁移到昇腾 NPU 上运行。

前置条件

  • 已安装 AsNumpy(安装指南)
  • 昇腾 910B NPU,CANN 8.2.RC1.alpha003+
  • Python 3.9+

NumPy vs AsNumpy

核心理念:只改 import,其余代码保持不变

NumPy (CPU)AsNumpy (NPU)
import numpy as np rows, cols = 20000, 20000 m1 = np.random.normal(0, 1, (rows, cols)) m2 = np.random.normal(0, 1, (rows, cols)) # 在 CPU 上计算 product = np.multiply(m1, m2) result = np.sum(product) print(result)
import numpy as np import asnumpy as ap rows, cols = 20000, 20000 m1 = np.random.normal(0, 1, (rows, cols)) m2 = np.random.normal(0, 1, (rows, cols)) # 传输到 NPU m1_npu = ap.ndarray.from_numpy(m1) m2_npu = ap.ndarray.from_numpy(m2) # 在 NPU 上计算 product = ap.multiply(m1_npu, m2_npu) result = ap.sum(product) print(result.to_numpy())

端到端示例

import numpy as np import asnumpy as ap # AsNumpy 在 import 时自动初始化 NPU 设备 # 并在程序退出时自动释放(无需手动 init/finalize) # 1. 在 CPU 上创建数据(NumPy) np_a = np.array([1.0, 2.0, 3.0, 4.0], dtype=np.float32) np_b = np.array([10.0, 20.0, 30.0, 40.0], dtype=np.float32) # 2. 传输到 NPU npu_a = ap.ndarray.from_numpy(np_a) npu_b = ap.ndarray.from_numpy(np_b) # 3. 在 NPU 上执行运算 npu_sum = ap.add(npu_a, npu_b) npu_prod = ap.multiply(npu_a, npu_b) npu_total = ap.sum(npu_prod) # 4. 将结果传回 CPU print("Sum: ", npu_sum.to_numpy()) # [11. 22. 33. 44.] print("Prod: ", npu_prod.to_numpy()) # [ 10. 40. 90. 160.] print("Total: ", npu_total.to_numpy()) # 300.0 # 5. 与 NumPy 结果进行验证 assert np.allclose(npu_sum.to_numpy(), np.add(np_a, np_b)) assert np.allclose(npu_prod.to_numpy(), np.multiply(np_a, np_b)) print("验证通过。")

设备管理

import asnumpy as ap # 查询可用的NPU设备 print(ap.get_device_count()) # e.g. 8 # 切换到特定的NPU(默认为0) ap.set_device(1)

更多示例

可运行的脚本位于examples/目录:

脚本操作
01_add.py逐元素加法
02_exp2.py指数运算 (2^x)
03_multiply.py逐元素乘法(含性能测试)
04_all.py逻辑与归约
05_divide.py逐元素除法
06_vdot.py向量点积
07_full.py创建指定值填充的数组
08_linspace.py创建等差数列
09_mean.py算术平均值
10_sort.py排序

【免费下载链接】asnumpy-docs项目地址: https://gitcode.com/cann/asnumpy-docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/851389/

相关文章:

  • 暗黑破坏神2存档编辑器的5个核心问题与完美解决方案
  • 2026天津众包TOP5!天津东丽区天津滨海新区等地服务商合规高效获认可 - 十大品牌榜
  • CST优化器实战:手把手教你设定目标,自动找到让PCB辐射最低的最佳走线间隙
  • CANN / cannbot-skills:自定义算子入图
  • CANNBot MoE并行实施指南
  • 天津大学LaTeX论文模板终极指南:告别格式困扰,专注学术创作
  • PlatformIO国内安装避坑全记录:解决Python环境、pip换源与网络下载慢的问题
  • 作为一名测试工程师,你是否也经历过这些崩溃时刻?
  • 打破Mac与Windows的存储壁垒:Free-NTFS-for-Mac完整读写指南
  • C++私有成员访问的深度探索:从封装原理到模板技巧
  • 国产化工控主板选型实战:龙芯、飞腾、海光平台深度解析与避坑指南
  • LumenPnP开源贴片机:从DIY到小批量生产的完整技术方案
  • Jar Analyzer 字节码调试功能:类似OD/GDB的指令级GUI调试实现原理
  • CANN/asc-devkit TensorTrait样例
  • FreeRTOS队列机制深度解析:嵌入式实时系统任务通信的核心枢纽
  • CANN/ops-nn Swish激活函数
  • Perplexity医疗搜索效能跃迁(FDA黑框警告级误检率下降76%实测报告)
  • Windows 11性能监控终极指南:实时跟踪系统资源使用情况的完整教程
  • CANN/asc-devkit AllGather通信接口
  • AI招聘工具怎么选?直接推荐前程无忧的3个理由
  • elec-ops-simulation实战教程:5步实现电网稳态运行仿真
  • KDiff3文件比较与合并工具:从新手到高手的完整指南
  • 无王无帝定乾坤,来自田间第一人:凰标永存昭后世
  • 别再乱设时钟裕量了!手把手教你用set_clock_uncertainty搞定DC/PT时序收敛
  • 终极指南:如何使用Harepacker复活版轻松打造你的MapleStory游戏世界
  • 3DSident深度技术解析:逆向工程工具与硬件诊断套件的系统级实现
  • NS-USBLoader终极指南:一站式解决Switch玩家的三大痛点
  • Codex 安装与 VS Code 联动:手把手配置指南
  • 【HarmonyOS 6.1 全场景实战】《灵犀厨房》实战(十七):【语音识别】免提声控启动播报——动口不动手
  • CANN/asc-devkit HCCL批量写入接口