1. 31 Dec, 2019 1 commit
    • [REFACTOR][OBJECT] Consoldiate NodePtr/Ref/Hash/Equal to Object (#4603) · a8c36921
      * [REFACTOR][OBJECT] Consoldiate NodePtr/Ref/Hash/Equal and macros to Object.
      
      Historically, we have classes like NodePtr/Ref/HashEqual.
      After unified object protocol, these names are just alias of the object counterpart.
      Moreover, there are helper macros defined over the places for defining these object.
      
      This PR consoldiate the terminologies into the corresponding ones
      in the Object system so we have a clean and consistent API moving forward.
      
      * Update include/tvm/attrs.h
      
      Co-Authored-By: Wei Chen <ipondering.weic@gmail.com>
      
      * fix compilation
      
      Co-authored-by: Wei Chen <ipondering.weic@gmail.com>
      Tianqi Chen committed
  2. 23 Dec, 2019 1 commit
  3. 22 Dec, 2019 1 commit
    • [REFACTOR][DTYPE] Isolate dtype to runtime (#4560) · 7fa8aab5
      dtype.h -> runtime/data_type.h
      
      Changes:
      - Rename all old reference of tvm::Type to DataType
      - ExprNode.type -> ExprNode.dtype
      - Expr.type() -> Expr.dtype()
      - Change Expr related functions to expr_operator.
        - DataType::min() -> min_value(DataType)
        - DataType::max() -> max_value(DataType)
      - Move type constructor Int, UInt, Float, Handle, Bool into DataType.
        - Int(bits) -> DataType::Int(bits)
        - UInt(bits) -> DataType::UInt(bits)
      Tianqi Chen committed
  4. 16 Dec, 2019 1 commit
  5. 24 Nov, 2019 2 commits
  6. 22 Nov, 2019 1 commit
  7. 18 Nov, 2019 1 commit
  8. 15 Nov, 2019 1 commit
  9. 06 Nov, 2019 1 commit
  10. 04 Nov, 2019 1 commit
  11. 01 Nov, 2019 1 commit
    • [NODE][REFACTOR] Rename IRFunctor->NodeFunctor, use func pointer (#4247) · 9a3d2ec9
      * [NODE][REFACTOR] Rename IRFunctor->NodeFunctor, use function pointer for dispatching.
      
      Previously we used std::function for the functor dispatching.
      It introduces additional overhead and problems during dll destruction(of std::function).
      
      This PR changes the std::function to function pointers.
      This change a bit restrictions around the set_dispatch that we can get around,
      but will improve the general efficiency by reducing one level of indirection in the std::function.
      We also no longer need special marcos to register functions to the Functor.
      Tianqi Chen committed
  12. 28 Oct, 2019 1 commit
  13. 24 Oct, 2019 1 commit
    • [NODE][REFACTOR] Refactor reflection system in node. (#4189) · 78ca6fc8
      * [NODE][REFACTOR] Refactor reflection system in node.
      
      - Removed the old Node, Node is now just an alias of runtime::Object
      - Introduce ReflectionVTable, a new columnar dispatcher to support reflection
        - This allows us to remove vtable from most node objects
        - The VisitAttrs are registered via TVM_RESGITER_NODE_TYPE,
          they are no longer virtual.
      - Consolidated serialization and reflection features into node.
      
      * Explicit type qualification when calling destructor.
      
      * Fix SPIRV, more comments
      Tianqi Chen committed
  14. 21 Oct, 2019 1 commit
    • [REFACTOR][NODE][RUNTIME] Move Node to the new Object protocol. (#4161) · 7895adb2
      * [REFACTOR][NODE][RUNTIME] Move Node to the new Object protocol.
      
      This PR removes the original node system, and make node as a subclass of Object.
      This is a major refactor towards a better unified runtime object system.
      
      List of changes in the refactor:
      
      - We now hide data_ field, use Downcast explicitly to get a sub-class object.
      - Removed the node system FFI in python.
      - Removed the node C API, instead use PackedFunc for list and get attrs.
      - Change relay::Op::set_attr_type_key(attr_key_name) to relay::Op::set_attr_type<AttrType>().
        - This change was necessary because of the new Object registration mechanism.
        - Subsequent changes to the op registrations
        - The change revealed a few previous problems that is now fixed.
      - Patched up a few missing node type registration.
        - Now we will raise an error if we register object that is not registered.
      - The original node.h and container.h are kept in the same location.
      - Calling convention: kObjectHandle now equals the old kNodeHandle, kNodeHandle is removed.
      - IRFunctor now dispatches on ObjectRef.
      - Update to the new type checking API: is_type, derived_from are replaced by IsInstance.
      - Removed .hash member function, instead use C++ convention hasher functors.
      
      * Address review comments
      Tianqi Chen committed
  15. 08 Oct, 2019 1 commit
  16. 08 Sep, 2019 1 commit
  17. 01 Sep, 2019 1 commit
  18. 22 Aug, 2019 1 commit
  19. 02 Aug, 2019 1 commit
  20. 16 Jul, 2019 1 commit
  21. 10 Jul, 2019 1 commit
  22. 02 Jul, 2019 1 commit
  23. 28 Jun, 2019 1 commit
  24. 27 Jun, 2019 2 commits
  25. 17 Jun, 2019 1 commit
  26. 15 Jun, 2019 1 commit
  27. 10 Jun, 2019 2 commits
  28. 07 Jun, 2019 1 commit
  29. 06 Jun, 2019 1 commit
  30. 05 Jun, 2019 1 commit
  31. 28 May, 2019 1 commit
  32. 26 May, 2019 1 commit
  33. 24 May, 2019 1 commit
  34. 22 May, 2019 1 commit
  35. 16 May, 2019 1 commit
  36. 09 May, 2019 1 commit
    • [Relay][Op] Adaptive pooling (#3085) · 147ea3b0
      * Add topi adaptive_pool
      
      * Use adaptive_pool to compute global_pool
      
      * Add relay adaptive pool2d
      
      * Fix lint
      
      * Fix typo
      
      * Minor change
      
      * Change support level to 10
      
      * Add contrib
      
      * Remove global pool schedule
      
      * Add contrib module
      
      * Fix lint
      
      * Update doc
      
      * Update doc
      Yao Wang committed
  37. 01 May, 2019 1 commit