MindStudio Insight千卡数据使用案例
收藏回复举报
MindStudio Insight千卡数据使用案例
新人帖
发表于2024-09-12 11:28:41
0 查看

当在MindStudio Insight工具中导入大集群场景数据,且大集群场景规模达到百卡、千卡级别时,如果直接导入profiling全部原始数据,解析耗时较长,所以需要采用mstt工具集中的cluster_analyse工具预处理下profiling的原始数据,将得到的集群相关通信数据导入MindStudio Insight工具,进行计算耗时及通信分析,定位慢卡问题,且针对慢卡进行Timeline视图分析,继而进行针对性调优。

前提条件

1. 已安装MindStudio Insight工具。

2. 已安装Python3,并完成执行环境的配置。

3.已获取采集到的原始集群数据,且单卡采集的数据中必须包含表1中的文件。

表1 单卡采集数据文件

文件名

说明

profiler_info_x.json

Profiler相关的元数据。

communication.json

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

communication_matrix.json

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

kernel_details.csv

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

step_trace_time.csv

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

trace_view.json

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

4. 已获取mstt工具集中的cluster_analyse(集群分析)工具,可前往gitee开源站下载。cluster_analyse(集群分析)工具主要用于解析集群节点通信信息,生成相关通信数据。

操作步骤

1. 将所有以“ascend_pt”结尾的profiling原始数据汇总至同一个目录,如图1所示。

 图1 数据汇总

2. 在集群分析工具目录下,执行以下命令,解析数据,如图2所示。

python3 cluster_analysis.py -d {原始数据存放路径}

3.  将“cluster_analysis_output”目录导入MindStudio Insight工具进行分析。

定位慢卡问题

1. 在概览(Summary)界面,输入模型脚本对应的并行策略值,如图1所示。其中PP为流水线并行(‌Pipeline Parallelism),TP为‌张量并行(‌Tensor Parallelism),DP为数据并行(‌Data          Parallelism)‌。

     图1 输入并行策略值
 

2. 在“计算/通信概览”区域,分别选择“迭代ID”和“通信域”,查看柱状图,观察总计算时间和未被覆盖的通信时间时长,如图2所示。

    慢卡通常表现为总计算耗时长,通信时间耗时短。

    图2 查看计算与通信耗时

3. 在通信(Communication)界面,选择“通信耗时分析”,并选择需要查看的“迭代ID”和“通信域”,在“通信时长数据分析”区域,查看所选通信域的各卡的“总时间(ms)”耗时情况。

4. 单击“总时间(ms)”后的,由大到小进行降序排序,如果发现时间差距很大的两张卡,那么耗时最短的卡即为慢卡,如图3所示。

   图3 查看慢卡

5. 单击慢卡“通信算子详情”列的“查看更多”,可查看每个通信算子耗时。

6. 单击算子“总时间(ms)”后的,进行降序排序,可以看到耗时最长的算子,如图4所示,复制该算子名称。

图4 查询算子

7. 在通信(Communication)界面,参数配置区域的“算子名称”选项中粘贴已复制的算子名称,在下拉框选择该算子。

8. 分别在“HCCL”和“通信时长”区域图表中,可看到该算子的耗时不对等,如图5所示,可判断是由慢卡引起的。获取图表中最快卡和最慢卡的原始数据目录,导入MindStudio Insight工具,在时间线(Timeline)界面进行具体分析。

图5 定位慢卡

分析数据

1. 将定位慢卡问题8定位到的最快卡和最慢卡的原始数据汇总至同一目录,并导入MindStudio Insight工具。

2. 打开通信(Communication)界面,选择“通信耗时分析”,在“算子名称”选项中输入定位到的慢卡算子名称,选择该算子。

3. 在“HCCL”区域,分别找到该算子耗时最短和耗时最长的卡,在对应柱状图上右键单击“跳转至时间线页面”,跳转至时间线(Timeline)界面对应卡的算子上,如图6所示。

    图6 跳转时间线页面

4. 单击,分别将所属卡的泳道置顶,对该算子进行比较分析,如图7所示。

    图7 分析算子信息

5. 并对所属卡其它进程的算子信息进行比较分析,定位慢卡原因,从而找到解决办法。

我要发帖子