Skip to content
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

Merged
merged 1 commit into from
Sep 18, 2023

Conversation

winter-wang
Copy link
Contributor

@winter-wang winter-wang commented Sep 15, 2023

PR types

Others

PR changes

APIs

Description

规范化代码中对Value的使用[-4]。

Value分两种,OpResult和BlockArgument. 由于之前没有BlockArgument, 大家都是混用Value和OpResult, 现在有了BlockArguemnt, 需要区分Value和OpResult的使用。
在需要支持BlockArgument的地方,将原本的OpResult升级为Value,使其能够兼容BlockArgument的行为。

本pr内容:

  • 将pir::OperationArgument::inputs_中的类型由std::vector<pir::OpResult>修改为std::vector<pir::value>。
  • 将所有Dialect中相关op的Build接口的相关参数由OpResult替换成了Value。

参考pr:

Other

Pcard-67164

@winter-wang winter-wang changed the title [PIR] normalize the use of value. [PIR] normalize the use of value.3-2 Sep 15, 2023
@winter-wang winter-wang changed the title [PIR] normalize the use of value.3-2 [PIR] normalize the use of value.3-3 Sep 16, 2023
@winter-wang winter-wang changed the title [PIR] normalize the use of value.3-3 [PIR] normalize the use of value[4-4] Sep 17, 2023
@winter-wang winter-wang changed the title [PIR] normalize the use of value[4-4] [PIR] standardize the use of value[4-4]. Sep 17, 2023
@winter-wang winter-wang force-pushed the cf_develop branch 25 times, most recently from 4beb146 to 54b6e13 Compare September 17, 2023 17:21
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,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里新增一个重载的Vjp 函数什么背景?我看上面是把入参类型由Value改为了OpResult

Copy link
Contributor Author

@winter-wang winter-wang Sep 18, 2023

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。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

好的,了解了

Copy link
Contributor

@XiaoguangHu01 XiaoguangHu01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@winter-wang winter-wang merged commit 5379490 into PaddlePaddle:develop Sep 18, 2023
@winter-wang winter-wang changed the title [PIR] standardize the use of value[4-4]. [PIR] standardize the use of value[-4]. Sep 18, 2023
Frida-a pushed a commit to Frida-a/Paddle that referenced this pull request Oct 14, 2023
danleifeng pushed a commit to danleifeng/Paddle that referenced this pull request Nov 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants