Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
6e2f9684
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e2f9684
编写于
10月 03, 2017
作者:
Y
Yang Yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
simple test
上级
f29a6b02
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
61 addition
and
8 deletion
+61
-8
paddle/framework/executor.cc
paddle/framework/executor.cc
+23
-7
paddle/framework/executor_test.cc
paddle/framework/executor_test.cc
+38
-1
未找到文件。
paddle/framework/executor.cc
浏览文件 @
6e2f9684
...
...
@@ -14,6 +14,7 @@ limitations under the License. */
#include "paddle/framework/executor.h"
#include <memory>
#include <vector>
#include "paddle/framework/op_registry.h"
#include "paddle/framework/operator.h"
#include "paddle/framework/scope.h"
...
...
@@ -22,6 +23,8 @@ limitations under the License. */
namespace
paddle
{
namespace
framework
{
// using std::unique_ptr<OperatorBase> op_ptr;
class
LinearListView
;
class
GraphView
;
...
...
@@ -158,14 +161,27 @@ Executor* NewLocalExecutor(const platform::Place& place,
}
void
ExecutorImpl
::
Run
()
{
// operators running
scope_
->
NewVar
();
device_
->
cpu_device_context
->
Wait
();
#ifndef PADDLE_ONLY_CPU
if
(
device_
->
cuda_device_context
)
{
device_
->
cuda_device_context
->
Wait
();
// TODO(tonyyang-svail): only runs the first block
auto
&
block
=
program_desc_
->
blocks
(
0
);
for
(
auto
&
var
:
block
.
vars
())
{
scope_
->
NewVar
(
var
.
name
());
}
#endif
// std::vector<op_ptr> ops;
for
(
auto
&
op_desc
:
block
.
ops
())
{
auto
op
=
framework
::
OpRegistry
::
CreateOp
(
op_desc
);
op
->
InferShape
(
device_
->
cpu_device_context
);
op
->
Compute
();
}
// TODO(tonyyang-svail): need to test gpu device
// device_->cpu_device_context->Wait();
// #ifndef PADDLE_ONLY_CPU
// if (device_->cuda_device_context) {
// device_->cuda_device_context->Wait();
// }
// #endif
}
void
ExecutorImpl
::
Initialize
()
{
...
...
paddle/framework/executor_test.cc
浏览文件 @
6e2f9684
...
...
@@ -13,6 +13,8 @@ See the License for the specific language governing permissions and
limitations under the License. */
#include "paddle/framework/executor.h"
#include "paddle/framework/attribute.h"
#include "gtest/gtest.h"
using
namespace
paddle
::
platform
;
...
...
@@ -20,8 +22,43 @@ using namespace paddle::framework;
TEST
(
Executor
,
Init
)
{
ProgramDesc
pdesc
;
auto
root_block
=
pdesc
.
add_blocks
();
root_block
->
set_idx
(
0
);
root_block
->
set_parent_idx
(
-
1
);
auto
a
=
root_block
->
add_vars
();
a
->
set_name
(
"a"
);
auto
a_lt
=
a
->
mutable_lod_tensor
();
a_lt
->
set_data_type
(
paddle
::
framework
::
DataType
::
FP32
);
a_lt
->
add_dims
(
640
);
a_lt
->
add_dims
(
640
);
auto
b
=
root_block
->
add_vars
();
b
->
set_name
(
"b"
);
auto
b_lt
=
b
->
mutable_lod_tensor
();
b_lt
->
set_data_type
(
paddle
::
framework
::
DataType
::
FP32
);
b_lt
->
add_dims
(
640
);
b_lt
->
add_dims
(
640
);
auto
c
=
root_block
->
add_vars
();
c
->
set_name
(
"c"
);
auto
c_lt
=
c
->
mutable_lod_tensor
();
c_lt
->
set_data_type
(
paddle
::
framework
::
DataType
::
FP32
);
c_lt
->
add_dims
(
640
);
c_lt
->
add_dims
(
640
);
auto
op1
=
root_block
->
add_ops
();
op1
->
set_type
(
"elementwise_add"
);
auto
X
=
op1
->
add_inputs
();
X
->
set_parameter
(
"X"
);
X
->
add_arguments
(
"a"
);
auto
Y
=
op1
->
add_inputs
();
Y
->
set_parameter
(
"Y"
);
Y
->
add_arguments
(
"b"
);
CPUPlace
cpu_place
;
Executor
*
executor
=
NewLocalExecutor
(
cpu_place
,
pdesc
,
true
);
executor
->
Run
();
delete
executor
;
}
\ No newline at end of file
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录