Skip to content

Commit 8f18f4d

Browse files
committed
Merge branch 'develop' of https://github.com/PaddlePaddle/Paddle into fix_hang_up
2 parents ce4ddd7 + 4f10039 commit 8f18f4d

File tree

90 files changed

+1351
-849
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1351
-849
lines changed

doc/fluid/design/ir/draft.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
## Motivation
22

3-
There is a ```gap``` between the ```Program``` defined by
4-
user and the ```Executable``` that can be scheduled
3+
There is a `gap` between the `Program` defined by
4+
user and the `Executable` that can be scheduled
55
efficiently on heterogeneous hardware, either locally
66
or distributedly.
77

8-
Usually, the ```gap``` is bridged by
8+
Usually, the `gap` is bridged by
99

1010
* A serious transformations with defined order.
1111

1212
* These transformations usually involve
13-
```insert, delete, clustering, split, dependency analysis```.
13+
`insert, delete, clustering, split, dependency analysis`.
1414

1515
* Has a simple way to verify and debug each transformation.
1616

@@ -38,44 +38,44 @@ design below.
3838

3939
#### Node
4040

41-
```Node``` represents an operation that performs some computation or
41+
`Node` represents an operation that performs some computation or
4242
a variable that is input or output of operation.
4343

44-
```Node```s are connected to other ```Node```s via inputs and outputs.
44+
`Node`s are connected to other `Node`s via inputs and outputs.
4545

4646
Other properties (maybe device placement information) can be added
47-
to ```Node``` in the future if it's a
48-
common requirement of many other ```Pass```es. Otherwise, it should live
49-
in a ```Node``` wrapper class that is private to some ```Pass``` or be
50-
a local member of a ```Pass```.
47+
to `Node` in the future if it's a
48+
common requirement of many other `Pass`es. Otherwise, it should live
49+
in a `Node` wrapper class that is private to some `Pass` or be
50+
a local member of a `Pass`.
5151

5252
#### Graph
5353

54-
```Graph``` contains a list of ```Node```s, which are connected to
54+
`Graph` contains a list of `Node`s, which are connected to
5555
each other via inputs and outputs.
5656

5757
TODO: Better definitions for the graph.
5858

59-
```Graph``` can also contain ```Attribute```s. ```Attribute```s
60-
can be ``any`` thing. For example, it can be a list of "wraper"
61-
nodes. The ```wrapper``` nodes compose ```Node```s and provide
62-
helper method for execution or transformation. ```Attribute```
59+
`Graph` can also contain `Attribute`s. `Attribute`s
60+
can be `any` thing. For example, it can be a list of "wraper"
61+
nodes. The `wrapper` nodes compose `Node`s and provide
62+
helper method for execution or transformation. `Attribute`
6363
can also contain other things that describe some properties of
64-
the ```Graph``` or ```Graph``` nodes. ```Attribute``` can be passed
65-
across ```Pass```. However, it should be used with care.
64+
the `Graph` or `Graph` nodes. `Attribute` can be passed
65+
across `Pass`. However, it should be used with care.
6666

6767
#### Pass
6868

69-
```Pass``` represents a transformation of ```Graph```. Its input
70-
is a ```Graph``` and its output is also a ```Graph```. For example,
71-
a ```Pass``` can simply print out the ```Graph```. A ```Pass```
72-
can also fuse some ```Graph```'s ```Node```s.
69+
`Pass` represents a transformation of `Graph`. Its input
70+
is a `Graph` and its output is also a `Graph`. For example,
71+
a `Pass` can simply print out the `Graph`. A `Pass`
72+
can also fuse some `Graph`'s `Node`s.
7373

7474
#### Optimize
7575

76-
```Optimize``` contains a series of ```Pass``` with defined order.
77-
```Optimize``` transforms a ```Graph``` that only contains raw
78-
modeling logic to a ```Graph``` that can be run efficiently while
76+
`Optimize` contains a series of `Pass` with defined order.
77+
`Optimize` transforms a `Graph` that only contains raw
78+
modeling logic to a `Graph` that can be run efficiently while
7979
maintaining the original modeling logic.
8080

