1. 07 Feb, 2020 1 commit
    • [REFACTOR][PY][API-Change] Polish tvm.runtime, tvm.runtime.module API update (#4837) · e0122c0e
      * [REFACTOR][PY-API] Polish tvm.runtime, tvm.runtime.module API update
      
      This PR updates the tvm.runtime to use the new FFI style.
      
      - Remove top-level tvm.module to avoid confusion between runtime.Module and IRModule
      - API changes wrt to runtime.Module
        - tvm.module.load -> tvm.runtime.load_module
        - tvm.module.enabled -> tvm.runtime.enabled
        - tvm.module.system_lib -> tvm.runtime.system_lib
      - Remove dep on api_internal from runtime.
      
      * Update module.load in the latest API
      Tianqi Chen committed
  2. 05 Feb, 2020 2 commits
    • [REFACTOR][PY] Establish tvm.runtime (#4818) · fc7dd6d7
      * [REFACTOR][PY] Establish tvm.runtime
      
      This PR establishes the tvm.runtime namespace that contains the core runtime data structures.
      The top-level API are kept inact for now via re-exporting.
      
      We will followup later to cleanup some of the top-level APIs.
      
      * Fix ndarray name
      Tianqi Chen committed
    • [REFACTOR][PY] tvm._ffi (#4813) · f9b46c43
      * [REFACTOR][PY] tvm._ffi
      
      - Remove from __future__ import absolute_import in the related files as they are no longer needed if the code only runs in python3
      - Remove reverse dependency of _ctypes _cython to object_generic.
      - function.py -> packed_func.py
      - Function -> PackedFunc
      - all registry related logics goes to tvm._ffi.registry
      - Use absolute references for FFI related calls.
        - tvm._ffi.register_object
        - tvm._ffi.register_func
        - tvm._ffi.get_global_func
      
      * Move get global func to the ffi side
      Tianqi Chen committed
  3. 16 Jan, 2020 1 commit
  4. 11 Jan, 2020 1 commit
  5. 30 Dec, 2019 1 commit
    • [REFACTOR][RUNTIME] Update NDArray use the Unified Object System (#4581) · 55bd786f
      * [REFACTOR][RUNTIME] Move NDArray to Object System.
      
      Previously NDArray has its own object reference counting mechanism.
      This PR migrates NDArray to the unified object protocol.
      
      The calling convention of NDArray remained intact.
      That means NDArray still has its own type_code and
      its handle is still DLTensor compatible.
      
      In order to do so, this PR added a few minimum runtime type
      detection in TVMArgValue and RetValue only when the corresponding
      type is a base type(ObjectRef) that could also refer to NDArray.
      
      This means that even if we return a base reference object ObjectRef
      which refers to the NDArray. The type_code will still be translated
      correctly as kNDArrayContainer.
      If we assign a non-base type(say Expr) that we know is not compatible
      with NDArray during compile time, no runtime type detection will be performed.
      
      This PR also adopts the object protocol for NDArray sub-classing and
      removed the legacy NDArray subclass protocol.
      Examples in apps/extension are now updated to reflect that.
      
      Making NDArray as an Object brings all the benefits of the object system.
      For example, we can now use the Array container to store NDArrays.
      
      * Address review comments
      Tianqi Chen committed
  6. 20 Dec, 2019 1 commit
  7. 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
  8. 16 Oct, 2019 1 commit
    • [RUNTIME] Refactor object python FFI to new protocol. (#4128) · 02c1e117
      * [RUNTIME] Refactor object python FFI to new protocol.
      
      This is a pre-req to bring the Node system under object protocol.
      Most of the code reflects the current code in the Node system.
      
      - Use new instead of init so subclass can define their own constructors
      - Allow register via name, besides type idnex
      - Introduce necessary runtime C API functions
      - Refactored Tensor and Datatype to directly use constructor.
      
      * address review comments
      Tianqi Chen committed
  9. 16 Jul, 2019 1 commit
  10. 02 May, 2019 1 commit
  11. 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
  12. 19 Mar, 2019 1 commit
  13. 21 Feb, 2019 1 commit
  14. 06 Oct, 2018 1 commit
  15. 23 Aug, 2018 2 commits
  16. 11 Aug, 2018 1 commit
  17. 18 Jul, 2018 1 commit
  18. 12 Jul, 2018 1 commit
  19. 14 Apr, 2018 1 commit
  20. 25 Mar, 2018 1 commit
  21. 10 Mar, 2018 1 commit
  22. 12 Sep, 2017 1 commit
  23. 10 Jul, 2017 1 commit
  24. 06 Jul, 2017 1 commit
  25. 15 Jun, 2017 1 commit
  26. 31 May, 2017 1 commit
  27. 25 May, 2017 1 commit
  28. 21 May, 2017 1 commit
  29. 20 May, 2017 1 commit
  30. 12 May, 2017 1 commit
  31. 02 May, 2017 1 commit
  32. 30 Apr, 2017 1 commit
  33. 27 Apr, 2017 1 commit