Debug/Profile/Devlop Tools of PTA
机制
Python侧暴露接口
在PTA里如下注册,即可在python侧import torch_npu
快速使用torch_npu._C._npu_init_sync_record()
。^2
1 | static struct PyMethodDef THNPModule_methods[] = { |
工具
GDB/PDB
TORCH_SHOW_CPP_STACKTRACES=1
开启打印报错堆栈- 每日包有debug信息,移动到
.so
对应目录,即可解析不可读符号。
- 每日包有debug信息,移动到
- 卡死python进程 madbg
PTA profile
可选如下:
- Python 侧
- C++侧
- 学习使用低侵入式的
gperftools
- 学习使用低侵入式的
性能比对
参考算子性能比对工具
选项:
- 输出路径:
on_trace_ready=torch.profiler.tensorboard_trace_handler("./result_dir")
- 除了使用
tensorboard_trace_handler
导出性能数据外,还可以使用以下方式导出:prof.export_chrome_trace('./chrome_trace_14.json')
^3
- 采集步数:
schedule=torch.profiler.schedule(wait=10, warmup=0, active=1, repeat=1)
, 解释看文档。 - 必选项:activities=[torch_npu.profiler.ProfilerActivity.CPU,torch_npu.profiler.ProfilerActivity.NPU],
- 更多选项及解释^3。
算子优化
- CANN 提供 msopt 工具 和 msprof来仿真流水。
- CAModel 和 PEMModel
约定与规则
环境变量
报错报警机制
- 接口
Ascend_logd
来使用CANN暴露的接口aclAppLog
。 - 通过
export ASCEND_GLOBAL_LOG_LEVEL=0
开启, 同时设置export ASCEND_PROCESS_LOG_PATH=$HOME/log/
^1
错误码
ACL_ERROR_NONE
参考文献
Debug/Profile/Devlop Tools of PTA
http://icarus.shaojiemike.top/2024/10/11/Work/Programming/DebugProfile/DebugProfilePTA/