8181

paddle/fluid/API.spec

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
paddle.fluid.Variable.__init__ ArgSpec(args=['self', 'block', 'type', 'name', 'shape', 'dtype', 'lod_level', 'capacity', 'persistable', 'error_clip', 'stop_gradient', 'is_data'], varargs=None, keywords='kwargs', defaults=(VarType.LOD_TENSOR, None, None, None, None, None, None, None, False, False))
2-
paddle.fluid.Variable.astype ArgSpec(args=['self', 'dtype'], varargs=None, keywords=None, defaults=None)
3-
paddle.fluid.Variable.set_desc ArgSpec(args=['self', 'input'], varargs=None, keywords=None, defaults=None)
4-
paddle.fluid.Variable.set_error_clip ArgSpec(args=['self', 'error_clip'], varargs=None, keywords=None, defaults=None)
5-
paddle.fluid.Variable.to_string ArgSpec(args=['self', 'throw_on_error', 'with_details'], varargs=None, keywords=None, defaults=(False,))
61
paddle.fluid.Program.__init__ ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
72
paddle.fluid.Program.block ArgSpec(args=['self', 'index'], varargs=None, keywords=None, defaults=None)
83
paddle.fluid.Program.clone ArgSpec(args=['self', 'for_test'], varargs=None, keywords=None, defaults=(False,))
@@ -33,17 +28,14 @@ paddle.fluid.Operator.set_attr ArgSpec(args=['self', 'name', 'val'], varargs=Non
3328
paddle.fluid.Operator.to_string ArgSpec(args=['self', 'throw_on_error'], varargs=None, keywords=None, defaults=None)
3429
paddle.fluid.Parameter.__init__ ArgSpec(args=['self', 'block', 'shape', 'dtype'], varargs=None, keywords='kwargs', defaults=None)
3530
paddle.fluid.Parameter.astype ArgSpec(args=['self', 'dtype'], varargs=None, keywords=None, defaults=None)
36-
paddle.fluid.Parameter.set_desc ArgSpec(args=['self', 'input'], varargs=None, keywords=None, defaults=None)
37-
paddle.fluid.Parameter.set_error_clip ArgSpec(args=['self', 'error_clip'], varargs=None, keywords=None, defaults=None)
3831
paddle.fluid.Parameter.to_string ArgSpec(args=['self', 'throw_on_error', 'with_details'], varargs=None, keywords=None, defaults=(False,))
3932
paddle.fluid.default_startup_program ArgSpec(args=[], varargs=None, keywords=None, defaults=None)
4033
paddle.fluid.default_main_program ArgSpec(args=[], varargs=None, keywords=None, defaults=None)
4134
paddle.fluid.program_guard ArgSpec(args=[], varargs='args', keywords='kwds', defaults=None)
4235
paddle.fluid.get_var ArgSpec(args=['name', 'program'], varargs=None, keywords=None, defaults=(None,))
4336
paddle.fluid.Executor.__init__ ArgSpec(args=['self', 'place'], varargs=None, keywords=None, defaults=None)
4437
paddle.fluid.Executor.as_lodtensor ArgSpec(args=['self', 'data'], varargs=None, keywords=None, defaults=None)
45-
paddle.fluid.Executor.begin_pass ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
46-
paddle.fluid.Executor.end_pass ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
38+
paddle.fluid.Executor.close ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
4739
paddle.fluid.Executor.run ArgSpec(args=['self', 'program', 'feed', 'fetch_list', 'feed_var_name', 'fetch_var_name', 'scope', 'return_numpy', 'use_program_cache'], varargs=None, keywords=None, defaults=(None, None, None, 'feed', 'fetch', None, True, False))
4840
paddle.fluid.global_scope ArgSpec(args=[], varargs=None, keywords=None, defaults=None)
4941
paddle.fluid.scope_guard ArgSpec(args=[], varargs='args', keywords='kwds', defaults=None)
@@ -207,31 +199,23 @@ paddle.fluid.layers.argsort ArgSpec(args=['input', 'axis', 'name'], varargs=None
207199
paddle.fluid.layers.ones ArgSpec(args=['shape', 'dtype', 'force_cpu'], varargs=None, keywords=None, defaults=(False,))
208200
paddle.fluid.layers.zeros ArgSpec(args=['shape', 'dtype', 'force_cpu'], varargs=None, keywords=None, defaults=(False,))
209201
paddle.fluid.layers.reverse ArgSpec(args=['x', 'axis'], varargs=None, keywords=None, defaults=None)
210-
paddle.fluid.layers.split_lod_tensor ArgSpec(args=['input', 'mask', 'level'], varargs=None, keywords=None, defaults=(0,))
211-
paddle.fluid.layers.merge_lod_tensor ArgSpec(args=['in_true', 'in_false', 'x', 'mask', 'level'], varargs=None, keywords=None, defaults=(0,))
212202
paddle.fluid.layers.While.__init__ ArgSpec(args=['self', 'cond', 'name'], varargs=None, keywords=None, defaults=(None,))
213203
paddle.fluid.layers.While.block ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
214204
paddle.fluid.layers.While.complete ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
215205
paddle.fluid.layers.Switch.__init__ ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=(None,))
216206
paddle.fluid.layers.Switch.case ArgSpec(args=['self', 'condition'], varargs=None, keywords=None, defaults=None)
217207
paddle.fluid.layers.Switch.default ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
218-
paddle.fluid.layers.lod_rank_table ArgSpec(args=['x', 'level'], varargs=None, keywords=None, defaults=(0,))
219-
paddle.fluid.layers.max_sequence_len ArgSpec(args=['rank_table'], varargs=None, keywords=None, defaults=None)
220-
paddle.fluid.layers.lod_tensor_to_array ArgSpec(args=['x', 'table'], varargs=None, keywords=None, defaults=None)
221-
paddle.fluid.layers.array_to_lod_tensor ArgSpec(args=['x', 'table'], varargs=None, keywords=None, defaults=None)
222208
paddle.fluid.layers.increment ArgSpec(args=['x', 'value', 'in_place'], varargs=None, keywords=None, defaults=(1.0, True))
223209
paddle.fluid.layers.array_write ArgSpec(args=['x', 'i', 'array'], varargs=None, keywords=None, defaults=(None,))
224210
paddle.fluid.layers.create_array ArgSpec(args=['dtype'], varargs=None, keywords=None, defaults=None)
225211
paddle.fluid.layers.less_than ArgSpec(args=['x', 'y', 'force_cpu', 'cond'], varargs=None, keywords='ignored', defaults=(None, None))
226212
paddle.fluid.layers.equal ArgSpec(args=['x', 'y', 'cond'], varargs=None, keywords='ignored', defaults=(None,))
227213
paddle.fluid.layers.array_read ArgSpec(args=['array', 'i'], varargs=None, keywords=None, defaults=None)
228-
paddle.fluid.layers.shrink_memory ArgSpec(args=['x', 'i', 'table'], varargs=None, keywords=None, defaults=None)
229214
paddle.fluid.layers.array_length ArgSpec(args=['array'], varargs=None, keywords=None, defaults=None)
230215
paddle.fluid.layers.IfElse.__init__ ArgSpec(args=['self', 'cond', 'name'], varargs=None, keywords=None, defaults=(None,))
231216
paddle.fluid.layers.IfElse.false_block ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
232217
paddle.fluid.layers.IfElse.input ArgSpec(args=['self', 'x'], varargs=None, keywords=None, defaults=None)
233218
paddle.fluid.layers.IfElse.output ArgSpec(args=['self'], varargs='outs', keywords=None, defaults=None)
234-
paddle.fluid.layers.IfElse.parent_block ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
235219
paddle.fluid.layers.IfElse.true_block ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
236220
paddle.fluid.layers.DynamicRNN.__init__ ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=(None,))
237221
paddle.fluid.layers.DynamicRNN.block ArgSpec(args=[], varargs='args', keywords='kwds', defaults=None)
@@ -240,9 +224,6 @@ paddle.fluid.layers.DynamicRNN.output ArgSpec(args=['self'], varargs='outputs',
240224
paddle.fluid.layers.DynamicRNN.static_input ArgSpec(args=['self', 'x'], varargs=None, keywords=None, defaults=None)
241225
paddle.fluid.layers.DynamicRNN.step_input ArgSpec(args=['self', 'x'], varargs=None, keywords=None, defaults=None)
242226
paddle.fluid.layers.DynamicRNN.update_memory ArgSpec(args=['self', 'ex_mem', 'new_mem'], varargs=None, keywords=None, defaults=None)
243-
paddle.fluid.layers.ConditionalBlock.__init__ ArgSpec(args=['self', 'inputs', 'is_scalar_condition', 'name'], varargs=None, keywords=None, defaults=(False, None))
244-
paddle.fluid.layers.ConditionalBlock.block ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
245-
paddle.fluid.layers.ConditionalBlock.complete ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
246227
paddle.fluid.layers.StaticRNN.__init__ ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=(None,))
247228
paddle.fluid.layers.StaticRNN.complete_op ArgSpec(args=['self'], varargs=None, keywords=None, defaults=None)
248229
paddle.fluid.layers.StaticRNN.memory ArgSpec(args=['self', 'init', 'shape', 'batch_ref', 'init_value', 'init_batch_dim_idx', 'ref_batch_dim_idx'], varargs=None, keywords=None, defaults=(None, None, None, 0.0, 0, 1))

