-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【开源任务】新 IR API 推全升级 #57097
Comments
认领 12 13 |
认领 21 |
认领 5-8 |
认领40-44 |
认领 9, 10 ,11 |
认领38,39 |
认领14 |
认领 17,19 |
认领 33-35 |
认领17-20,22-23,25-26,31-32 |
认领37 |
认领30 |
认领28 |
认领45-48 |
认领 50 |
No.47 |
谢谢,已移除 |
@ranchongzhi 40题由于项目内部需求,需要尽快推进完成,我这边接手做了哈 |
新 IR API 推全升级已全部完成,感谢参与的小伙伴们!
欢迎继续参与快乐开源的其他任务! |
一,背景和任务列表
详情见:#55737
⭐️ 提交PR 模版 ⭐️:
本期需要升级的 API 如下:(整体进展:48/48)
其他算子任务:
二,任务详情
对Python API进行适配升级,实现在新IR模式下,在Python端调用底层C++端新 IR API。
以组网api mean举例:
升级前:
升级后:
再比如concat:
升级前:
升级后:
本任务中,需要关注的有三种模式判断:
为了提高Python端的代码复用,提升代码简洁性降低维护成本,我们对C++端新IR API和动态图API接口进行了统一。正如上述mean所示,
_C_ops.mean
可以表示在新IR或者动态图下的C++接口,所以为了能够在新IR模式下调用C++接口,只需要将in_dygraph_mode()
改为in_dynamic_or_pir_mode()
即可,这样就实现了Python端支持新IR API调用。但是在api concat当中,由于动态图中存在无法给新IR复用的代码,所以使用in_pir_mode()
新开了一个分支。三,单测验证
需要对api相关单测进行修改以进行验证,以mean为例,测试改api的单测在文件
test_mean_op.py
中,在单测函数中,加入check_new_ir=True
,就实现对新IR下api的验证:运行这个单测有俩种方式,任意一种跑通即可:
1,编译安装好paddle直接使用python命令执行单测文件
2,编译paddle后,在build目录下,使用命令
ctest -R test_mean_op
来运行注1:由于当前新IR还处于机制完善和验证阶段,且单测验证框架也可能存在问题,所以遇到不容易解决的问题先记录到下边任务列表当中,由paddle团队来解决。
注2:为了确保新IR api推全的正确性,单测验证至少需要适配一个
check_output()
并跑通。The text was updated successfully, but these errors were encountered: