下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

工具概述

msProf工具用于采集和分析运行在昇腾AI处理器上算子的关键性能指标,用户可根据输出的性能数据,快速定位算子的软、硬件性能瓶颈,提升算子性能的分析效率。

当前支持基于不同运行模式(上板或仿真)和不同文件形式(可执行文件或算子二进制.o文件)进行性能数据的采集和自动解析。

  • msProf工具的使用依赖CANN包中的msopprof可执行文件,该文件中的接口使用和msprof op一致,该文件为CANN包自带,无需单独安装。
  • 当前不支持设置ASCEND_RT_VISIBLE_DEVICES环境变量后,使用msProf工具。

功能特性

算子调优工具使用请参考工具使用,通过MindStudio Insight展示计算内存热点图、指令流水图以及算子指令热点图等单算子调优能力,具体请参考表1

表1 msProf工具功能特性

功能

链接

计算内存热点图

计算内存热力图

指令流水图

指令流水图

算子指令热点图

算子代码热点图

通过键盘输入“CTRL+C”后,算子执行将会被停止,工具会根据当前已有信息生成性能数据文件。若不需要生成该文件,可再次键盘输入“CTRL+C”指令。

命令汇总

  • msprof op模式

    登录运行环境,使用msprof op 可选参数 app [arguments]格式调用,可选参数的具体情况请参考表2。具体命令示例如下:

    msprof op --output=/home/projects/output /home/projects/MyApp/out/main blockdim 1 // --output为可选参数,/home/projects/MyApp/out/main为使用的app,blockdim 1为用户app的可选参数 
    表2 msprof op可选参数表

    可选参数

    描述

    是否必选

    --application

    说明:

    当前与./app [arguments]兼容,后期将修改为./app [arguments]。

    建议使用msprof op ./app [arguments]进行拉取,其中app为指定的可执行文件,如果app未指定路径,默认为使用当前路径,[arguments]为app的参数。

    是,指定的可执行文件和--config二选一

    --config

    配置为输入算子编译得到的二进制文件*.o,可配置为绝对路径或者相对路径。具体可参考msProf json配置文件说明

    说明:

    进行算子上板或者仿真调优之前,需要获取NPU侧可执行文件或算子二进制.o文件。

    --kernel-name

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

    说明:
    • 需与--application配合使用,限制长度为1024,仅支持A-Za-z0-9_中的一个或多个字符。
    • 需要采集多个算子时,支持使用符号"|"进行拼接。例如,--kernel-name="add|abs"表示采集前缀名为add和abs的算子。
    • 具体采集的算子数量由--launch-count参数值决定。

    --launch-count

    设置可以采集算子的最大数量,默认值为1,取值范围为1~100之间的整数。

    --launch-skip-before-match

    用于设置不需要采集数据的算子数量,从第一个算子开始到指定数目的算子不进行采集,仅对指定数目之后的算子开始采集。

    说明:
    • 无论--launch-skip-before-match参数是否命中kernel-name中指定的算子,该项的计数都会增加,且不采集该算子。
    • 此参数的取值范围为0~1000之间的整数。

    --aic-metrics

    使能算子性能指标采集。支持以下性能指标数据文件呈现,不配置此项默认全部指标数据结果输出。
    • ArithmeticUtilization
    • L2Cache
    • Memory
    • MemoryL0
    • MemoryUB
    • PipeUtilization
    • ResourceConflictRatio

    可选其中的一项或多项,选多项时用英文逗号隔开,例如:--aic-metrics=Memory,MemoryL0

    说明:

    若仅采集部分性能指标,会影响visualize_data.bin的可视化数据的完整性。

    --output

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

    --help

    输出帮助信息。

  • msprof op simulator

    登录运行环境,使用msprof op simulator开启算子仿真调优功能,并配合使用仿真可选参数和用户待调优程序(app [arguments])进行调优,仿真可选参数请参考表3。具体命令示例如下:

    msprof op simulator --output=/home/projects/output /home/projects/MyApp/out/main blockdim 1   // --output为可选参数,/home/projects/MyApp/out/main为使用的app,blockdim 1为用户app的可选参数
    表3 msprof op simulator可选参数说明

    可选参数

    描述

    是否必选

    --application

    说明:

    当前与./app [arguments]兼容,后期将修改为./app [arguments]。

    建议使用msprof op simulator ./app [arguments]进行拉取,其中app为指定的可执行文件,如果app未指定路径,默认为使用当前路径,[arguments]为app的参数。

    是,指定的可执行文件和--config二选一

    --config

    配置为算子编译得到的二进制文件*.o,可配置为绝对路径或者相对路径。具体可参考msProf json配置文件说明

    说明:

    进行算子上板或者仿真调优之前,需要获取NPU侧可执行文件或算子二进制.o文件。

    • 参考运行验证算子工程,获取NPU侧可执行文件ascendc_kernels_bbit,并从用户的可执行文件中提取*.o文件。
    • 参考算子编译部署,算子编译时会自动生成*.o文件。
    • 需确保群组和其他组的用户不具备--config指定的json文件及上一级目录的写入权限。同时,需要确保json文件的上一级目录属主为当前用户。

    --kernel-name

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

    说明:
    • 需与--application配合使用,限制长度为1024,仅支持A-Za-z0-9_中的一个或多个字符。
    • 需要采集多个算子时,支持使用符号"|"进行拼接。例如,--kernel-name="add|abs"表示采集前缀名为add和abs的算子。
    • 具体采集的算子数量由--launch-count参数值决定。

    --launch-count

    设置可以采集算子的最大数量,默认值为1,取值范围为1~100之间的整数。

    --aic-metrics

    使能算子性能指标采集。支持以下性能指标采集项,默认全部采集。

    • PipeUtilization
    • ResourceConflictRatio
    说明:
    • PipeUtilization为计算单元和搬运单元指令耗时占比,且为必选项。例如:--aic-metrics=PipeUtilization。
    • ResourceConflictRatio为资源冲突占比,支持展示SET_FLAG/WAIT_FLAG指令。
    • 当配置--aic-metrics=PipeUtilization时,关闭SET_FLAG,WAIT_FLAG指令。

    --output

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

    --help

    输出帮助信息。

