Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
066a8063
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
066a8063
编写于
1月 10, 2022
作者:
W
wangxinxin08
提交者:
GitHub
1月 10, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix attr missing in conv cudnn kernel (#38827)
上级
b4dd7828
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
7 deletion
+12
-7
paddle/fluid/operators/conv_cudnn_op.cu
paddle/fluid/operators/conv_cudnn_op.cu
+12
-7
未找到文件。
paddle/fluid/operators/conv_cudnn_op.cu
浏览文件 @
066a8063
...
...
@@ -65,7 +65,8 @@ class CUDNNConvOpKernel : public framework::OpKernel<T> {
int
groups
=
ctx
.
Attr
<
int
>
(
"groups"
);
bool
exhaustive_search
=
FLAGS_cudnn_exhaustive_search
||
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
);
FLAGS_cudnn_exhaustive_search
||
(
ctx
.
HasAttr
(
"exhaustive_search"
)
&&
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
));
bool
deterministic
=
FLAGS_cudnn_deterministic
;
auto
exhaustive_deterministic
=
exhaustive_search
&&
deterministic
;
PADDLE_ENFORCE_EQ
(
exhaustive_deterministic
,
false
,
...
...
@@ -386,7 +387,8 @@ class CUDNNConvGradOpKernel : public framework::OpKernel<T> {
int
groups
=
ctx
.
Attr
<
int
>
(
"groups"
);
bool
exhaustive_search
=
FLAGS_cudnn_exhaustive_search
||
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
);
FLAGS_cudnn_exhaustive_search
||
(
ctx
.
HasAttr
(
"exhaustive_search"
)
&&
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
));
bool
deterministic
=
FLAGS_cudnn_deterministic
;
auto
exhaustive_deterministic
=
exhaustive_search
&&
deterministic
;
PADDLE_ENFORCE_EQ
(
exhaustive_deterministic
,
false
,
...
...
@@ -437,7 +439,7 @@ class CUDNNConvGradOpKernel : public framework::OpKernel<T> {
ctx
,
input_grad
,
&
transformed_input_grad_channel
);
// NOTE(zhiqiu): If inplace_addto strategy is enabled, we need to copy
// the data of input_grad to transformed_input_grad_channel.
if
(
ctx
.
Attr
<
bool
>
(
"use_addto"
))
{
if
(
ctx
.
HasAttr
(
"use_addto"
)
&&
ctx
.
Attr
<
bool
>
(
"use_addto"
))
{
TransToChannelFirst
<
platform
::
CUDADeviceContext
,
T
>
(
ctx
,
input_grad
,
&
transformed_input_grad_channel
);
}
...
...
@@ -703,15 +705,17 @@ class CUDNNConvGradOpKernel : public framework::OpKernel<T> {
// MIOPEN ONLY support beta to be 0.0f
ScalingParamType
<
T
>
beta
=
0.0
f
;
#else
ScalingParamType
<
T
>
beta
=
ctx
.
Attr
<
bool
>
(
"use_addto"
)
?
1.0
f
:
0.0
f
;
ScalingParamType
<
T
>
beta
=
(
ctx
.
HasAttr
(
"use_addto"
)
&&
ctx
.
Attr
<
bool
>
(
"use_addto"
))
?
1.0
f
:
0.0
f
;
#endif
VLOG
(
4
)
<<
"Conv_grad: use_addto = "
<<
ctx
.
Attr
<
bool
>
(
"use_addto"
);
VLOG
(
4
)
<<
"Conv_grad: use_addto = "
<<
(
ctx
.
HasAttr
(
"use_addto"
)
&&
ctx
.
Attr
<
bool
>
(
"use_addto"
));
if
(
input_grad
)
{
// When beta is 0, it is unnecessary to reset input_grad.
// When beta is 1, the output cannot be reset since addt strategy used.
#ifdef PADDLE_WITH_HIP
if
(
ctx
.
Attr
<
bool
>
(
"use_addto"
))
{
if
(
ctx
.
HasAttr
(
"use_addto"
)
&&
ctx
.
Attr
<
bool
>
(
"use_addto"
))
{
Tensor
temp_tensor
(
transformed_input_grad
.
type
());
temp_tensor
.
Resize
(
transformed_input_grad
.
dims
());
T
*
temp_tensor_data
=
temp_tensor
.
mutable_data
<
T
>
(
ctx
.
GetPlace
());
...
...
@@ -878,7 +882,8 @@ class CUDNNConvDoubleGradOpKernel : public framework::OpKernel<T> {
int
groups
=
ctx
.
Attr
<
int
>
(
"groups"
);
bool
exhaustive_search
=
FLAGS_cudnn_exhaustive_search
||
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
);
FLAGS_cudnn_exhaustive_search
||
(
ctx
.
HasAttr
(
"exhaustive_search"
)
&&
ctx
.
Attr
<
bool
>
(
"exhaustive_search"
));
bool
deterministic
=
FLAGS_cudnn_deterministic
;
auto
exhaustive_deterministic
=
exhaustive_search
&&
deterministic
;
PADDLE_ENFORCE_EQ
(
exhaustive_deterministic
,
false
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录