paddle/fluid/framework/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ endif()
2222

2323
cc_test(eigen_test SRCS eigen_test.cc DEPS tensor)
2424

25-
nv_test(mixed_vector_test SRCS mixed_vector_test.cu DEPS place memory device_context tensor)
25+
if(WITH_GPU)
26+
nv_test(mixed_vector_test SRCS mixed_vector_test.cc mixed_vector_test.cu DEPS place memory device_context tensor)
27+
else()
28+
cc_test(mixed_vector_test SRCS mixed_vector_test.cc DEPS place memory device_context tensor)
29+
endif()
30+
2631
cc_library(lod_tensor SRCS lod_tensor.cc DEPS ddim place tensor framework_proto recordio)
2732
cc_test(lod_tensor_test SRCS lod_tensor_test.cc DEPS lod_tensor memory)
2833
nv_test(lod_tensor_gpu_test SRCS lod_tensor_test.cu DEPS lod_tensor)

paddle/fluid/framework/details/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
cc_library(var_handle SRCS var_handle.cc DEPS place framework_proto)
1+
cc_library(var_handle SRCS var_handle.cc DEPS place framework_proto node)
22
cc_library(op_handle_base SRCS op_handle_base.cc DEPS var_handle device_context lod_tensor)
33
cc_library(scale_loss_grad_op_handle SRCS scale_loss_grad_op_handle.cc DEPS op_handle_base scope lod_tensor ddim memory)
44
cc_library(fetch_op_handle SRCS fetch_op_handle.cc DEPS op_handle_base scope lod_tensor ddim memory)
55
cc_library(computation_op_handle SRCS computation_op_handle.cc DEPS framework_proto scope place operator op_registry)
66
cc_library(rpc_op_handle SRCS rpc_op_handle.cc DEPS framework_proto scope place operator op_registry)
77

8-
cc_library(ssa_graph_builder SRCS ssa_graph_builder.cc DEPS graph)
8+
cc_library(ssa_graph_builder SRCS ssa_graph_builder.cc DEPS graph graph_helper)
99
cc_library(ssa_graph_printer SRCS ssa_graph_printer.cc DEPS ssa_graph_builder)
1010
cc_library(ssa_graph_checker SRCS ssa_graph_checker.cc DEPS ssa_graph_builder)
1111

0 commit comments

Comments
 (0)