调用场景

支持如下调用算子的场景:
  • Kernel直调:核函数运行验证的场景。
    • Kernel直调的场景,详细信息可参考Kernel直调
    • Kernel直调的场景,需先配置好前置条件,然后执行以下命令:
      msprof op simulator ./main  // main为用户算子程序名称,包含待调优算子的程序名
    • 可选:若算子已在上板运行模式下,但用户又需要在不重新编译的情况下,对其进行仿真调优,可通过以下操作步骤实现。
      • 在任意目录下,创建一个指向libruntime_camodel.so的软连接,名称为libruntime.so。
        ln -s /{simulator_path}/lib/libruntime_camodel.so /{so_path}/libruntime.so  //例如,若使用root用户默认路径安装CANN包,simulator_path为/usr/local/Ascend/ascend-toolkit/latest/tools/simulator/Ascendxxxyy
      • 将创建的软链接的父目录加入到环境变量LD_LIBRARY_PATH中。
        export LD_LIBRARY_PATH={so_path}:$LD_LIBRARY_PATH
  • AscendCL单算子调用:单算子API执行的场景。
    • 单算子API执行的场景,可参考单算子API调用
    • 单算子API执行的场景,需先配置好前置条件,然后执行以下命令:
      msprof op simulator ./main  // main为程序名称,包含待调优算子的程序名
  • 第三方框架算子调用:Pytorch框架的场景。
    • 通过PyTorch框架进行单算子调用的场景,详细信息可参考PyTorch框架
    • 通过PyTorch框架进行单算子调用的场景,需先配置好前置条件,然后执行以下命令:
      msprof op simulator python a.py  // a.py为程序名称,包含待调优算子的程序名
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词