Skip to content

[PIR] standardize the use of value[-4].#57373

Merged
winter-wang merged 1 commit into
PaddlePaddle:developfrom
winter-wang:cf_develop
Sep 18, 2023
Merged

[PIR] standardize the use of value[-4].#57373
winter-wang merged 1 commit into
PaddlePaddle:developfrom
winter-wang:cf_develop

Conversation

@winter-wang
Copy link
Copy Markdown
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

std::vector<std::vector<pir::OpResult>> Vjp(
pir::Operation* op,
const std::vector<std::vector<pir::OpResult>>& out_grads,
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

好的,了解了

Copy link
Copy Markdown
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