PyTorch模型使能图模式前,需要先识别FX图中IR是否有对应converter实现。若有,表示算子支持接入Ascend IR计算图;否则不支持入图。对于不支持入图的算子,请根据实际情况进行converter补齐,具体操作请参考LINK。
本功能可以导出算子详细信息,包括算子名、算子converter支持度、算子调用次数等。
该功能通过torchair.get_npu_backend中compiler_config配置,示例如下,参数介绍参见表1。
1 2 3 4 5 6 | import torch_npu, torchair config = torchair.CompilerConfig() # 设置导出图中的Aten算子信息 config.debug.fx_summary.type = "csv" npu_backend = torchair.get_npu_backend(compiler_config=config) opt_model = torch.compile(model, backend=npu_backend) |
参数名 |
参数说明 |
---|---|
fx_summary.type |
指定导出的文件类型,字符串类型。缺省为None,不导出图中的Aten算子信息。 当前仅支持csv格式。 |
fx_summary.skip_compile |
是否跳过Ascend IR图编译,以FX图Eager方式执行。
|
在正式运行图模式时,要删除或注释config.debug.fx_summary.type = "csv"这行代码,否则将无法正确使能图模式。
功能开启后,默认在当前脚本所在路径生成summary_${timestamp}.csv文件,文件样例如表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) |