1. 11 Feb, 2020 3 commits
  2. 10 Feb, 2020 1 commit
    • [Relay] Added Merge Composite pass (#4771) · 0dbe70c1
      * [Relay] Added MergeComposite pass
      
      This pass allows for patterns to be wrapped
      in a function marked with 'Composite' and a
      composite function name. This is intended to be
      used with the external codegen for the cases where
      an external operator maps to multiple Relay
      operators. In that case, the mapping can be expressed
      as a pattern and assigned a name.
      
      For more information on this pass and its motivation,
      see the RFC:
      https://discuss.tvm.ai/t/rfc-external-codegen-defining-composite-relay-operators/5470
      
      Change-Id: Icb1b803a9f0ac57c529143200228f3bb5793afc0
      
      * [Relay] Merge composite tests
      
      Added tests for the merge_composite pass.
      
      Change-Id: I1728b4a05b0c1c36140a40f1afe028fde62185dd
      
      * Merge composite additional test
      
      Change-Id: I9bc7d6053c575e9468ac5abc31214c6ad8507e46
      
      * Support priority order in merge_composite
      
      The order in which the patterns are matched
      was currently random as an unordered_map was
      used to store the pattern table. This uses
      arrays instead so that a distinct priority
      order of matching can be defined. Additional
      tests have also been added to verify this
      behaviour.
      
      Change-Id: Ief347df4262639138d5d9d7c8cee7ef233af7b56
      
      * Improved merge composite docs
      
      Change-Id: Ie3a72045ecc3f13ad3c302fbdf192b7296a306a8
      
      * Removed unused variable
      
      Change-Id: I7814d5fde368ffaf1b3d6d806060c774c7720364
      
      * Remove unnecessary op check
      
      Change-Id: I38e78d2acd5b86cb8e837be72ff9d72cd10bcf33
      
      * Improve styling on composite function creation
      
      Change-Id: I37add1c3134e0b5d5085fe1eb9daf8e06890fa8c
      
      * Comment reword
      
      Change-Id: Ie05872dcbbe0c3e1190b0597083b9a64e6b66c66
      
      * Stylistic changes to avoid std::move
      
      Change-Id: I43a93995bbf10530399900c992aa99dd4ae4575f
      
      * Relax a check in ExtractPattern
      
      Change-Id: I0faef77a66c55f83f09e6e47c561ffaea63dedfa
      
      * Remove new line
      
      Change-Id: Ifdd02c12087a7e1a0a9b54825669bc0de8f13c3d
      
      * Removed MatchPattern from MergeComposite
      
      This is not necessary now that ExtractPattern
      can fulfill the same purpose.
      
      Change-Id: I14dc020afa8e50f2df4c0a2efb88a011987f8196
      
      * Removed a new line
      
      Change-Id: I8b50f0c9069aa1bcaccbe68eb421031f01a64842
      
      * Improved docs for merge composite
      
      Change-Id: Ib1959a35c856e7ea5639de2e4ef314a54f44caf5
      
      * Fixed free vars in test
      
      Change-Id: I2b7f273db275964ec0e9820560663f0808adee79
      
      * Handle case where root arg might not be a call
      
      Change-Id: I4eeea3ce723d3ba337d110dcc690377daebe8626
      
      * Removed blank line
      
      Change-Id: I07f5392c0e95cfe3cfa5c333703cc6f82d6034fb
      
      * Change to CHECK_EQ
      
      Change-Id: I5c5d62d3cd57f72508b30b926f72091ae6f0d1cc
      
      * Revised a conditional
      
      Change-Id: I23a7897ca15a7cd076db5039dc653a4b8c27e803
      
      * Improved doc styling
      
      Change-Id: I377f0a1c1ac70f3b8d7584b0c49bddc8c6c134ef
      
      * Fail extraction if vars conflict
      
      Change-Id: I78e36d805e8ed6b55e61d490212a967c857554a4
      
      * Added further merge composite tests
      
      Change-Id: Ib1d800409fca4c1834c7fe0cab5a26ab99a26820
      
      Co-authored-by: lhutton1 <35535092+lhutton1@users.noreply.github.com>
      mbarrett97 committed
  3. 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
  4. 06 Feb, 2020 1 commit
  5. 05 Feb, 2020 1 commit
  6. 04 Feb, 2020 2 commits
  7. 03 Feb, 2020 2 commits
  8. 02 Feb, 2020 1 commit
  9. 31 Jan, 2020 1 commit
  10. 30 Jan, 2020 2 commits
  11. 28 Jan, 2020 1 commit
  12. 24 Jan, 2020 1 commit
  13. 23 Jan, 2020 1 commit
  14. 22 Jan, 2020 2 commits
  15. 21 Jan, 2020 2 commits
    • [REFACTOR] top->te (#4759) · 55d81925
      Bring up namespace te -- Tensor expression language DSL.
      Tianqi Chen committed
    • [REFACTOR] Establish printer in the source folder (#4752) · e4d817d4
      * [REFACTOR] Establish printer in the source folder.
      
      As we move towards the unified IR, we will eventually want to build a unified
      printers for both relay and TIR.
      
      This PR isolate the printer component into a separate folder in src as a first step.
      
      - Refactored the Doc DSL using Object, clean up APIs.
      - Isolate out the meta data into a header.
      - move printer into relay_text_printer, add comments about further TODos.
      
      * Rename NodePrinter -> ReprPrinter to distinguish it from other printers
      Tianqi Chen committed
  16. 20 Jan, 2020 2 commits
  17. 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
  18. 18 Jan, 2020 2 commits
    • [runtime][refactor] Unify vm and interpreter objects (#4693) · acbf8851
      * unify vm and interpreter objects
      
      * move closure back vm
      
      * adt/closure back to vm.adt/vm.closure
      
      * closure base
      Zhi committed
    • [CodeGen][CUDA] Improve CUDA vectorizer (#4736) · 2630ffcb
      - Fixes issues to enable fp16 vectorizer. Now correct packing and
        unpacking CUDA code will be emitted. Enabled more unit tests.
      
      - Do not emit code to read the first lane from an undef variable
      
        int _3;
        _3 = _3 & ~(0x000000ff << 0) | ...
      
        and emit the following code instead:
      
        _3 = (((0x000000ff & (_1 >> 0))+(0x000000ff & (_2 >> 0))) << 0);
      
        Note that nvcc 10.2 is forgiving and emits the same code for both cases.
        A warning appears in test_codegen_cuda.py.
      
      Signed-off-by: Wei Pan <weip@nvidia.com>
      wpan11nv committed
  19. 17 Jan, 2020 5 commits
  20. 16 Jan, 2020 7 commits