-
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
[PIR] standardize the use of value[-4]. #57373
Conversation
7f028de
to
cc07302
Compare
4beb146
to
54b6e13
Compare
54b6e13
to
1cfd559
Compare
const std::vector<std::vector<bool>>& stop_gradients) { | ||
return impl_->vjp_(op, out_grads, stop_gradients); | ||
} | ||
|
||
std::vector<std::vector<pir::OpResult>> Vjp( | ||
pir::Operation* op, | ||
const std::vector<std::vector<pir::OpResult>>& out_grads, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这里新增一个重载的Vjp 函数什么背景?我看上面是把入参类型由Value改为了OpResult
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
上层python api调用vjp接口时,传递的是std::vector<std::vector<pir::OpResult>>。 但下层op build接口接受的参数在本次PR中被修正为了std::vector<std::vector<pir::Value>>。 中间存在gap。 OpResult是Value的派生类,这儿新增了一个重载接口,进行该参数的类型转换。
后续控制流支持python api的话,也需要逐步将python相关代码中部分对OpResult的使用替换为Value。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
好的,了解了
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
PR types
Others
PR changes
APIs
Description
规范化代码中对Value的使用[-4]。
Value分两种,OpResult和BlockArgument. 由于之前没有BlockArgument, 大家都是混用Value和OpResult, 现在有了BlockArguemnt, 需要区分Value和OpResult的使用。
在需要支持BlockArgument的地方,将原本的OpResult升级为Value,使其能够兼容BlockArgument的行为。
本pr内容:
参考pr:
Other
Pcard-67164