Created by: liu-plus-wei
OpProtoAndCheckerMaker 的operator()逻辑中会增加四个默认属性,这四个默认属性在动态图逻辑中是没有用到的。 但是默认属性的添加会导致在每次动态图op运行中往attr map中做emplace操作,同时也会增加反向op创建时的拷贝数据量。
改动: 将OpProtoAndCheckerMaker operator()逻辑中,Make函数之后添加的属性视为implicit 属性,Make函数中通过AddAttr来注册的属性视为explicit属性,动态图逻辑中我们只对explicit属性来做检查
收益: 在ptb模型上有大概3.8%左右的提升
主要影响模块 | 原时长 | 优化后时长 | 收益 |
---|---|---|---|
SetAttrMap | 0.23s | 0.05s | 2.42% => 0.56% |
OpAttrChecker | 0.54s | 0.34s | 5.81% => 3.80% |