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

【NewIR】add share_data_op #57212

Merged
merged 3 commits into from
Sep 15, 2023
Merged

Conversation

yangguohao
Copy link
Contributor

PR types

Others

PR changes

OPs

Description

add share_data op for newIR

@paddle-bot
Copy link

paddle-bot bot commented Sep 12, 2023

你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

@paddle-bot paddle-bot bot added the contributor External developers label Sep 12, 2023
@kangguangli
Copy link
Contributor

@yangguohao 除了approve以外的CI如果判断不是自己的问题,可以rerun下

@yangguohao
Copy link
Contributor Author

有冲突 重新解决一下

Comment on lines +166 to +171
- op : share_data
args : (Tensor x)
output : Tensor(out)
kernel:
func: share_data
param: [x]
Copy link
Contributor

Choose a reason for hiding this comment

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

share_data 和 share_buffer 的区别是什么?

Copy link
Contributor

Choose a reason for hiding this comment

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

目前看有两个区别吧:

  1. share_data支持DenseTensor和SelectedRows,share_buffer只支持前者
  2. 内部实现有一定区别,这个区别是DenseTensor::ShareDataWithDenseTensor::ShareBufferWith的区别,从注释上看,这两者的区别是
// NOTE: For historical reasons, this interface has a special behavior,
// sharing other tensor members except lod
DenseTensor& DenseTensor::ShareDataWith(const DenseTensor& src) {

Copy link
Contributor

Choose a reason for hiding this comment

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

这里是不可以考虑下在新IR上能不能顺便把这个历史问题解了?上面这两个算子的差异确实不容易区分,后来的开发者如果不了解背景看到这样逻辑很容易一头雾水,搞不好又会成为历史包袱

Copy link
Contributor

Choose a reason for hiding this comment

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

经讨论决定,保留share_data,删除share_buffer。从新IR下删除share_buffer的工作辛苦 @yangguohao 看下,后面单独提个PR完成下。

Copy link
Contributor Author

Choose a reason for hiding this comment

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

经讨论决定,保留share_data,删除share_buffer。从新IR下删除share_buffer的工作辛苦 @yangguohao 看下,后面单独提个PR完成下。

好的 之后我提个 PR 处理

Copy link
Contributor

Choose a reason for hiding this comment

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

关于share_buffer的删除,只要去掉 paddle/fluid/pir/dialect/operator/ir/ops.yaml 中的定义即可

Copy link
Contributor

@kangguangli kangguangli left a comment

Choose a reason for hiding this comment

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

LGTM

@kangguangli kangguangli merged commit d3e79d7 into PaddlePaddle:develop Sep 15, 2023
@yangguohao yangguohao deleted the share_data branch September 18, 2023 05:44
danleifeng pushed a commit to danleifeng/Paddle that referenced this pull request Nov 14, 2023
* add share_data_op

* fix share_data op
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contributor External developers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants