工具¶
结果不对时,该拿什么。
四个问题,四件工具。顺序是有意义的 —— 每一件都比下一件便宜,而且第一个问题编译器通常已经替你回答过了。
| 问题 | 工具 | 页面 |
|---|---|---|
| 出了什么错,错在哪? | 错误类型、日志级别、IR dump | 调试 |
| 是 IR 错了,还是设备错了? | pypto.debug.torch_codegen |
Torch codegen |
| 片上放了什么,活多久? | pypto.tools.memory_map |
内存图 |
| 时间去哪了? | L2 泳道图 | 性能 |
先看便宜的那两样¶
有两样东西读起来不花任何代价,而且编译器已经替你产出了:
report/perf_hints.log,每次编译都会写 —— 编译器注意到但没有拒绝的东西:低于硬件粒度的搬运、它没能 tile 的 matmul、没放下的流水深度。还会往 stderr 打一行摘要。- 报错本身(如果有的话)。PyPTO 区分用户错误与内部错误,这个区分直接告诉你该改自己的代码还是该提 bug —— 见调试。