1. 15 Apr, 2020 1 commit
    • [TIR] Remove ProducerConsumer and AllocateNode::new_expr (#5333) · e8138f7d
      * [TIR] Remove ProducerConsumer and AllocateNode::new_expr
      
      This PR removes two legacy IR parts in TIR that are deprecated.
      
      ProducerConsumer node only serves as a hint markup and may no longer be
      informative after extensive transformations in the pass.
      If necessary, we can add related info via AttrStmt.
      
      The new_expr field in the AllocateNode is deprecated since it can just be
      replaced by a LetStmt.
      
      - Remove dependencies of passes on ProducerConsumer.
      - Remove ProducerConsumer from the IR.
      - Remove the deprecated fields (new_expr, free_function) from AllocateNode.
      
      * Fix additional testcases
      Tianqi Chen committed
  2. 07 Apr, 2020 1 commit
    • [RUNTIME] Implement TVMDSOOp(TensorFlow custom op) for TVM runtime (#4459) · 53a4ad35
      * Add implementation of TVMDSOOp
      
      * feat: Update cmake script to work with c++11 and in-repo build
      
      * feat: Use libtvm as oplib dependency
      
      * fix: Add missing link dependency to libtvm
      
      * feat: Update tf tvmdso op by review comments
      
      * fix: Update with pr comments
      
      * fix: Fix lint
      
      * feat: Add test script and fix gpu shape
      
      * feat: Add test script and fix gpu shape
      
      * fix: Conditional build tftvm op for gpu
      
      * fix: Conditional build tftvm op for gpu
      
      * fix: Fix pylint of tf_op module.py
      
      * fix: Fix pylint of tf_op module.py
      
      * feat: Conditional enable gpu test for tftvm op
      
      * feat: Conditional enable gpu test for tftvm op
      
      * feat: Add tf_tvmdsoop test script as an app test
      
      * fix: Fix gpu/cpu enabled check on tvm in test script
      
      * fix: Make tf tvmdso op test script runnable with pytest
      
      * remove unused test script test_tfop_module.py
      
      * fix: Remove pushd & popd in tfdsoop test script
      
      * fix: Upgrade tftvmop use python3 to find TensorFlow
      
      * fix: Upgrade tftvmop use python3 to find TensorFlow
      
      * fix: Change target_link_options to target_link_libraries
      
      * fix: Add tftvmop build script's c++ option
      
      * fix: Add tvm library path to tf op test library path
      
      * fix: Debug ci build for tftvm dso op
      
      * fix: Fix cmake error and skip tfop test
      
      * fix: Fix typo and indentation issues
      
      * feat: Use TF list input op def
      
      * fix: Fix style and unexpected changes
      
      Co-authored-by: baoxinqi <baoxinqi@4paradigm.com>
      Co-authored-by: Chen Dihao <chendihao@4paradigm.com>
      Co-authored-by: wrongtest <wrongtest@4paradigm.com>
      tobe committed
  3. 05 Apr, 2020 1 commit
  4. 21 Jan, 2020 1 commit
  5. 19 Jan, 2020 2 commits
    • [REFACTOR][CODEGEN] codegen->target, build_module->driver (#4742) · 33b0831c
      This PR moves the codegen related code into the target folder,
      as they are target specific functionalities.
      
      We also adopt the term "compiler driver" in common compiler infra
      such as rust, GHC and clang.
      As a result, build_module is moved into the driver folder.
      Tianqi Chen committed
    • [REFACTOR] Establish tir (#4740) · cf59b206
      TIR is the new namespace for low-level IR
      for tensor-level optimizations and loop transformations.
      
      This PR establishes the namespace and files.
      
      - lowered_func.h,buffer.h,data_layout.h -> tir/buffer.h,tir/data_layout.h,tir/lowered_func.h
      - ir.h -> tir/expr.h, tir/stmt.h
      - ir_functor_ext.h -> tir/expr_functor.h, tir/stmt_functor.h
      Tianqi Chen committed
  6. 16 Jan, 2020 1 commit
    • [REFACTOR] top - namespace for Tensor Operation DSL (#4727) · b8261426
      * [REFACTOR] introduce top - Tensor Operation DSL.
      
      Historically we put Tensor, Schedule and compute under the root tvm namespace.
      This is no longer a good idea as the project's scope grows larger
      than the tensor operation DSL.
      
      This PR introduces top -- a namespace for tensor operational
      DSL concepts such as schedule, tensor, compute.
      We moved the related files to the new top subfolder.
      
      * Move relevant files into include/tvm/top and src/top
      Tianqi Chen committed
  7. 15 Jan, 2020 1 commit
    • [REFACTOR][IR] Unify IntImm and UIntImm (#4706) · ce807fe8
      * [REFACTOR][IR] Unify IntImm and UIntImm
      
      This PR unifies UIntImm and IntImm to simplify the codebase.
      Unsigned integer constants will also be stored as IntImm.
      
      For uint constant that does not fit into int64(rare case), we introduced
      an intrinsic tvm_big_uint_imm to construct such intgers by its
      lower and higher 32bits.
      
      * [REFACTOR][IR] Remove UIntImm to use IntImm
      
      * rename big->large
      Tianqi Chen committed
  8. 09 Jan, 2020 1 commit
    • [REFACTOR][IR] tvm::Expr -> PrimExpr(Primitive Expr) (#4669) · d6a23cf5
      * [REFACTOR][IR] tvm::Expr -> PrimExpr(Primitive Expr)
      
      As part of unified IR, we will need to unify relay::Expr
      and the current tvm::Expr under the same base type.
      
      From the techinical point of view. tvm::Expr is a "primitive"
      expression that only contains POD types and handles and does
      not do life-cycle management.
      
      This PR renames Expr->PrimExpr to clarify that.
      We will send a subsequent PR to introduce the base expr class.
      
      * Remove legacy VarExpr and ExprHash/Equal
      Tianqi Chen committed
  9. 08 Jan, 2020 1 commit
    • [REFACTOR][IR] Add Node suffix to low-level IR nodes (#4649) · f4c5f93b
      * [REFACTOR][IR] Variable -> VarNode
      
      * [REFACTOR][IR] Add/Sub/Mul/Div -> AddNode/SubNode etc.
      
      * [REFACTOR][IR] Min/Max/FloorDiv/FloorMod -> MinNode/MaxNode etc.
      
      * [REFACTOR][IR] EQ/NE/LT/LE/GT/GE/Select -> EQNode/NENode etc.
      
      * [REFACTOR][IR] Add Node suffix to Select/Call/Load/Ramp/Shuffle/Let
      
      * [REFACTOR][IR] Add node suffix to IntImm/UIntImm/FloatImm/StringImm
      
      * [REFACTOR][IR] Add Node suffix to Any, AttrStmt, AssertStmt
      
      * [REFACTOR][IR] Add Node suffix to Store/Provide/Allocate/Free
      
      * [REFACTOR][IR] Add Node suffix to ProducerConsumer
      
      * Fix lint
      
      * style updates, test fixes
      Tianqi Chen committed
  10. 06 Jan, 2020 1 commit
    • [REFACTOR][IR] Introduce SeqStmt to replace ir::Block (#4627) · 3595cbe0
      * [REFACTOR][IR] Introduce SeqStmt to replace Block
      
      ir::Block was used to represent a sequence of Stmts in the original low-level IR.
      The nested ir::Block structure is not really friendly for recursive visits,
      especially when the statements are unrolled.
      
      This PR introduce a SeqStmt that directly stores a sequence of statements in an Array container.
      The new SeqStmt will be used as a replacement of the original Block structure.
      
      * [REFACTOR] Migrate use of Block to SeqStmt.
      
      * [REFACTOR] Remove Block
      
      * Add more comments per yizhi's comment
      Tianqi Chen committed
  11. 05 Jan, 2020 1 commit
  12. 04 Jan, 2020 1 commit
    • [REFACTOR] TVM_REGISTER_API -> TVM_REGISTER_GLOBAL (#4621) · 81523604
      TVM_REGSISTER_API is an alias of TVM_REGISTER_GLOBAL.
      In the spirit of simplify redirections, this PR removes
      the original TVM_REGISTER_API macro and directly use TVM_REGISTER_GLOBAL.
      
      This type of refactor will also simplify the IDE navigation tools
      such as FFI navigator to provide better code reading experiences.
      
      Move EnvFunc's definition to node.
      Tianqi Chen committed
  13. 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
  14. 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
  15. 24 Nov, 2019 1 commit
  16. 27 Oct, 2019 1 commit
  17. 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
  18. 17 Oct, 2019 1 commit
    • [PATCH] Fix undefined __floatdihf in libtvmruntime.so on aarch64. (#4119) · cf046972
      Arm architecture provides optional FP16 floating point support in two alternative formats, IEEE and an an alternative Arm format.
      
      The ACLE (Arm C Language Extension) defined preprocessor symbol __ARM_FP16_FORMAT_IEEE can be used to distinguish between implementations providing IEEE and the Arm alternative format, but cannot, on its own, be used to determined if FP16 HW support is actually present.
      
      Testing this preprocessor symbol can lead to undefined __floatdihf at runtime on an aarch64 target where no FP16 HW is present.
      
      The relevant preprocessor symbol to determine whether FP16 HW support is present in the target is __ARM_FEATURE_FP16_SCALAR_ARITHMETIC, this symbol implies  __ARM_FP16_FORMAT_IEEE.
      
      The relevant preprocessor symbols are defined by the ACLE standard, section 5.5.21 16-bit floating-point data processing operations, https://static.docs.arm.com/101028/0008/Q2-ACLE_2019Q2_release-0008.pdf
      lhutton1 committed
  19. 08 Oct, 2019 1 commit
  20. 27 Sep, 2019 1 commit
  21. 21 Sep, 2019 1 commit
  22. 15 Sep, 2019 1 commit
  23. 12 Sep, 2019 1 commit
  24. 03 Sep, 2019 1 commit
  25. 04 Jun, 2019 1 commit
  26. 21 May, 2019 1 commit
  27. 29 Apr, 2019 1 commit
    • [Relay][TOPI] Gluncv SSD support on the GPU (#2784) · a706ad16
      * ssd gluoncv gpu op updated
      
      * ssd gluoncv gpu op updated
      
      * tutorials and testes modified
      
      * tutorials and testes modified
      
      * fix lint
      
      * fix lint
      
      * address comment
      
      * multibox bug fixed
      
      * space line added
      
      * use less threads per block
      
      * use less threads per block
      
      * less threads per block for get valid count
      
      * less threads per block for get valid count
      
      * merge with master
      
      * Revert "less threads per block for get valid count"
      
      This reverts commit 08896cfccc34b0b2a1646d01d01ea4cad73941c4.
      
      * Revert "less threads per block for get valid count"
      
      This reverts commit 08896cfccc34b0b2a1646d01d01ea4cad73941c4.
      
      * typo fixed
      
      * elem length made to a variable
      
      * fix lint error
      
      * fix lint error
      
      * lint fixed
      
      * bug fixed
      
      * bug fixed
      
      * lint fixed
      
      * error fixed
      
      * error fixed
      
      * test ci
      
      * test ci
      
      * seperate argsort to be an independent op
      
      * seperate argsort to be an independent op
      
      * fix lint
      
      * fix lint
      
      * remove unsupported models
      
      * typo fixed
      
      * argsort added to realy
      
      * solve conflicts with master
      
      * fix lint
      
      * fix lint
      
      * test push
      
      * Revert "test push"
      
      This reverts commit 6db00883fab6cc06bddf564c926bb27c874397d8.
      
      * fix lint error
      
      * fix more lint
      
      * cpu test_sort udpated
      
      * debug ci
      
      * nms fixed
      
      * expose argsort to relay frontend
      
      * test ci
      
      * fix lint
      
      * sort register error fixed
      
      * fix nnvm
      
      * nms type fixed
      
      * adaptive pooling added to relay
      
      * Revert "adaptive pooling added to relay"
      
      This reverts commit 1119f1f2c055753e0cc5611627597749134c5c8c.
      
      * fix lint
      
      * expose argsort op
      
      * fix lint
      
      * fix lint
      
      * fix lint
      
      * sort test updated
      
      * sort bug fixed
      
      * nnvm error fixed
      
      * fix argsort default data type returned to be float insteaf of int
      
      * fix lint
      
      * fix lint
      
      * test fixed
      
      * fix valid count
      
      * fix titanx bug
      
      * tutorial add both targets
      
      * titanx error fixed
      
      * try to fix CI old gpu error
      
      * try to solve CI GPU error
      
      * get_valid_count added
      
      * reverse get_valid_count
      
      * get valid count optimized
      
      * address comments
      
      * fix ci error
      
      * remove unessesary block sync
      
      * add back one sync
      
      * address comments
      
      * address more comments
      
      * more comments
      
      * move sort to be indepent algorithm
      
      * typo fixed
      
      * more typos
      
      * comments addressed
      
      * doc updated
      
      * fix pylint
      
      * address final comments
      
      * apache license added
      Leyuan Wang committed
  28. 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
  29. 26 Mar, 2019 1 commit
  30. 26 Feb, 2019 1 commit
  31. 13 Feb, 2019 1 commit
    • [Hybrid script] Backend support (#2477) · c53dd102
      * a preliminary version is done?
      
      * we no longer need the redundant hybrid/api.py
      
      * support assert stmt
      
      * cast supported
      
      * intrin -> runtime; util is mainly in charge of compilation time
      
      * assert statement
      
      * fix python lint
      
      * fix cpp lint
      
      * on the way to module
      
      * rollback .cc
      
      * fix typo, no direct expose then
      
      * @vinx13 ceil is added i guess?
      
      * wip...
      
      * temp commit
      
      * fix import
      
      * i preliminary version is done?
      
      * on the way to build hybrid module
      
      * nearly fixed...
      
      * dumped python are equiv as original python
      
      * on the way to bootstrap
      
      * cpu bootstrap done
      
      * bootstrap!
      
      * fix lint
      
      * fix doc
      
      * resolve some review concerns
      
      * support load/save
      
      * fix lint
      
      * thanks to xqdan fixed my typo
      
      * fix build, make dump non-optional
      
      * add vthread
      
      * jesus why i added this
      Jian Weng committed
  32. 05 Jan, 2019 1 commit
  33. 06 Dec, 2018 1 commit
  34. 15 Nov, 2018 1 commit
  35. 10 Nov, 2018 1 commit
  36. 31 Oct, 2018 1 commit
  37. 23 Aug, 2018 1 commit
  38. 06 Jul, 2018 1 commit
  39. 25 Jun, 2018 1 commit