开发者
资源
[object Object][object Object]

Monitor 是集成在MindStudio Monitor中的一套接口,用户可以通过调用这些接口来开启、停止性能监测,以及获取监测数据。

[object Object]

安装msMonitor工具。详情请参见《》,推荐使用下载软件包安装。

[object Object]

功能说明

提供简单易用接口,采集计算类算子、通信类算子、API、Runtime API、Mstx等性能数据,用户可以根据需要选择采集的指标。

接口说明

参考mindstudio_monitor的

使用示例

  1. 在模型 Python 脚本中引入 Monitor 接口。

    [object Object]
  2. 在模型 Python 脚本中调用 Monitor 接口启动性能监测。

    [object Object]
  3. (可选)可通过在线方式获取性能数据,返回的数据结构请参考

    [object Object]
  4. (可选)将性能数据保存到本地文件,当前仅支持Excel格式, 文件详细介绍请参见

    [object Object]
[object Object]

落盘的 Excel 文件包含多个 Sheet 页,每个 Sheet 页对应一种采集的数据类型,例如 API、Kernel、Marker 等,用户可通过查看不同 Sheet 页来分析算子、API的执行耗时情况。

如下图所示:

各个Sheet页的字段说明如下:

[object Object]
  • [object Object]: mstx打点消息内容
  • [object Object]: 消息来源类型,"Host" 或 "Device"
  • [object Object]: 消息所属 domain 名称
  • [object Object]: 消息ID
  • [object Object]: mstx打点开始时间,单位:us
  • [object Object]: mstx打点结束时间,单位:us
  • [object Object]: SourceKind 为 "Host" 时为进程ID,为 "Device" 时为 0
  • [object Object]: SourceKind 为 "Host" 时为线程ID,为 "Device" 时为 0
  • [object Object]: SourceKind 为 "Device" 时为marker所属设备ID,为 "Host" 时为 0
  • [object Object]: SourceKind 为 "Device" 时为marker所属流ID,为 "Host" 时为 0
  • [object Object]: mstx打点执行时间,单位:us
[object Object]
  • [object Object]: 计算类算子名称
  • [object Object]: 算子执行开始时间,单位:us
  • [object Object]: 算子执行结束时间,单位:us
  • [object Object]: 算子执行所在的设备ID
  • [object Object]: 算子执行所在的流ID
  • [object Object]: 算子执行关联ID,用于和API数据关联
  • [object Object]: 算子类型,例如 "KERNEL_AICORE"、"KERNEL_AIVEC"、"KERNEL_AICPU" 等
  • [object Object]: 算子执行时间,单位:us
[object Object]
  • [object Object]: 通信类算子名称
  • [object Object]: 算子执行开始时间,单位:us
  • [object Object]: 算子执行结束时间,单位:us
  • [object Object]: 算子执行所在的设备ID
  • [object Object]: 算子执行所在的流ID
  • [object Object]: 算子传输的数据量
  • [object Object]: 算子传输的数据类型,例如 "FP32"、"INT8" 等
  • [object Object]: 算子所属通信域名称
  • [object Object]: 算子所属通信算法类型,例如 "RING"、"MESH" 等
  • [object Object]: 算子执行关联ID,用于和API数据关联
  • [object Object]: 算子执行时间,单位:us
[object Object]
  • [object Object]: API 名称
  • [object Object]: API 调用开始时间,单位:us
  • [object Object]: API 调用结束时间,单位:us
  • [object Object]: 调用 API 的进程ID
  • [object Object]: 调用 API 的线程ID
  • [object Object]: API 调用关联ID,用于和Kernel/Communication数据关联
  • [object Object]: API 调用时间,单位:us