1. 12 7月, 2017 4 次提交
    • F
      Add Tensor::CopyFrom and Tensor::mutable_data(Place place) · 69d99d48
      fengjiayi 提交于
      1. Add `Tensor::CopyFrom`. Current version can only support CPU memory
      copy. The support of GPU will be provided later by `paddle::memory`.
      The current implementation of `Tensor::CopyFrom` is a little inefficient:
      Every time `CopyFrom` is called, tensor will re-allocate its memory. However, if
      we try to check and reuse `placeholder_`, we have to provide a template
      parameter for `CopyFrom` to indicate the data type. It seems strange for
      a simple copy function.
      
      2. Add `Tensor::mutable_data(Place place)`, which directly use member
      variable `dims_` as its dim parameter. This interface is required by
      `Op::InferShape`.
      69d99d48
    • F
      Remove Dim::contiguous and Dim::contiguous_strides · 2dbe60e4
      fengjiayi 提交于
      Paddle's data block is row-major order, while Dim::contiguous and
      Dim::contiguous_strides are based on column-order. So remove them to
      prevent misuse.
      2dbe60e4
    • F
      fix some syntax problems · 2dccab87
      fengjiayi 提交于
      2dccab87
    • 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
  2. 11 7月, 2017 10 次提交
    • F
      add more test · 0665dc97
      fengjiayi 提交于
      0665dc97
    • F
      Add several interfaces for Tensor class · ca39515e
      fengjiayi 提交于
      1. Add member variable 'DDim dims_' and a getter function 'dims()'.
      'dims' is supposed to hold tensor's shape during Op::InferShape.
      2. Remove 'mutable_data' which use default Place. User must specify a
      explicit Place when call 'mutable_data'.
      3. A PlaceHolder may be shared by more than one tensor, and some of them may be the others' slices. So we add a new member variable 'offset_' for Tensor, which is used to show the byte offset between PlaceHolder::ptr_ and where tensor's data really begins.
      4. Add functions 'ShareDataFrom' and 'Slice' for Tensor.
      
      TODO: Tensor needs a 'CopyFrom' function.
      ca39515e
    • Q
      fix cublas dynload bug · 69d76812
      qijun 提交于
      69d76812
    • 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
    • Y
      Expose paddle.framework by pybind11 (#2793) · 27b196ba
      Yu Yang 提交于
      * Expose paddle.framework by pybind11
      
      * Export paddle.framework.{Scope, Variable} to paddle.v2.framework.core.
      * See python/paddle/v2/framework/tests/test_scope.py for Python usage
      * See paddle/pybind/pybind.cc for C++ bind code.
      
      * add copyright
      27b196ba
    • Y
      Refine CUDA Related libraries · a0466053
      Yu Yang 提交于
      a0466053
    • Y
      Simplelize framework/CMakeLists.txt (#2803) · abff52ab
      Yu Yang 提交于
      * generic.cmake can propogate dependencies through libraries. It is no
        need to specific all dependencies.
      abff52ab
    • D
      "switch to shared_ptr" · b871641a
      dongzhihong 提交于
      b871641a
    • D
      "support net_proto header" · 18e65b0c
      dongzhihong 提交于
      18e65b0c
    • D
      "move opContext to DeviceContext" · bc021d77
      dongzhihong 提交于
      bc021d77
  3. 10 7月, 2017 1 次提交
    • Q
      implement DeviceContext (#2709) · 1038bc46
      QI JUN 提交于
      * add device_context
      
      * add unittest for device_context
      
      * transfer to use function paddle::platform::throw_on_error
      
      * fix cuda build error
      
      * using dynload functions
      
      * follow comments
      1038bc46
  4. 07 7月, 2017 3 次提交
    • W
      fix new remote updater for go pserver · 26d95a6b
      wuyi05 提交于
      26d95a6b
    • 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
    • G
      rm -v · 4daa247d
      gongweibao 提交于
      4daa247d
  5. 06 7月, 2017 4 次提交
    • G
      add -V · b3960554
      gongweibao 提交于
      b3960554
    • Y
      Generate python protobufs for paddle.v2.framework · e2ea1f42
      Yu Yang 提交于
      Python should be able to manipulate Protobuf message because:
      
      1. Python's `create_op_creation_methods` take the `OpProto` array to
         generate all `op_creation_methods` in RunTime.
      
      2. All `op_creation_methods` will create an `OpDesc` and pass it to
         Paddle C++ method `CreateOp` and return the Op handle.
      
      Here is the list of what is added in this commit:
      
      * Add `protobuf_generate_python` if it is not defined.
        * Before cmake 3.4, `protobuf_generate_python` is not defined. Just
          copy the implementation of that function in `protobuf.cmake`
      * Add `py_proto_compile` function in `cmake/generic.cmake`.
        * It follows bazel's API interface.
          * https://github.com/pubref/rules_protobuf#rules
      * Add an empty package named `paddle.v2.framework`, all python code of
        `paddle::framework` will be in that package.
      * Generate protobuf's python module `__init__.py` by `touch` while
        compiling.
      * Change setup.py.in, make `paddle.v2.framework.proto` uses the
        generated protobuf pythons.
      e2ea1f42
    • Y
      Fix CI error on test_LayerGrad.LSTM · 1b366dc2
      Yu Yang 提交于
      * We should not EXPECT_EQ between a float value and a int value.
        Use ASSERT_NEAR instead.
      1b366dc2
    • S
      fix ci · 1264480b
      Superjom 提交于
      1264480b
  6. 05 7月, 2017 11 次提交
  7. 04 7月, 2017 7 次提交