1. 24 7月, 2017 1 次提交
    • Y
      Remove ScopePtr and OperatorPtr · c2543f5b
      Yu Yang 提交于
      * ScopePtr means pointer of scope, but it can be shared or uniqued.
      Change it to std::shared_ptr<Scope> to make code better to read.
      c2543f5b
  2. 17 7月, 2017 1 次提交
  3. 15 7月, 2017 1 次提交
  4. 14 7月, 2017 2 次提交
    • Q
      Optimize ptr (#2851) · 58f3de95
      Qiao Longfei 提交于
      * use OperatorPtr = std::shared_ptr<OperatorBase>;
      * use ScopePtr = std::share_ptr<Scope>;
      58f3de95
    • Y
      Let OpProto support multiple and temporary (#2860) · 2462d0c5
      Yu Yang 提交于
      * Let OpProto support multiple and temporary
      
      * Each input/output of Paddle's Op could be a list. Add multiple mark to
        OpProto. Also add a `input_format`/`output_format` attribute if that
        Op has multiple input or output. The format of that attribute please
        reference the comments in `op_proto.proto`
      * Add temporary mark, because some output of an Op is not used by user
        but used by other op for faster computation. Explicitly mark which
        output is temporary could let future memory/computation optimization.
      * Add generated field to AttrProto.
      
      * Add `AddInputs`/`AddOutputs` function
      
      * It is more readable to invoke `AddInputs` not
        `AddInput(multiple=true)`.
      2462d0c5
  5. 13 7月, 2017 2 次提交
    • Y
      Follow comments · 79b70c2d
      Yu Yang 提交于
      * Convert `op` --> `operators`
      * Remove AddType in OpProtoMaker, because type is part of registry.
      * Rename CPU_OR_GPU --> DEVICE_TYPE in registry macro.
      79b70c2d
    • Y
      Add a sample op, `add_op` · a0aaafe9
      Yu Yang 提交于
      * Refine register methods, make Op can get rid of whole-archieve
      * `USE_OP` before a op is used.
      * Add unittest for add_op.
      a0aaafe9
  6. 12 7月, 2017 3 次提交
    • Q
      test OpKernel (#2820) · be441f7d
      Qiao Longfei 提交于
      Add unit test for OpKernel
      be441f7d
    • Y
      Add OperatorWithKernel class · 0ff81920
      Yu Yang 提交于
      * User can register OpKernel to its Ops. The OpKernelMap saved in
        OperatorWithKernel. Each Op which inherits OperatorWithKernel will
        use `OpKernel::Compute` instead of Run.
      0ff81920
    • Q
      add operator base (#2725) · a2e5f652
      Qiao Longfei 提交于
      Add OperatorBase.
      
      issue: https://github.com/PaddlePaddle/Paddle/issues/2790
      
      Paddle design the Operator with Kernel. OperatorBase has no type and device information when create, One operator can have multiple kernels, Operator will choose a kernel to run according to context. The kernel should be bind to Operator before or during Operator running.
      a2e5f652
  7. 11 7月, 2017 2 次提交
    • Y
      Move static variable defined in .cc (#2782) · 267f9a2c
      Yu Yang 提交于
      * Move static variable defined in .cc
      
      We cannot define static variable in .h, because it will be multi-defined
      errors.
      
      Also fix some cpp syntax, like:
      
      * Prefer to use algorithm not manually for-loop, to make code more
        readable.
      * Remove unused `()`.
      * Enforce take a bool. It is no need `xxx==true`.
      * Use range-based for-loop iterator from op_desc.attrs
      
      * Fix a protential static variable init order error
      267f9a2c
    • D
      "move opContext to DeviceContext" · bc021d77
      dongzhihong 提交于
      bc021d77
  8. 07 7月, 2017 1 次提交
    • F
      [draft] add registry for Op, OpProto and OpAttrChecker (#2739) · 1d2ef1db
      fengjiayi 提交于
      * init op_registry.h
      
      * dev op_registry.h
      
      * add 'attr_checker.h', which is a draft of op attribute checker.
      
      * rename some macro parameters
      
      * 1. Use `Attribute` and `AttributeMap` instead of `OpDesc`. `AttributeMap` is a unordered_map of <string, Attribute>, and `Attribute` is a boost::variant object to hold multiple types of attribute value.
      2. Use `PADDLE_ENFORCE` to print checkers' fail message.
      3. Abstract default value operations to a new function: `DefaultChecker`.
      
      * rename DefaultChecker to DefaultValueSetter
      
      ZZ
      
      * Finish op_registry
      
      1. Complete the development of interfaces between OpRegistry and
      Protobuf.
      2. Add unit test for op_registry.h
      
      * Add demo and test of custome checker
      
      * fix merge conflict
      1d2ef1db