1. 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
  2. 08 Apr, 2019 1 commit
    • [HEADER] Add Header to Comply with ASF Release Policy (#2982) · cffb4fba
      * [HEADER] ASF header dir=include
      
      * [HEADER] ASF Header dir=src
      
      * [HEADER] ASF Header -dir=python
      
      * [HEADER] ASF header dir=topi
      
      * [HEADER] ASF Header dir=nnvm
      
      * [HEADER] ASF Header -dir=tutorials
      
      * [HEADER] ASF Header dir=tests
      
      * [HEADER] ASF Header -dir=docker
      
      * fix whitespace
      
      * [HEADER] ASF Header -dir=jvm
      
      * [HEADER] ASF Header -dir=web
      
      * [HEADER] ASF Header --dir=apps
      
      * [HEADER] ASF Header --dir=vta
      
      * [HEADER] ASF Header -dir=go
      
      * temp
      
      * [HEADER] ASF Header --dir=rust
      
      * [HEADER] Add ASF Header --dir=cmake
      
      * [HEADER] ASF Header --dir=docs
      
      * [HEADER] Header for Jenkinsfile
      
      * [HEADER] ASF Header to toml and md
      
      * [HEADER] ASF Header to gradle
      
      * Finalize rat cleanup
      
      * Fix permission
      
      * Fix java test
      
      * temporary remove nnvm onnx test
      Tianqi Chen committed
  3. 23 Aug, 2018 1 commit
  4. 13 Oct, 2017 1 commit
    • Add same_as to NodeBase (#550) · fde9b570
      * Add same_as to NodeBase
      
      1. Most class inherited from NodeBase(Schedule, Stage, etc) still have
      the convenience of using '==' for object identity. And this is the right
      behavior for non-Expr classes.
      2. subclasses of ExprOp now create EQ expression when '==' is used.
      
      `__nonzero__` and `__bool__` in EQ and NE is a comprise that in some cases
      object identity semantics is still useful, like in unit test. For instance:
      ````
      assert a == b
      ````
      
      "a == b" will create EQ expression, assert then calls `__nonzero__` of the
      result expression. `Expr.__nonzero__` throws exception since it prohibits
      evaluating IR expression.
      
      More complex case like:
      ````
      assert a in b # b is dict
      ````
      
      it will call `__eq__` on a and all keys of b, then `__bool__` on the result
      expression. This could not easily be done by same_as.
      
      * Retain __hash__ from NodeBase in Python3
      Wei Chen committed
  5. 06 Jul, 2017 1 commit
  6. 08 May, 2017 1 commit
  7. 27 Apr, 2017 1 commit
  8. 26 Apr, 2017 1 commit
  9. 22 Apr, 2017 1 commit
  10. 21 Apr, 2017 1 commit
  11. 16 Apr, 2017 1 commit
  12. 15 Apr, 2017 1 commit
  13. 29 Jan, 2017 1 commit