1. 03 Dec, 2019 2 commits
  2. 01 Dec, 2019 1 commit
  3. 26 Nov, 2019 1 commit
  4. 25 Nov, 2019 1 commit
  5. 24 Nov, 2019 4 commits
  6. 23 Nov, 2019 1 commit
  7. 22 Nov, 2019 2 commits
  8. 19 Nov, 2019 1 commit
  9. 16 Nov, 2019 1 commit
    • Retain qnn input kernel scales (#4292) · 3ba9dd09
      * Add qnn conv2d attributes for input_tensor_scale and
      kernel_tensor_scale.
      
      The lowering in the tflite frontend loses the input_tensor_scale
      and the kernel_tensor_scale by multiplying it and putting it into
      the Requantize operation. This means that any graph partitioning
      passes or other passes that need to access this information no longer
      have it available in the qnn dialect.
      
      regards
      Ramana
      
      * Store input tensor scale and Weight tensor scale for Dense as well
      
      As for conv2d, the tflite frontend drops the input tensor
      scale and the weight tensor scale from the relay op. Store
      it as separate fields in there.
      
      * Fix unintentional tab
      
      * Rename input_tensor_scale to input_scale and kernel_tensor_scale
      to kernel_scale for conv2d.
      
      * input_tensor_scale -> input_scale weight_tensor_scale->weight_scale
      
      * Rework dense testcase
      
      And use input_scale and kernel_scale
      
      * Be consistent in use of input_scale and kernel_scale values
      
      * Fixup qnn conv2d tests for input_scale and kernel_scale
      
      * Make pydoc identical between conv2d and dense for weight_tensor
      
      * Fix up conv2d parameters to be in the same order between C++ and python
      
      * Fix ordering of parameters for dense.
      
      * Add input_scale and output_scale to try and satisfy ci gods
      
      * Delete input_scale and kernel_scale.
      
      nn.conv2d does not contain input_scale and kernel_scale. We need
      to delete it when lowering it to nn.conv2d.
      
      * Add input_scale and kernel_scale for qnn.conv2d
      Ramana Radhakrishnan committed
  10. 15 Nov, 2019 3 commits
  11. 11 Nov, 2019 2 commits
  12. 09 Nov, 2019 1 commit
    • Auto TensorCore CodeGen (#4234) · d64bf6b5
      * Add Auto TensorCore TensorCore Unit Test
      
      * Rebase to tvm master branch & Add auto tensor core
      
      * Code Refine
      
      * Add tensor core switch by pragma
      
      * Add pragma in tensor core example code
      
      * Get real tile size to replace hard coded 16
      
      * support more than 2 dimensions (e.g. batchmatmul) for buffer bind scope
      
      * support batch matmul
      
      * Move cuda env check to tensor_core.cc
      
      * Coderefine for tensor_core.cc
      
      * Refine comments
      
      * Some refinements of code and comment
      
      * Update TensorCore UT to pass the CPU test
      
      * remove redundant code
      
      * matmul's storage align for different layout
      
      * Add support for differenct position of type cast
      
      * Add formal tutorial for auto tensorcore codegen
      
      * move tensorcore check up to tutorial code
      
      * code and doc refine
      
      * comment out tune_and_evaluate in tutorial
      
      * fix cpplint error
      Minmin Sun (孙敏敏) committed
  13. 01 Nov, 2019 2 commits
  14. 30 Oct, 2019 3 commits
  15. 28 Oct, 2019 1 commit
  16. 27 Oct, 2019 1 commit
  17. 24 Oct, 2019 4 commits
  18. 22 Oct, 2019 1 commit
  19. 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
  20. 20 Oct, 2019 1 commit
  21. 18 Oct, 2019 1 commit
  22. 17 Oct, 2019 1 commit
  23. 16 Oct, 2019 2 commits
  24. 15 Oct, 2019 1 commit
    • [RFC][RUNTIME] Introduce new object protocol. (#4115) · a0bd3786
      * [RUNTIME] Introduce new object protocol.
      
      This PR introduces a new object protocol to unify the node and object.
      We also updated the existing runtime::vm code to make use of the new system.
      
      Update to the node will be done in a follow up PR.
      
      Other changes:
      
      - Remove object related code in json serializer as that code logic was not complete
        and we have a separate serializer for VM, can revisit later.
      
      * address review  comment
      
      * Fix the child slot logic
      Tianqi Chen committed
  25. 11 Oct, 2019 1 commit