Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
d762e07e
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看板
未验证
提交
d762e07e
编写于
1月 09, 2018
作者:
Q
Qiao Longfei
提交者:
GitHub
1月 09, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #7294 from jacquesqiao/add-back-priority
add back priority
上级
43dab723
5b94948b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
23 addition
and
7 deletion
+23
-7
paddle/framework/init.cc
paddle/framework/init.cc
+1
-1
paddle/framework/op_registry_test.cc
paddle/framework/op_registry_test.cc
+3
-3
paddle/framework/operator.cc
paddle/framework/operator.cc
+18
-2
paddle/operators/fetch_op.cc
paddle/operators/fetch_op.cc
+1
-1
未找到文件。
paddle/framework/init.cc
浏览文件 @
d762e07e
...
...
@@ -72,7 +72,7 @@ bool InitDevices(const std::vector<std::string> &devices) {
LOG
(
WARNING
)
<<
"Not specified CPU device, create CPU by Default."
;
}
platform
::
DeviceContextPool
::
Init
(
places
);
framework
::
UseALL
();
//
framework::UseALL();
return
true
;
}
...
...
paddle/framework/op_registry_test.cc
浏览文件 @
d762e07e
...
...
@@ -376,16 +376,16 @@ TEST(OperatorRegistrar, OpWithMultiKernel) {
paddle
::
framework
::
UseCPU
();
op
->
Run
(
scope
,
cpu_place
);
EXPECT_EQ
(
op_test_value
,
-
20
);
EXPECT_EQ
(
op_test_value
,
-
9
);
// add cuda kernels
paddle
::
framework
::
UseCUDA
();
op
->
Run
(
scope
,
cuda_place
);
EXPECT_EQ
(
op_test_value
,
-
3
0
);
EXPECT_EQ
(
op_test_value
,
-
1
0
);
// use cudnn kernel
paddle
::
framework
::
UseCUDNN
();
op
->
Run
(
scope
,
cuda_place
);
EXPECT_EQ
(
op_test_value
,
-
4
0
);
EXPECT_EQ
(
op_test_value
,
-
2
0
);
}
paddle/framework/operator.cc
浏览文件 @
d762e07e
...
...
@@ -495,6 +495,22 @@ void OperatorWithKernel::Run(const Scope& scope,
ExecutionContext
ctx
(
*
this
,
scope
,
*
dev_ctx
);
auto
expected_kernel_key
=
this
->
GetExpectedKernelType
(
ctx
);
OpKernelMap
&
kernels
=
kernels_iter
->
second
;
for
(
auto
&
candidate
:
kKernelPriority
)
{
auto
candidate_key
=
OpKernelType
(
expected_kernel_key
.
data_type_
,
std
::
get
<
0
>
(
candidate
),
expected_kernel_key
.
data_layout_
,
std
::
get
<
1
>
(
candidate
));
if
((
candidate_key
==
expected_kernel_key
)
||
(
kernels
.
count
(
candidate_key
)))
{
expected_kernel_key
=
candidate_key
;
break
;
}
}
VLOG
(
3
)
<<
"expected_kernel_key:"
<<
expected_kernel_key
;
Scope
&
new_scope
=
scope
.
NewScope
();
for
(
auto
&
var_name_item
:
this
->
Inputs
())
{
...
...
@@ -525,10 +541,10 @@ void OperatorWithKernel::Run(const Scope& scope,
}
}
OpKernelMap
&
kernels
=
kernels_iter
->
second
;
auto
kernel_iter
=
kernels
.
find
(
expected_kernel_key
);
kernel_iter
->
second
->
Compute
(
ExecutionContext
(
*
this
,
new_scope
,
*
dev_ctx
));
kernel_iter
->
second
->
Compute
(
ExecutionContext
(
*
this
,
new_scope
,
*
pool
.
Get
(
expected_kernel_key
.
place_
)));
}
proto
::
DataType
OperatorWithKernel
::
IndicateDataType
(
...
...
paddle/operators/fetch_op.cc
浏览文件 @
d762e07e
...
...
@@ -53,7 +53,7 @@ class FetchOp : public framework::OperatorBase {
// FIXME(yuyang18): Should we assume the fetch operator always generate
// CPU outputs?
platform
::
DeviceContextPool
&
pool
=
platform
::
DeviceContextPool
::
Instance
();
auto
&
dev_ctx
=
*
pool
.
Get
(
place
);
auto
&
dev_ctx
=
*
pool
.
Get
(
src_item
.
place
()
);
CopyFrom
(
src_item
,
platform
::
CPUPlace
(),
dev_ctx
,
&
dst_item
);
dev_ctx
.
Wait
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录