算子仿真调优

算子调优工具支持仿真环境下的性能数据采集和自动解析。
表1 参数说明

参数

描述

是否必选

op

开启算子调优。

说明:

msprof工具的使用依赖CANN包中的msopprof可执行文件,该文件中的接口使用和msprof op一致,该文件为CANN包自带,无需单独安装。

simulator

开启仿真调优。

说明:

由于仿真器不支持多设备,如果调用算子的应用程序main.cpp或其他代码文件中配置使用了设备号deviceid,需要修改为0。

--application

配置为运行环境上的指定可执行文件,可配置为绝对路径或者相对路径。

说明:

不建议配置其他用户目录或其他用户可写目录下的AI任务,避免提权风险。

不建议配置删除文件或目录、修改密码、提权命令等有安全风险的高危操作。

是,二选一

--config

配置为算子编译得到的二进制文件*.o,可配置为绝对路径或者相对路径。

具体可参考msprof json配置文件说明

--kernel-name

指定要采集的算子名称,支持使用算子名前缀进行模糊匹配。如果不指定,则只对程序运行过程中调度的第一个算子进行采集。

需与--application配合使用,限制长度为1024,仅支持A-Za-z0-9_中的一个或多个字符。

--output

收集到的性能数据的存放路径,默认在当前目录下保存性能数据。

--help

输出帮助信息。

算子仿真调优可以通过以下两种方式执行:
命令完成后,会在指定的“--output”目录下生成以“OPPROF_{timestamp}_XXX”命名的文件夹,结构示例如下:
OPPROF_{timestamp}_XXX
├── dump
└── simulator
    ├── api    // 热点函数信息所在目录
    │   ├── add_custom.cpp    
    │   └── api.json     
    ├── core0.veccore0       // 按照core*.veccore*或core*.cubecore*目录存放各核的数据文件
    │   ├── core0.veccore0_code_exe.csv
    │   ├── core0.veccore0_instr_exe.csv
    │   └── trace.json     // 该核的仿真指令流水图文件
    ├── core0.veccore1
    │   ├── core0.veccore1_code_exe.csv
    │   ├── core0.veccore1_instr_exe.csv
    │   └── trace.json
    ├── core1.veccore0
    │   ├── core1.veccore0_code_exe.csv
    │   ├── core1.veccore0_instr_exe.csv
    │   └── trace.json
    ├── ... 
    ├── visualize_data.bin 
    └── trace.json      // 全部核的仿真指令流水图文件