PyTorch Span#

参考:SpanFillingPyTorch

PyTorch 重命名#

首先对模型中 C 图指令输出的调试名称进行重命名。接着在转换过程中获取它们。与使用高层次的 IR(即 TopLevelTracedModule)不同,PyTorch 前端的源 IR 是 C 图实例。在某些情况下,没有唯一的源名称可供使用。因此,我们基于它们的算子类型为 C 图指令的每个输出构建唯一的名称。通过重命名调试名称,可以在转换过程中获取它们。

导出 PyTorch C 图格式#

我们为用户导出 C 图的纯文本格式。选择这种格式有两个原因。

  • 原生 Netron 无法获取修改后的 debug 名称:考虑到最常用的可视化工具,Netron。它获取源名称的方式是基于模块的顺序。我们要将 C 图指令的重写名称标记为其源代码非常困难。如果不修改 Netron 的代码,我们无法通过 Netron 检查重写的名称。

  • C 图将被修改:在某些转换中,比如 QNN,C 图可能会与原始格式不同。为了给用户提供更多信息,我们决定导出修改后的图,以便用户有更多线索进行检查。

与之前的其他前端相比,Pytorch 是相对困难的前端。因为在转换过程中,我们不仅要处理重命名问题和导出格式,还要处理一些更特殊的情况。

参考: