昇腾社区首页
中文
注册

导入性能数据

概述

MindStudio Insight支持导入性能数据文件,并以图形化形式呈现相关内容。性能数据文件的采集方式可分别参见性能分析工具使用指南中的“性能分析(PyTorch训练/在线推理)”、“性能分析(TensorFlow训练/在线推理)”和“msprof采集通用命令”章节内容。

性能数据分为单卡场景和集群场景,具体请参见表1,数据导入操作请参见导入数据章节进行导入。

表1 性能数据场景说明

场景

说明

单卡场景

也称单文件场景,可在MindStudio Insight工具中导入单卡或单文件数据进行分析。

当导入单卡场景数据时,MindStudio Insight工具支持显示时间线(Timeline)、内存(Memory)和算子(Operator)界面,具体内容请参见单卡场景

集群场景

也称多卡场景,由多个单卡组成的集群数据。

集群场景根据卡数量可分为小集群场景和大集群场景,导入不同场景的数据,界面展示也会有所变化,具体请参见集群场景

单卡场景

在单卡场景下,性能数据可分为三大类型,如下所示:

  • PyTorch训练/推理数据:支持导入以“ascend_pt”结尾的性能数据目录,TEXT场景和DB场景的性能数据文件详情请分别参见表2表3
    表2 PyTorch训练/推理性能数据文件(TEXT)

    文件名

    说明

    展示界面

    communication.json

    多卡通信或集群等存在通信的场景性能分析提供可视化数据基础。

    通信(Communication)

    communication_matrix.json

    通信小算子基本信息文件。

    通信(Communication)

    kernel_details.csv

    NPU上执行的所有算子的信息。

    算子(Operator)

    memory_record.csv

    进程级内存申请情况信息。

    内存(Memory)

    operator_memory.csv

    算子内存申请情况信息。

    内存(Memory)

    operator_details.csv

    统计PyTorch算子在Host侧(下发)和Device侧(执行)的耗时。

    时间线(Timeline)

    step_trace_time.csv

    迭代中计算和通信的时间统计。

    概览(Summary)

    trace_view.json

    包括应用层数据、CANN层数据和底层NPU数据。

    时间线(Timeline)

    msprof_*.json

    timeline数据总表。如果存在变频数据(AI Core Freq)信息,会展示AI Core Freq层级。

    时间线(Timeline)

    表3 PyTorch训练/推理性能数据文件(DB)

    文件名

    说明

    展示界面

    ascend_pytorch_profiler_{rank_id}.db

    DB场景下采集到的Ascend PyTorch Profiler接口采集性能数据。

    时间线(Timeline)

    内存(Memory)

    算子(Operator)

    概览(Summary)

    通信(Communication)

    analysis.db

    多卡或集群等存在通信的场景下,采集到的DB场景信息。

    • 表2中memory_record.csv和operator_memory.csv两个文件必须同时存在且保证在同一目录,导入成功后内存(Memory)界面才能正常展示。
    • 支持导入算子打点数据文件,获取文件方式请参见性能分析工具使用指南中的“Ascend PyTorch Profiler接口采集”章节“msprof_tx”相关内容,导入成功后会在时间线(Timeline)界面展示打点数据。
    • 支持导入的trace_view.json文件规模,单文件不超过10GB。
  • MindSpore训练/推理数据:支持导入MindSpore框架性能数据,获取方式请参见《MindSpore Insight》中的“性能调试(Ascend)”章节。

    MindStudio Insight工具支持导入以“ascend_ms”结尾的性能数据目录,当用户获取到MindSpore框架性能数据后,需自行创建一个空文件夹,将名为“rank-{卡序号}_{时间戳}_ascend_ms”的文件夹汇总拷贝至新建的文件夹,将新建文件夹作为性能数据目录导入至MindStudio Insight工具。MindSpore框架性能数据导入成功后,MindStudio Insight工具会显示时间线(Timeline)、内存(Memory)、概览(Summary)和通信(Communication)界面。

  • 离线推理数据:支持导入mindstudio_profiler_output目录下性能数据,TEXT场景和DB场景的性能数据文件详情请分别参见表4表5
    表4 离线推理性能数据文件(TEXT)

    文件名

    说明

    展示界面

    msprof_*.json

    timeline数据总表。

    时间线(Timeline)

    memory_record_*.csv

    进程级内存申请情况信息。

    内存(Memory)

    operator_memory_*.csv

    算子内存申请情况信息。

    内存(Memory)

    op_summary_*.csv

    AI Core和AI CPU算子数据。

    算子(Operator)

    op_statistic _*.csv

    AI Core和AI CPU算子调用次数及耗时统计。

    算子(Operator)

    step_trace_*.csv

    迭代轨迹数据。单算子场景下无此性能数据文件。

    -

    step_trace_*.json

    迭代轨迹数据,每轮迭代的耗时。单算子场景下无此性能数据文件。

    -

    task_time_*.csv

    Task Scheduler任务调度信息。

    -

    fusion_op_*.csv

    模型中算子融合前后信息。单算子场景下无此性能数据文件。

    时间线(Timeline)

    api_statistic_*.csv

    用于统计CANN层的API执行耗时信息。

    时间线(Timeline)

    prof_rule_0_*.json

    调优建议。

    时间线(Timeline)

    概览(Summary)

    通信(Communication)

    注:“*”表示{timestamp}时间戳。

    表5 离线推理性能数据文件(DB)

    文件名

    说明

    展示界面

    msprof_*.db

    统一DB文件。当前该格式数据与TEXT参数解析的数据信息量存在差异,建议使用TEXT格式数据。

    时间线(Timeline)

    内存(Memory)

    算子(Operator)

    概览(Summary)

    通信(Communication)

    注:“*”表示{timestamp}时间戳。

    • 表4中memory_record.csv和operator_memory.csv两个文件必须同时存在且保证在同一目录,导入成功后内存(Memory)界面才能正常展示。
    • 对于未完成性能数据解析的PROF_XXX目录,需要先使用msprof命令行的export功能解析并导出性能数据文件后才可以使用MindStudio Insight工具展示,数据使用msprof命令行解析并导出的操作请参见性能分析工具使用指南中的“性能数据解析与导出(msprof命令)”章节。

