CANN/asc-devkit仿真样例说明
2026/6/3 11:24:03 网站建设 项目流程

基于Add的CAmodel仿真样例说明

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

概述

本样例以Add计算为载体,展示Ascend C程序在CAmodel仿真模式下的编译、运行、结果校验与性能数据采集流程。用户可通过msprof op simulator获取仿真性能数据,用于分析性能瓶颈,提升性能分析效率。

支持的产品

  • Ascend 950PR/Ascend 950DT

支持的CANN软件版本

  • >= CANN 9.1.0

目录结构介绍

├── 07_simulator │ ├── CMakeLists.txt // 编译工程文件 │ ├── data_utils.h // 数据读写辅助函数 │ ├── README.md // 样例说明 │ ├── scripts // 输入数据生成和结果校验脚本 │ └── add.asc // SIMT实现Add调用样例

样例描述

  • 样例功能

    本样例基于Ascend C SIMT编程方式实现两个输入张量逐元素相加得到输出张量,计算公式如下:

    z = x + y

    样例中xy的shape为48 * 256,数据类型为floatscripts/gen_data.py用于生成输入数据和golden数据,样例执行后将结果写入output/output.bin,再通过scripts/verify_result.py完成结果校验。

  • 样例规格

    表1:Add样例规格描述
    样例类型(OpType)Add
    nameshapedata typeformat
    样例输入x[48, 256]floatND
    样例输入y[48, 256]floatND
    样例输出z[48, 256]floatND
    核函数名add_custom

编译运行

在本样例根目录下执行如下步骤,编译并执行程序。

  • 配置环境变量
    请根据当前环境上CANN开发套件包的安装方式,选择对应配置环境变量的命令。

    💡 使用 msProf 工具需安装 CANN 商用/社区版,详细信息可参考msOpProf工具安装指南。

    • 默认路径,root用户安装CANN软件包

      source /usr/local/Ascend/cann/set_env.sh
    • 默认路径,非root用户安装CANN软件包

      source $HOME/Ascend/cann/set_env.sh
    • 指定路径install_path,安装CANN软件包

      source ${install_path}/cann/set_env.sh
  • 样例执行

    mkdir -p build && cd build cmake -DCMAKE_ASC_RUN_MODE=sim -DCMAKE_ASC_ARCHITECTURES=dav-3510 ..; make -j python3 ../scripts/gen_data.py msprof op simulator --soc-version=<soc_version> ./demo python3 ../scripts/verify_result.py ./output/output.bin ./output/golden.bin

    请根据实际测试的NPU硬件架构选择对应的CMAKE_ASC_ARCHITECTURES参数。

    选项说明
    CMAKE_ASC_RUN_MODE指定为sim,开启NPU仿真模式
    CMAKE_ASC_ARCHITECTURES指定NPU架构版本号。本样例仅支持dav-3510(Ascend 950PR/Ascend 950DT)

    💡 CMakeLists.txt中已添加-g编译选项,用于生成调试信息,使仿真器能够采集指令流水图。如需在自有工程中使用仿真调优功能,请确保编译时同样添加该选项。

    精度对比成功时,输出如下:

    test pass!

仿真调优

基于./demo可通过msprof op simulator进行仿真性能分析,生成可视化的指令流水图等信息,指令如下:

msprof op simulator --soc-version=<soc_version> ./demo

AI处理器的型号<soc_version>请通过如下方式获取:

  • Ascend 950PR/Ascend 950DT
    • 针对以上产品型号,在安装昇腾AI处理器的服务器执行npu-smi info -t board -i <id> -c <chip_id>命令进行查询,获取Chip NameNPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为Ascendxxx,NPU Name取值为1234,实际配置值为Ascendxxx_1234。

其中,id为设备ID,通过npu-smi info -l命令查出的NPU ID即为设备ID;chip_id为芯片ID,通过npu-smi info -m命令查出的Chip ID即为芯片ID。

命令完成后,会在当前目录下生成以OPPROF_{timestamp}_XXX命名的文件夹,产物结构如下:

OPPROF_{timestamp}_XXX/ ├── dump // 原始性能数据,用户无需关注 └── simulator ├── core*.veccore*/ // 各向量核的仿真指令流水图文件 └── visualize_data.bin // MindStudio Insight呈现文件

执行后可通过以下方式查看指令流水图:

  • MindStudio Insight:打开visualize_data.bin进行可视化呈现。

    更多详细内容可以查看msProf工具使用方式,MindStudio工具调优(msProf)快速入门。

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询