[XPU] fix strided_copy data_size param#74225
[XPU] fix strided_copy data_size param#74225dynamicheart merged 1 commit intoPaddlePaddle:developfrom
Conversation
|
你的PR提交成功,感谢你对开源项目的贡献! |
| int64_t data_size = input.Holder()->size() - input.meta().offset; | ||
| int64_t data_size_in = input.Holder()->size() - input.meta().offset; | ||
| int64_t data_size_out = out->Holder()->size() - out->meta().offset; | ||
| int64_t data_size = std::max(data_size_in, data_size_out); |
There was a problem hiding this comment.
strided_copy的size是不是应该跟out的size有关?如果in的size大于out的size,他是有多个输入写到同一个输出地址吗?overwrite?
There was a problem hiding this comment.
这里的data_size是指原始的数据大小,即显存里实际存放的大小,不是逻辑上的tensor大小,输入输出的data_size由于stride的存在都有可能远大于tensor.numel(),是否overwrite由stride和shape共同控制,合法的strided_copy不应该存在overwrite的情形。
There was a problem hiding this comment.
理论上是不是不需要data_size这个参数?tensor的dim和stride可以推算出来
There was a problem hiding this comment.
加上这个参数 1 是为了做合法校验,防止paddle的bug,api参数检查会通过tensor的dim和stride计算tensor大小,不能大于data_size 2 对于API来说是必要的,因为单测要分配原始tensor大小的显存,需要预先定好
PR Category
Custom Device
PR Types
Bug fixes
Description
Fix strided_copy data_size param