集群场景

集群场景也称多卡场景,由多个单卡组成的集群数据,集群数据可分为小集群和大集群,MindStudio Insight工具导入不同场景的数据时,也有所不同,如表6所示。

如果在大集群场景下,直接导入profiling全部原始数据,解析耗时较长,不建议直接导入。

表6 集群场景说明

场景

卡数量

导入数据

界面展示

小集群

小于32卡。

可导入profiling全部原始数据。

时间线(Timeline)

内存(Memory)

算子(Operator)

概览(Summary)

通信(Communication)

大集群

超过32卡,千卡,万卡等。

采用mstt工具集中的cluster_analyse(集群分析)工具预处理profiling的原始数据,可得到基于通信域的通信分析和迭代耗时分析,导入预处理后得到的数据。其中cluster_analyse工具,可前往gitee开源站下载。

  1. 将所有以“ascend_pt”或“ascend_ms”结尾的目录汇总至同一文件夹。
  2. 使用cluster_analyse工具生成通信相关文件“cluster_analysis_output”目录,“cluster_analysis_output”目录中数据文件请参见表7
  3. 将生成的“cluster_analysis_output”目录文件拷贝至本地,并导入MindStudio Insight工具。
  4. 可先前往通信(Communication)界面分析后,导入对应小集群数据或者单卡数据,再次仔细分析。

概览(Summary)

通信(Communication)

表7 cluster_analysis_output目录文件

文件名

说明

cluster_step_trace_time.csv

数据解析模式为communication_matrix、communication_time或all时均生成。

cluster_communication_matrix.json

数据解析模式为communication_matrix或all时生成。

cluster_communication.json

数据解析模式为communication_time或all时生成,主要为通信耗时数据。

cluster_analysis.db

解析analysis.db或ascend_pytorch_profiler_{rank_id}.db生成的文件。