算子信息导出功能
功能简介
对一个自定义模型使能图模式前,需要验证模型中哪些算子支持入图,哪些算子不支持入图。本功能支持导出模型中使用的算子信息,包括算子名、是否有converter、算子调用次数等。
使用方法
该功能通过torchair.get_npu_backend中compiler_config参数配置,配置示例如下,参数说明参见表1。
1 2 3 4 5  | import torch_npu, torchair config = torchair.CompilerConfig() # 设置导出图中的Aten算子信息 config.debug.fx_summary.type = "csv" npu_backend = torchair.get_npu_backend(compiler_config=config)  | 
参数名  | 
参数说明  | 
是否必选  | 
|---|---|---|
fx_summary.type  | 
指定导出的文件类型,字符串类型。缺省为None,不导出图中的Aten算子信息。 当前仅支持csv格式。  | 
否  | 
fx_summary.skip_compile  | 
是否跳过GE的编译,以FX图Eager方式执行。 
  | 
否  | 
 在正式运行图模式时,要删除或注释config.debug.fx_summary.type = "csv"这行代码,否则将无法正确使能图模式。
产物说明
功能开启后,运行模型脚本,默认在当前路径下生成一个summary_${timestamp}.csv文件,文件包含Aten IR、是否支持图模式、调用次数及输入/输出shape等信息,内容样例如表2所示。
目标函数  | 
函数类型  | 
支持状态  | 
调用次数  | 
输入统计  | 
输出统计  | 
|---|---|---|---|---|---|
aten.as_strided.default  | 
aten  | 
未实现  | 
36  | 
24次:(float16(12, 1, 512, 64), [12, 1, 512, 64], [64, 196608, 768, 1]) 12次:(float16(12, 1024, 64), [12, 2, 768, 64], [65536, 16384, 64, 1])  | 
24次:float16(12, 1, 512, 64) 12次:float16(12, 2, 768, 64)  | 
aten.native_layer_norm.default  | 
aten  | 
部分支持  | 
62  | 
62次:(float16(1, s0, 4096), [4096], float16(4096,), float16(4096,), 1e-05)  | 
62次:(float16(1, s0, 4096), float32(1, s0, 1), float32(1, s0, 1))  | 
aten.add.Tensor  | 
aten  | 
已支持  | 
120  | 
60次:(float16(1, s0, 4096), float16(1, s0, 4096)) 30次:(float16(1, s0, 16384), 1) 30次:(float16(1, s0, 16384), 1.0)  | 
60次:float16(1, s0, 4096) 60次:float16(1, s0, 16384)  | 
<built-in function getitem>  | 
builtin  | 
已支持  | 
62  | 
62次:((float16(1, s0, 4096), float32(1, s0, 1), float32(1, s0, 1)), 0)  | 
62次:float16(1, s0, 4096)  | 
csv文件中在“支持状态”列选择支持以下情况,而“调用次数”、“输入统计”、“输出统计”列分别表示算子的调用次数、算子输入/输出的shape和dtype信息。
- 未实现:该算子暂不支持图模式。
 - 已支持:该算子支持图模式。
 - 部分支持:该算子在部分场景下不支持图模式。