Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
91b074a2
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
91b074a2
编写于
2月 09, 2022
作者:
C
Chen Weihang
提交者:
GitHub
2月 09, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CustomOp] Fix slice bug of custom op (#39393)
* fix slice bug of cusstom op * add offset in check
上级
f810d755
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
8 deletion
+5
-8
paddle/fluid/framework/custom_operator.cc
paddle/fluid/framework/custom_operator.cc
+2
-1
paddle/pten/core/dense_tensor_impl.cc
paddle/pten/core/dense_tensor_impl.cc
+2
-7
python/paddle/fluid/tests/custom_op/CMakeLists.txt
python/paddle/fluid/tests/custom_op/CMakeLists.txt
+1
-0
未找到文件。
paddle/fluid/framework/custom_operator.cc
浏览文件 @
91b074a2
...
...
@@ -249,7 +249,8 @@ static void RunKernelFunc(const framework::ExecutionContext& ctx,
true_out_meta
->
dims
=
calc_out
->
dims
();
true_out_meta
->
dtype
=
calc_out
->
dtype
();
true_out_meta
->
layout
=
calc_out
->
layout
();
// lod and offset no need to be reset
true_out_meta
->
offset
=
calc_out
->
offset
();
// lod no need to be reset
// reset holder if needed
if
(
true_out
->
Holder
()
!=
calc_out
->
Holder
())
{
true_out
->
ResetHolder
(
calc_out
->
Holder
());
...
...
paddle/pten/core/dense_tensor_impl.cc
浏览文件 @
91b074a2
...
...
@@ -76,13 +76,8 @@ void DenseTensor::set_layout(const paddle::framework::DataLayout layout) {
meta_
.
layout
=
layout
;
}
// Note: When you reset holder, you need to ensure the offset is correct
void
DenseTensor
::
ResetHolder
(
const
std
::
shared_ptr
<
pten
::
Allocation
>&
holder
)
{
PADDLE_ENFORCE_EQ
(
meta_
.
offset
,
0
,
paddle
::
platform
::
errors
::
Fatal
(
"Only the offset is supported to zero when the holder is reset."
));
if
(
holder_
)
{
// TODO(zyfncg): The change of static_cast<> in check will recover back
// when SetAllocationForOutputTenosr is deleted.
...
...
@@ -90,7 +85,7 @@ void DenseTensor::ResetHolder(const std::shared_ptr<pten::Allocation>& holder) {
// compare with a data with unsigned long type, this will make checking
// failed, so it's a temporary solution to deal with this problem.
PADDLE_ENFORCE_LE
(
numel
()
*
static_cast
<
int64_t
>
(
SizeOf
(
dtype
())),
numel
()
*
static_cast
<
int64_t
>
(
SizeOf
(
dtype
()))
+
meta_
.
offset
,
static_cast
<
int64_t
>
(
holder
->
size
()),
paddle
::
platform
::
errors
::
InvalidArgument
(
"The size of Holder is not enough to store the Tensor."
));
...
...
python/paddle/fluid/tests/custom_op/CMakeLists.txt
浏览文件 @
91b074a2
...
...
@@ -20,6 +20,7 @@ py_test(test_custom_attrs_jit SRCS test_custom_attrs_jit.py)
py_test
(
test_custom_concat SRCS test_custom_concat.py
)
py_test
(
test_custom_conj SRCS test_custom_conj.py
)
py_test
(
test_custom_linear SRCS test_custom_linear.py
)
py_test
(
test_custom_simple_slice SRCS test_custom_simple_slice.py
)
# other tests
py_test
(
test_sysconfig SRCS test_sysconfig.py
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录