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

指令流水图

以指令维度展示时序关系,并关联调用栈快速追踪瓶颈位置。支持以下两种可视化呈现方式:

  • 添加 -g 编译选项会在生成的二进制文件中附带调试信息,建议限制带有调试信息的用户程序的访问权限,确保只有授权人员可以访问该二进制文件。
  • 若不使用llvm-symbolizer组件提供的相关功能,输入msProf的程序编译时不包含-g即可,msProf工具则不会调用llvm-symbolizer组件的相关功能。
  • 若用户仅需关注部分算子性能时,可在Atlas 推理系列产品Atlas A2训练系列产品单核内调用TRACE_STARTTRACE_STOP接口。并在编译配置文件中添加-DASCENDC_TRACE_ON,具体操作请参见添加-DASCENDC_TRACE_ON的方法。然后,才能生成该范围内的流水图信息。
  • 用户需在编译配置文件中添加-DASCENDC_TRACE_ON,具体修改方法可参考以下样例工程。
    • MatMulCustomSample算子工程,需编辑/MatMulCustomSample/KernelLaunch/MatMulInvocationNeo/cmake/npu_lib.cmake。
      ascendc_compile_definitions
      (
          ...
          -DASCENDC_TRACE_ON
      )
    • AddCustomSample算子工程,需编辑/AddCustomSample/FrameworkLaunch/AddCustom/op_kernel/CMakeLists.txt。
      add_ops_compile_options
      (
          ...
          -DASCENDC_TRACE_ON
      )
  • 浏览器

    在Chrome浏览器中输入“chrome://tracing”地址,并将通过工具使用会生成指令流水图文件(trace.json)拖到空白处打开,键盘上输入快捷键(W:放大,S:缩小,A:左移,D:右移)可进行查看。关键字段说明如表1

    表1 关键字段说明

    字段名

    字段含义

    VECTOR

    向量运算单元。

    SCALAR

    标量运算单元。

    CUBE

    矩阵乘运算单元。

    MTE1

    数据搬运流水,数据搬运方向为:L1 ->{L0A/L0B, UBUF}。

    MTE2

    数据搬运流水,数据搬运方向为:{DDR/GM, L2} ->{L1, L0A/B, UBUF}。

    MTE3

    数据搬运流水,数据搬运方向为:UBUF -> {DDR/GM, L2, L1}、L1->{DDR/L2}。

    FIXP

    数据搬运流水,数据搬运方向为:FIXPIPE L0C -> OUT/L1。(仅Atlas A2训练系列产品/Atlas 800I A2推理产品支持展示)

    FLOWCTRL

    控制流指令。

    CACHEMISS

    未命中ICache。

    USEMASK

    自定义打点范围。

    ALL

    表示在这个通道的指令在所有通道都执行。

  • MindStudio Insight
    通过msprof op simulator生成的trace.json文件或visualize_data.bin文件可导入MindStudio Insight进行可视化呈现。
    • 若要使用MindStudio Insight进行查看时,需要单独安装MindStudio Insight软件包,具体下载链接请参见MindStudio Insight用户指南的“安装与卸载”章节
    • 将visualize_data.bin文件导入MindStudio Insight的具体操作请参考MindStudio Insight用户指南的“导入性能数据”章节。
    • MindStudio Insight具体操作请参见MindStudio Insight用户指南的“算子调优 > 时间线(Timeline)”章节。

指令流水图介绍(以MindStudio Insight为例)

MindStudio Insight工具以时序图方式为用户提供指令在昇腾AI处理器上的运行情况,用户可通过分析时序图中的指令详情、指令执行时间、指令关联代码的调用栈及指令/流水间同步连线等信息,识别微观指令的时序优化点。

图1 时间线界面
  • 展示各Pipe中各指令的运行时长以及不同Pipe间的指令依赖关系,帮助用户分析流水排布间可能存在的性能优化点。
  • 支持将流水指令信息与代码关联,指导用户如何基于代码去优化流水排布。

通过观察Timeline各个层级上的耗时长短、间隙等判断对应指令和Pipe是否存在性能问题,如指令执行是否存在瓶颈、是否存在高耗时的指令等。

搜索结果
找到“0”个结果

当前产品无相关内容

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