基于Add的msProf profiling样例说明
概述
本样例以Add计算为载体,演示通过msprof op采集上板性能数据的方法。样例在Host侧直接构造输入数据和golden数据,执行Ascend C核函数后在进程内完成结果校验,不依赖额外的数据生成或校验脚本。
本样例支持的产品及CANN软件版本
| 产品 | CANN软件版本 |
|---|---|
| Ascend 950PR/Ascend 950DT | >= CANN 9.1.0 |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | >= CANN 9.0.0 |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | >= CANN 9.0.0 |
目录结构介绍
├── msprof
│ ├── CMakeLists.txt // 编译工程文件
│ ├── msprof.asc // Ascend C样例实现和Host侧调用样例
│ └── README.md // 样例说明
样例描述
-
Add计算介绍:
本样例默认使用
float类型,完成两个Tensor逐元素相加:z=x+yz = x + y
输入x、y和输出z的Shape均为[8, 2048]。Host侧直接构造输入数据和golden数据,将输入数据拷贝到Device侧后启动add_custom Kernel,Kernel按blockNum = 8切分数据并完成Add计算,最后将结果拷贝回Host侧完成精度对比。
msProf工具介绍
msProf工具是单算子性能分析工具,包含msprof op和msprof op simulator两种使用方式。该工具可采集算子执行时间、流水占比、存储访问等性能数据,辅助分析算子性能瓶颈。
-
上板性能采集
通过上板性能采集,可以直接测定算子在昇腾AI处理器上的运行时间。基于可执行文件
demo执行如下命令:msprof op ./demo命令完成后,会在默认目录下生成以
OPPROF_{timestamp}_XXX命名的文件夹,性能数据文件夹结构示例如下:├── dump # 原始性能数据 ├── ArithmeticUtilization.csv # cube/vector指令cycle占比 ├── L2Cache.csv # L2 Cache命中率,影响MTE2,建议合理规划数据搬运逻辑,增加命中率 ├── Memory.csv # UB、L1和主存储器读写带宽速率 ├── MemoryL0.csv # L0A、L0B和L0C读写带宽速率 ├── MemoryUB.csv # Vector和Scalar到UB的读写带宽速率 ├── OpBasicInfo.csv # 算子基础信息 ├── PipeUtilization.csv # 计算单元和搬运单元耗时及占比 ├── ResourceConflictRatio.csv # UB bank group、bank conflict和资源冲突率占比 └── visualize_data.bin # MindStudio Insight呈现文件
更多msProf工具使用方式请参考MindStudio工具算子调优(msProf)中的内容。
编译运行
在本样例根目录下执行如下步骤,编译并执行样例。
-
配置环境变量
请根据当前环境上CANN开发套件包的安装方式,配置环境变量。💡 使用 msProf 工具需安装 CANN 商用/社区版,详细信息可参考msOpProf工具安装指南。
source ${install_path}/cann/set_env.sh说明:
${install_path}为CANN包安装目录,未指定安装目录时默认安装至/usr/local/Ascend下。 -
样例执行
在本样例目录下执行如下命令。
mkdir -p build && cd build; # 创建并进入build目录 cmake -DCMAKE_ASC_ARCHITECTURES=dav-2201 ..;make -j; # 编译工程 msprof op ./demo # 基于可执行文件demo通过msprof op执行性能调优 -
编译选项说明
选项 可选值 说明 CMAKE_ASC_ARCHITECTURESdav-2201(默认)、dav-3510NPU架构: dav-2201对应Atlas A2训练系列产品/Atlas A2推理系列产品和Atlas A3训练系列产品/Atlas A3推理系列产品,dav-3510对应Ascend 950PR/Ascend 950DT -
执行结果
精度对比成功时,输出如下:
test pass!msprof op执行完成后,会在当前目录下生成以OPPROF_{timestamp}_XXX命名的性能数据目录,目录中包含执行时间、流水占比、存储访问等性能数据文件。