代码拉取完成,页面将自动刷新
69400
Insert UnpackGraph in parse when boost infer on
已关闭
What type of PR is this?
/kind feature
What does this PR do / why do we need it:
开启boost infer时,type_inference前的action就不做了,meta_unpack_prepare的action需要有个替代方案。该PR的方案是,保留UnpackGraph算子的展开逻辑,插入时机改为在语法解析时插入。在解析Call操作时,如果调用节点经resolve后会变成grad/vmap/shard,则按照meta_unpack_prepare pass的逻辑,往正向图后面插入一个UnpackGraph节点。
处理前:
%0 = resolve(Namespace[...], grad_op)
%1 = resolve(Namespace[...], net)
%2 = %0(%1)
%3 = unpack_call(%2, %para1_inputs)
处理后:
%0 = resolve(Namespace[...], grad_op)
%1 = resolve(Namespace[...], net)
%2 = UnpackGraph(%1, %para1_inputs)
%3 = %0(%2)
%4 = unpack_call(%3, %para1_inputs)
Which issue(s) this PR fixes:
Code review checklist 【代码检视checklist说明】:
-
典型安全编码问题 【违反安全编码案例】
- 是否进行空指针校验
- 是否进行返回值校验 (禁止使用void屏蔽安全函数、自研函数返回值,C++标准库函数确认无问题可以屏蔽)
- 是否正确释放new/malloc申请的内存
-
性能分析 (如果涉及某个子项,请概述设计思想/修改内容)
- 是否修改热点函数 / 算法 / 算子
- 是否考虑并发场景
- 是否考虑通信场景
-
- 是否符合编码规范 【编码规范】
-
- 是否遵守 SOLID原则 / 迪米特法则
-
- 是否涉及模块/特性间交互 (若涉及请概述实现思路)
-
- 是否具备UT测试用例看护 && 测试用例为有效用例 (若新特性无测试用例看护请说明原因)
-
- 是否正确加载、释放秘钥
-
错误处理与记录
- 是否充分考虑接口的异常场景
- 是否正确记录错误信息
Special notes for your reviewers: