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/并展示
文档捉虫