sysTrace用户指南

简介

sysTrace是一款运用于在AI训练任务中的软件,在AI训练中,常常出现训练任务故障导致训练成本浪费,业务痛点如下:

  • AI训练性能故障缺乏常态化监控、检测能力
  • Host bound引发的AI任务慢,卡故障缺乏全栈跟踪能力

sysTrace工具支持如下功能:

  • 采集torch_npu层的python函数的调用栈
  • 采集cann层的内存持有情况,判断是否发生HBM OOM故障
  • 采集mspti的通信算子下发/执行,判断是否发生算子慢的情况,从而定位到慢卡

安装

安装sysTrace工具需要操作系统为 openEuler 22.03 SP4,在配置了 openEuler yum 源的机器直接使用 yum 命令安装,此处介绍如何安装sysTrace工具。

环境要求

  • 操作系统:openEuler 22.03 SP4
  • Ascend CANN 版本不低于8.0 RC3
  • Libunwind 版本不低于 1.7

安装步骤

配置openEuler的yum源,直接使用yum命令安装

shell
yum install sysTrace

使用方法

采集数据

安装完sysTrace软件包后,使用LD_PRELAOD的方式将动态库加载到AI训练任务中(注:sysTrace 开销受AI训练任务影响,建议实际测试任务的训练开销波动在0.5%以下,波动较大场景测试开销可能影响较大,放大sysTrace的开销占用(实测2%左右))

shell
LD_PRELOAD=/usr/local/lib/libunwind.so.8.2.0:/usr/local/lib/libunwind-aarch64.so.8.2.0:/home/ascend-toolkit-bak/ascend-toolkit/8.0.RC3.10/tools/mspti/lib64/libmspti.so:/usr/lib64/libsysTrace.so python ...

转换数据

python
## 转化火焰图(注意:只能转换0卡的数据)
python /usr/bin/sysTrace/convert_mem_to_flamegraph.py <mem_trace_xxx_rank0.pb> <output_file>

python /usr/bin/sysTrace/convert_pytorch_to_timeline.py --output <output_file>

展示

将最终的数据上传到https://ui.perfetto.dev/并展示