platform/upstream/tvm.git
4 years ago[Hexagon] Change "scalar" and "stack" in IDL from "inrout" to "in" (#5487)
Krzysztof Parzyszek [Fri, 1 May 2020 08:43:22 +0000 (03:43 -0500)]
[Hexagon] Change "scalar" and "stack" in IDL from "inrout" to "in" (#5487)

Co-authored-by: Abhikrant Sharma <quic_abhikran@quicinc.com>
4 years agoMake "none" DataType explicit (#5491)
Krzysztof Parzyszek [Fri, 1 May 2020 05:06:06 +0000 (00:06 -0500)]
Make "none" DataType explicit (#5491)

* Make "none" DataType explicit

The None data type is created when converting an empty string to DataType.
Add functions to create it and recognize it. Convert it to the "void" LLVM
type in LLVM codegen.

* Rename "none" to "void"

* Map VoidType:Type -> Void:DataType in GetRuntimeDataType

* Map Void:DataType -> VoidType:Type in GetType

4 years ago[IR] Initial stab at std::string->String upgrade (#5438)
Tianqi Chen [Thu, 30 Apr 2020 23:11:38 +0000 (16:11 -0700)]
[IR] Initial stab at std::string->String upgrade (#5438)

4 years agoRemoving older Object detection TFlite test (#5477)
Animesh Jain [Thu, 30 Apr 2020 19:21:27 +0000 (12:21 -0700)]
Removing older Object detection TFlite test (#5477)

4 years ago[RUNTIME][uTVM] AutoTVM + uTVM for Cortex-M7 (#5417)
Andrew Reusch [Thu, 30 Apr 2020 17:59:33 +0000 (10:59 -0700)]
[RUNTIME][uTVM] AutoTVM + uTVM for Cortex-M7 (#5417)

* Prototype for micro TVM.

* Cleanup and sync micro tvm prototype.

* Use /std:c++14 with MSVC.

 * Per tqchen: project has already moved to C++14
 * Presubmit failed for code that built locally on gcc.

* fix ASF lint, and fix add_asf_header too

* Compiles with USE_MICRO=OFF.

* Cleanup TargetPtr and word size representations.

* fix compile warning

* address logan's comments

* address logan and liangfu comments

* address thierry's comments

* address u99127, liangfu, tmoreau89 comments

Co-authored-by: Logan Weber <weberlo@cs.washington.edu>
4 years ago[Fix] Add ConstantNode to IsAtomic (#5457)
Zhi [Thu, 30 Apr 2020 17:00:27 +0000 (10:00 -0700)]
[Fix] Add ConstantNode to IsAtomic (#5457)

* add constantnode to atomic

* Add ToANormalForm to FoldConstant

4 years ago[VTA] Fix VTA compile issue (#5481)
Hua Jiang [Thu, 30 Apr 2020 15:07:23 +0000 (08:07 -0700)]
[VTA] Fix VTA compile issue (#5481)

* [VTA] Fix Pynq driver build issue.
Issue:
When doing vta compile in xilinx FPGA, the pynqdriver.cc report can
not find <vta/driver.h>

Solution:
add related path.

* Fix libvta load fail issue.

issue:
run vta on pynq board libvta.so load failed.

solution:
fixed VTA.make logic issue

4 years ago[RUNTIME] Improved Packed FFI for optional. (#5478)
Tianqi Chen [Thu, 30 Apr 2020 15:07:00 +0000 (08:07 -0700)]
[RUNTIME] Improved Packed FFI for optional. (#5478)

Allows Optional<NDArray> and module to be passed with the right type code.

4 years ago[team] add reviewer kparzysz-quic (#5482)
Yizhi Liu [Thu, 30 Apr 2020 15:06:41 +0000 (08:06 -0700)]
[team] add reviewer kparzysz-quic (#5482)

4 years ago[FRONTEND][TFLITE]Logical not op support (#5475)
Samuel [Thu, 30 Apr 2020 08:07:49 +0000 (13:37 +0530)]
[FRONTEND][TFLITE]Logical not op support (#5475)

4 years ago[intrin] a few more math functions (#5468)
Bing Xu [Thu, 30 Apr 2020 04:07:18 +0000 (21:07 -0700)]
[intrin] a few more math functions (#5468)

4 years ago[VTA][Runtime] clear sram index in reset (#5470)
ZHANG Hao [Thu, 30 Apr 2020 00:54:57 +0000 (08:54 +0800)]
[VTA][Runtime] clear sram index in reset (#5470)

Co-authored-by: Zhang Hao <zhanghao@4paradigm.com>
4 years ago[BYOC] Bind constant tuples in graph partitioner (#5476)
mbaret [Wed, 29 Apr 2020 18:23:15 +0000 (19:23 +0100)]
[BYOC] Bind constant tuples in graph partitioner (#5476)

* Bind constant tuples in the graph partitioner

Change-Id: I815b32b5445a536c1837369b04f67dbbb0aed900

* Add partitioning test

Change-Id: I3a492ec8d1beab4830214e3bc8da2a7c80771ca4

* Rename test target

Change-Id: Ie32f37c1395ff597c0047ad3a93ed04ce3f3125d

4 years ago[CI] update ci-gpu to the latest (#5469)
Tianqi Chen [Wed, 29 Apr 2020 17:45:26 +0000 (10:45 -0700)]
[CI] update ci-gpu to the latest (#5469)

4 years ago[CODEGEN][CUDA] Fix a bug when vectorized load&store was involved for… (#5428)
boh_inspur [Wed, 29 Apr 2020 17:22:25 +0000 (12:22 -0500)]
[CODEGEN][CUDA] Fix a bug when vectorized load&store was involved for… (#5428)

* [CODEGEN][CUDA] Fix a bug when vectorized load&store was involved for "char2"

* Add unittest for char2

* vector element load support char2&add some unittest for vector element load

* Merge common up logic&Support char3&Add unittest for char3

4 years ago[TFLITE] Match TFLite shape for SSD custom op (#5473)
mbaret [Wed, 29 Apr 2020 16:13:16 +0000 (17:13 +0100)]
[TFLITE] Match TFLite shape for SSD custom op (#5473)

This patch ensures that the output shape from TVM's
Detection_PostProcess is the same as TFLite's and
expands the unit test to confirm this.

Change-Id: If5db95741533f131241dfebbaa7708dbd528fe70

4 years ago[Frontend][TFLite] support for FILL and SPLIT_V operators (#5330)
Mahesh Ambule [Wed, 29 Apr 2020 10:51:57 +0000 (16:21 +0530)]
[Frontend][TFLite] support for FILL and SPLIT_V operators (#5330)

* tflite spliv ops

* TFLITE fill and splitv ops

* TFLITE fill and splitv ops

* TFLITE fill and splitv ops

* remove unnecessary operator check

4 years ago[Frontend][TFLite] L2_POOL_2D operator (#5452)
Mahesh Ambule [Wed, 29 Apr 2020 05:35:54 +0000 (11:05 +0530)]
[Frontend][TFLite] L2_POOL_2D operator (#5452)

* TFLITE fill and splitv ops

* l2_pool_2d op changes in comment

* TFLite l2_pool_2d op added test case in main

* TFLite L2_POOL_2D added check for quantized input

4 years ago[COMMUNITY] @liangfu -> committer (#5460)
Thierry Moreau [Wed, 29 Apr 2020 05:06:30 +0000 (22:06 -0700)]
[COMMUNITY] @liangfu -> committer (#5460)

4 years agoImprove Docker cache reuse by pointing to the current version of the image, (#5466)
Leandro Nunes [Tue, 28 Apr 2020 23:32:38 +0000 (00:32 +0100)]
Improve Docker cache reuse by pointing to the current version of the image, (#5466)

on top of another image to be used as reference.

4 years ago[Topi][Cuda]Optimizations of global_ave_pool for NHWC layout (#5450)
SXM-inspur [Tue, 28 Apr 2020 20:44:03 +0000 (04:44 +0800)]
[Topi][Cuda]Optimizations of global_ave_pool for NHWC layout (#5450)

* Optimizations of global_ave_pool for NHWC layout

* Optimize the code format to pass inspection of pylint

Co-authored-by: Shawn-Inspur <wushaohua@inspur.com>
4 years agoAdd RoiAlign to Onnx frontend (#5454)
Matthew Brookhart [Tue, 28 Apr 2020 01:20:23 +0000 (18:20 -0700)]
Add RoiAlign to Onnx frontend (#5454)

4 years ago[TFLite Runtime] Add TFLite Runtime dependencies to CI CPU docker build (#5437)
Michal Piszczek [Mon, 27 Apr 2020 15:14:33 +0000 (08:14 -0700)]
[TFLite Runtime] Add TFLite Runtime dependencies to CI CPU docker build (#5437)

4 years ago[Pytorch] fix translation of transpose when axis argument is as a list (#5451)
Nikolay Nez [Mon, 27 Apr 2020 11:34:58 +0000 (20:34 +0900)]
[Pytorch] fix translation of transpose when axis argument is as a list (#5451)

4 years ago[relay][topi] Add operation relay.nn.dilate() which calls topi.nn.dilate() (#5331)
notoraptor [Mon, 27 Apr 2020 07:36:35 +0000 (03:36 -0400)]
[relay][topi] Add operation relay.nn.dilate() which calls topi.nn.dilate() (#5331)

* Add operation relay.nn.dilate() which calls topi.nn.dilate().

* Fix typo

* Set op pattern to injective

4 years ago[ONNX]GatherNd, Round, IsNaN, IsInf (#5445)
Samuel [Mon, 27 Apr 2020 06:53:10 +0000 (12:23 +0530)]
[ONNX]GatherNd, Round, IsNaN, IsInf (#5445)

4 years agoImprove IntervalSet's floormod (#5367)
yongfeng-nv [Mon, 27 Apr 2020 00:00:52 +0000 (20:00 -0400)]
Improve IntervalSet's floormod (#5367)

4 years ago[Docs] VTA install doc migration from md to rst (#5442)
Thierry Moreau [Sun, 26 Apr 2020 23:49:05 +0000 (16:49 -0700)]
[Docs] VTA install doc migration from md to rst (#5442)

4 years ago[KERAS]Embedding layer (#5444)
Samuel [Sun, 26 Apr 2020 02:58:02 +0000 (08:28 +0530)]
[KERAS]Embedding layer (#5444)

4 years ago[RELAY] Move frontend utils (#5345)
mbaret [Sat, 25 Apr 2020 16:18:30 +0000 (17:18 +0100)]
[RELAY] Move frontend utils (#5345)

* [RELAY] Move frontend utils

The util file currently under frontend is used from
outside of frontend (in qnn/op/legalizations). This suggests
that the file should be pushed up to a higher level.

The benefit from this change is that importing qnn no longer
also imports all the frontends.

* Inline get_scalar_from_constant

Change-Id: I1cc64e9ecb0eadb6ac0f7b62e6ea174644af4ad4

* Remove util.py from Relay

Change-Id: If9cd7cf3fc0bd1861a3a9b5604f338e084d8db96

* Shorten functions

Change-Id: Ieb537d82e6ee52421ff05a90cd00a03679ffebf2

* Line length

Change-Id: I1d216b7e73a060c4f118f5da50ce58b18eba907f

4 years ago[CodeGen] Cleanup generated code (#5424)
Wei Pan [Sat, 25 Apr 2020 08:20:27 +0000 (01:20 -0700)]
[CodeGen] Cleanup generated code (#5424)

- remove unnecessary white spaces from storage kind
- do not start a new scope for vectorization as temporary
  variables are alll uniquely generated.

The above two changes make vectorized code much cleaner.

Signed-off-by: Wei Pan <weip@nvidia.com>
4 years agoAdd TopK to ONNX Frontend (#5441)
Matthew Brookhart [Sat, 25 Apr 2020 06:37:09 +0000 (23:37 -0700)]
Add TopK to ONNX Frontend (#5441)

* Add TopK to ONNX Frontend

* respond to review comments

4 years agofix miopen pad (#5433)
Thomas Viehmann [Sat, 25 Apr 2020 01:32:18 +0000 (03:32 +0200)]
fix miopen pad (#5433)

4 years ago[PYTORCH]Rsub, Embedded, OneHot ops support (#5434)
Samuel [Sat, 25 Apr 2020 01:23:35 +0000 (06:53 +0530)]
[PYTORCH]Rsub, Embedded, OneHot ops support (#5434)

4 years ago[RELAY][PYTORCH]cosh,sinh,log2,log10,log1p op support (#5395)
Samuel [Sat, 25 Apr 2020 01:22:10 +0000 (06:52 +0530)]
[RELAY][PYTORCH]cosh,sinh,log2,log10,log1p op support (#5395)

* [RELAY][PYTORCH]cosh,sinh,log2,log10,log1p op support

* Review comment fixed

* Gradient testcase added

4 years ago[RUNTIME][OBJECT] Introduce static slots for common objects. (#5423)
Tianqi Chen [Fri, 24 Apr 2020 19:49:05 +0000 (12:49 -0700)]
[RUNTIME][OBJECT] Introduce static slots for common objects. (#5423)

The _type_child_slots can be used to enable quick type checking optimization
by checking the whether the type index is within the bound.

This PR enables these static slots:

- Introduce a static assert to avoid the scenario when a developer forget to
  _type_child_slots when the field is set for the type's parent.
- Revamp and assign static type index to common runtime objects
- Add a DumpTypeTable call to allow developer monitor the current situation
  of type table and offers suggestions for the slots(ideally the slots equals
  the number of children so there is no overflow.

4 years agoCorrected TVM autotuning on GPU (#5432)
JishinMaster [Fri, 24 Apr 2020 16:50:01 +0000 (18:50 +0200)]
Corrected TVM autotuning on GPU (#5432)

Added missing "tir" in tvm.tir.analysis.verify_gpu_code(f, kwargs)

4 years agomisc fixes for ROCm (pointer lifetime, runtime::String refactor) (#5431)
Thomas Viehmann [Fri, 24 Apr 2020 15:56:52 +0000 (17:56 +0200)]
misc fixes for ROCm (pointer lifetime, runtime::String refactor) (#5431)

4 years ago[FRONTEND][TFLITE]Gather, StridedSlice op support added (#4788)
Samuel [Fri, 24 Apr 2020 10:53:38 +0000 (16:23 +0530)]
[FRONTEND][TFLITE]Gather, StridedSlice op support added (#4788)

* [FRONTEND][TFLITE]Gather, StridedSlice op added

* Review comments fixed

4 years ago[PYTORCH]where, addcdiv, addcmul op support (#5383)
Samuel [Fri, 24 Apr 2020 10:49:26 +0000 (16:19 +0530)]
[PYTORCH]where, addcdiv, addcmul op support (#5383)

* [PYTORCH]Where, addcdiv, addcmul op support

* Review comments fixed

4 years ago[PY][FFI] Introduce PyNativeObject, enable runtime.String to subclass str (#5426)
Tianqi Chen [Fri, 24 Apr 2020 05:06:05 +0000 (22:06 -0700)]
[PY][FFI] Introduce PyNativeObject, enable runtime.String to subclass str (#5426)

To make runtime.String to work as naturally as possible in the python side,
we make it sub-class the python's str object. Note that however, we cannot
sub-class Object at the same time due to python's type layout constraint.

We introduce a PyNativeObject class to handle this kind of object sub-classing
and updated the FFI to handle PyNativeObject classes.

4 years ago[FRONTEND][MXNET] support elemwise logic ops (#5361)
MORITA Kazutaka [Fri, 24 Apr 2020 02:54:26 +0000 (11:54 +0900)]
[FRONTEND][MXNET] support elemwise logic ops (#5361)

4 years agoAdd option to specify flatbuffers location (#5425)
Michal Piszczek [Thu, 23 Apr 2020 23:25:46 +0000 (16:25 -0700)]
Add option to specify flatbuffers location (#5425)

4 years ago[MXNET]DepthToSpace & SpaceToDepth Operator (#5408)
Samuel [Thu, 23 Apr 2020 22:05:25 +0000 (03:35 +0530)]
[MXNET]DepthToSpace & SpaceToDepth Operator (#5408)

4 years ago[RFC] Pytest environment improvements (#5421)
Ramana Radhakrishnan [Thu, 23 Apr 2020 22:05:03 +0000 (23:05 +0100)]
[RFC] Pytest environment improvements (#5421)

* [RFC] Pass pytest options globally.

In many places having a global pytest flag is useful . For me with the
build and test of tvm , I would like to be able to globally pass in
pytest options as part of development flow or CI flows where one would
like to measure other things regularly that need measurements including
pytest coverage data that I would like to experiment with across the stack.

This has been achieved with an additional setup-pytest-env.sh file in
tests/scripts rather than putting in something in every single task test
script and something I would like to avoid.

This now means the -v option to pytest is superfluous. I did consider
having a pytest.ini file but that doesn't allow me to pass any old
environment variable in and this seems to be the compromise.

* Improve other use case documentation

* Rationalize pytest environment.

* Remove the setting from docker/with_same_user.
* Take the opportunity to migrate common PYTHONPATH and
TVM_PATH into the common environment setting.

* Fixup vta fsim

* Be more explicit with common PYTHONPATH

* Fix python path for task_python_vta_fsim.sh properly

* Fix nit in documentation.

4 years ago[BYOC] Use Non-Recursive Visitor/Mutator (#5410)
Cody Yu [Thu, 23 Apr 2020 20:56:43 +0000 (13:56 -0700)]
[BYOC] Use Non-Recursive Visitor/Mutator (#5410)

* Non-Recursive AnnotatedTarget and MergeAnnotation

* Non-Recursive AnnotatedRegionSet and RegionMerger

4 years ago[DOCS] Migrate some markdowns to rst, fix sphinx3 warnings (#5416)
Tianqi Chen [Thu, 23 Apr 2020 19:40:11 +0000 (12:40 -0700)]
[DOCS] Migrate some markdowns to rst, fix sphinx3 warnings (#5416)

* [DOCS] Migrate some markdowns to rst, fix sphinx3 warnings

* Add note block

4 years ago[CI] Migrate Tensorflow and Tensorflow lite in CI to 2.1.0 (#5392)
Ramana Radhakrishnan [Thu, 23 Apr 2020 19:13:42 +0000 (20:13 +0100)]
[CI] Migrate Tensorflow and Tensorflow lite in CI to  2.1.0 (#5392)

* Migrate Tensorflow and TFLite in the CI up to 1.15.2

The latest stable version of Tensorflow and Tensorflow lite
in the 1.x series is 1.15.2. The tflite frontend is receiving
support for versions of tflite > 1.14 but there is no consistent
testing.

There are 2 failures already in the source base with tf 1.15
and I'm concerned this will just get exacerbated over time
if we don't have CI picking this up and I view this as a stepping
stone towards stepping CI to TF2.x.

The test failures that I have commented will get issues raised
for them as issues to be fixed.

* Comment out run of qnn_mobilenet_v3_net

This is another test that fails with TFlite 1.15.2

* Skip the qnn_mobilenet_v3 test in the pytest fashion.

* Switch docker versions to support Tensorflow 2.1.0

* Fix up pytest imports and usage.

* Skip these tests currently for Tensorflow 2.1.0

4 years ago[cuDNN] Add cuDNN grouped convolutions support (#5319)
Wei Pan [Thu, 23 Apr 2020 18:59:03 +0000 (11:59 -0700)]
[cuDNN] Add cuDNN grouped convolutions support (#5319)

Signed-off-by: Wei Pan <weip@nvidia.com>
4 years ago[Frontend] Asymmetric padding of convolution support (#4803)
Zhao Wu [Thu, 23 Apr 2020 17:10:02 +0000 (01:10 +0800)]
[Frontend] Asymmetric padding of convolution support (#4803)

4 years agofix [RUNTIME][VULKAN] vkBuffer released before memory copy command send to GPU (...
samwyi [Thu, 23 Apr 2020 15:05:42 +0000 (08:05 -0700)]
fix [RUNTIME][VULKAN] vkBuffer released before memory copy command send to GPU (#5388) (#5418)

4 years ago[DOCS] Migrate HLS documents from md to rst (#5419)
MORITA Kazutaka [Thu, 23 Apr 2020 15:05:08 +0000 (00:05 +0900)]
[DOCS] Migrate HLS documents from md to rst (#5419)

4 years ago[RUNTIME][CONTRIB] CoreML Runtime (#5283)
MORITA Kazutaka [Thu, 23 Apr 2020 07:35:43 +0000 (16:35 +0900)]
[RUNTIME][CONTRIB] CoreML Runtime (#5283)

* [RUNTIME][CONTRIB] CoreML Runtime

* fix lint

* fix CI

* use xcrun to compile coreml model

4 years ago[TIR][REFACTOR] Remove ir_pass in favor of analysis/transform. (#5415)
Tianqi Chen [Thu, 23 Apr 2020 03:44:25 +0000 (20:44 -0700)]
[TIR][REFACTOR] Remove ir_pass in favor of analysis/transform. (#5415)

This PR removes ir_pass(old style pass functions) in favor
of analysis/transform(new style pass manager).

4 years agoDon't remove() TempDirectory in __del__ after atexit hook runs. (#5414)
Andrew Reusch [Thu, 23 Apr 2020 01:30:11 +0000 (18:30 -0700)]
Don't remove() TempDirectory in __del__ after atexit hook runs. (#5414)

* Use atexit to remove TempDirectory before interpreter shutdown.
 * Can't rely on complex functions from __del__ anyway.
 * Fixes warning message on my box:
       Exception ignored in: <function TempDirectory.__del__ at 0x12be10680>
       Traceback (most recent call last):
        File ".../tvm/python/tvm/contrib/util.py", line 55, in __del__
        File ".../tvm/python/tvm/contrib/util.py", line 51, in remove
        File "/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/shutil.py", line 509, in rmtree
        AttributeError: 'NoneType' object has no attribute 'path'

4 years ago[LLVM] Replace calls to Type::getVectorNumElements (#5398)
Krzysztof Parzyszek [Wed, 22 Apr 2020 22:58:42 +0000 (17:58 -0500)]
[LLVM] Replace calls to Type::getVectorNumElements (#5398)

This function has recently been removed from LLVM 11. Use alternative
way to obtain vector element count (VectorType::getNumElements) which
works for all LLVM versions.

4 years agoCustomize SI prefix in logging (#5411)
Andrew Reusch [Wed, 22 Apr 2020 22:35:21 +0000 (15:35 -0700)]
Customize SI prefix in logging (#5411)

* Customize SI prefix in logging

* Include unit test

4 years ago[Relay] Fix memory leak when accessing NDArray (#5413)
Haichen Shen [Wed, 22 Apr 2020 21:59:54 +0000 (14:59 -0700)]
[Relay] Fix memory leak when accessing NDArray (#5413)

4 years ago[TIR] Enhance Substitute, python bindings for Substitute/PostOrderVisit/IRTransform...
Tianqi Chen [Wed, 22 Apr 2020 20:25:36 +0000 (13:25 -0700)]
[TIR] Enhance Substitute, python bindings for Substitute/PostOrderVisit/IRTransform. (#5400)

Substitute now takes a std::function to customize more replacing behaviors.

Co-authored-by: Siyuan Feng <hzfengsy@sjtu.edu.cn>
Co-authored-by: Siyuan Feng <hzfengsy@sjtu.edu.cn>
4 years agoUpdate dmlc-core to latest (#5401)
Tianqi Chen [Wed, 22 Apr 2020 20:07:35 +0000 (13:07 -0700)]
Update dmlc-core to latest (#5401)

4 years ago[Fix] Remove the duplicate PrintIR pass in Relay (#5403)
Haichen Shen [Wed, 22 Apr 2020 14:55:15 +0000 (07:55 -0700)]
[Fix] Remove the duplicate PrintIR pass in Relay (#5403)

4 years agoFactor out import of common tflite.Operator in tflite frontend. (#5355)
Ramana Radhakrishnan [Wed, 22 Apr 2020 06:09:11 +0000 (07:09 +0100)]
Factor out import of common tflite.Operator in tflite frontend. (#5355)

* Restructure imports in tflite frontend.

These python modules are needed for every tflite file parsed.
Factorize out imports of the common most ones.

Now that the import of operator is common, asserts can be commonized.

Loses 473 lines of duplication.

* Only restrict to tflite.Operator

4 years ago[KERAS]Minimum & AlphaDropout op support (#5380)
Samuel [Wed, 22 Apr 2020 03:57:06 +0000 (09:27 +0530)]
[KERAS]Minimum & AlphaDropout op support (#5380)

4 years ago[LLVM] Use ArrayRef<int> in calls to CreateShuffleVector (#5399)
Krzysztof Parzyszek [Wed, 22 Apr 2020 02:11:28 +0000 (21:11 -0500)]
[LLVM] Use ArrayRef<int> in calls to CreateShuffleVector (#5399)

This switch was made in LLVM 11. Previously this function was expecting
mask indices of type uint32_t. This variant is now deprecated.

4 years ago[PTYTHON] Migrate VTA TIR passes to the new pass manager. (#5397)
Tianqi Chen [Tue, 21 Apr 2020 21:23:18 +0000 (14:23 -0700)]
[PTYTHON] Migrate VTA TIR passes to the new pass manager. (#5397)

4 years agoTf2 test fixups (#5391)
Ramana Radhakrishnan [Tue, 21 Apr 2020 14:49:41 +0000 (15:49 +0100)]
Tf2 test fixups (#5391)

* Fix oversight in importing tf.compat.v1 as tf.

* Actually disable test for lstm in TF2.1

Since the testing framework actually uses pytest, the version
check needs to be moved.

4 years agoFix test_ir_type. (#5390)
Andrew Reusch [Tue, 21 Apr 2020 14:41:52 +0000 (07:41 -0700)]
Fix test_ir_type. (#5390)

* The void return type is not None/nullptr, it's VoidType or
   TupleType([]).

4 years ago[Topi, ARM] Disbale Winograd for quantized tensors. (#5363)
Animesh Jain [Tue, 21 Apr 2020 11:06:13 +0000 (04:06 -0700)]
[Topi, ARM] Disbale Winograd for quantized tensors. (#5363)

* [Topi, ARM] Disbale Winograd for quantized tensors.

* Relaxing float

4 years agoAdd ability to have multiple copies of same input to onnx_inputs. (#5389)
Josh Fromm [Tue, 21 Apr 2020 10:57:13 +0000 (03:57 -0700)]
Add ability to have multiple copies of same input to onnx_inputs. (#5389)

4 years ago[ARITH] Remove legacy const pattern functions (#5387)
Tianqi Chen [Tue, 21 Apr 2020 03:53:32 +0000 (20:53 -0700)]
[ARITH] Remove legacy const pattern functions (#5387)

4 years ago[ARITH] Remove the legacy Simplify, migrate to Analyzer. (#5385)
Tianqi Chen [Tue, 21 Apr 2020 02:28:08 +0000 (19:28 -0700)]
[ARITH] Remove the legacy Simplify, migrate to Analyzer. (#5385)

The legacy Simplify/CanonicalSimplify are now a thin wrapper around the Analyzer.
This PR removes these functions and migrated every place that requires
simplification to enforce Analyzer creation.
The new API would encourage more Analyzer sharing and potentially enable
context-aware analyzer-based simplification.

4 years ago[REFACTOR][TE] Inline -> te/schedule/operation_inline.h (#5386)
Tianqi Chen [Tue, 21 Apr 2020 02:28:00 +0000 (19:28 -0700)]
[REFACTOR][TE] Inline -> te/schedule/operation_inline.h (#5386)

Rationale: inline is a transformation used in te to
rewrite its internal expressions. It is not a formal IRModule->IRModule transform pass.

Also removed the python test as the test is covered by stage.compute_inline.

4 years ago[Blocksparse] Pipeline for lowering dense model to sparse-dense (#5377)
Bing Xu [Mon, 20 Apr 2020 05:15:37 +0000 (22:15 -0700)]
[Blocksparse] Pipeline for lowering dense model to sparse-dense (#5377)

4 years ago[TIR][REFACTOR] RewriteForTensorCore -> te/schedule (#5379)
Tianqi Chen [Mon, 20 Apr 2020 02:57:25 +0000 (19:57 -0700)]
[TIR][REFACTOR] RewriteForTensorCore -> te/schedule (#5379)

* [TIR][REFACTIR] RewriteForTensorCore -> te/schedule

RewriteForTensor depends on the schedule information, which makes it differ
from a typical pass(which should get all the information from the input TIR).

As a result, we refactor it as a SchedulePostProc step for now.
We should revisit it later as we introduce more support for tensor core patterns in the TIR.

* Fix VTA to fit the new IR Pattern

4 years ago[PYTORCH]Unary Ops (#5378)
Samuel [Mon, 20 Apr 2020 01:48:51 +0000 (07:18 +0530)]
[PYTORCH]Unary Ops (#5378)

4 years ago[TIR][REFACTOR] Remove te::Tensor dependencies from TIR passes. (#5372)
Tianqi Chen [Sun, 19 Apr 2020 22:26:51 +0000 (15:26 -0700)]
[TIR][REFACTOR] Remove te::Tensor dependencies from TIR passes. (#5372)

* [TIR][REFACTOR] Remove te::Tensor dependencies from TIR passes.

te::Tensor is an useful object for tensor expression, but brings
un-necessary reverse dependency in TIR nodes such as Provide and Realize.

This PR is a first step to remove this dependency. We will use Buffer in all the places
where the te::Tensor was used. The rough correspondence are:

- Provide -> BufferStore
- Realize -> BufferRealize
- HalideCall -> BufferLoad.

After this change, we can not use IRModule of PrimFuncs cleanly to represent TIR
at any point of the optimizations. Buffer will serve as the abstraction for the TIR data
models to represent the intermediate storages and their constraints.

We still keep Realize/HalideCall and Provide as TIR nodes for now to make the change minimum.
Right after ScheduleOps, we call SchedulePostProcToPrimFunc to canonicalize the temporary IR
generated by TE(which contains these nodes) to the TIR.

The TIR optimizations are now mostly migrated to to the pass manager.
Followup PRs are needed to migrate the remaining few passes.

* Fix dev tutorial

4 years agoRemove developer facing api from frontend exports. (#5375)
shoubhik [Sun, 19 Apr 2020 04:09:32 +0000 (21:09 -0700)]
Remove developer facing api from frontend exports. (#5375)

4 years agoAdd cuda target check to dense tensorcore schedule. (#5376)
Josh Fromm [Sun, 19 Apr 2020 04:09:14 +0000 (21:09 -0700)]
Add cuda target check to dense tensorcore schedule. (#5376)

4 years ago[TIR] Fix lower_warp_memory when there are >1 warp buffers (#5368)
Tang, Shizhi [Sun, 19 Apr 2020 03:11:51 +0000 (11:11 +0800)]
[TIR] Fix lower_warp_memory when there are >1 warp buffers (#5368)

* fix recursion in lower_warp_memory

* post-order mutation

4 years ago[TIR][REFACTOR] Migrate low-level passes in tvm.lower to the Unified IR pass manager...
Tianqi Chen [Sat, 18 Apr 2020 19:33:58 +0000 (12:33 -0700)]
[TIR][REFACTOR] Migrate low-level passes in tvm.lower to the Unified IR pass manager. (#5364)

- Migrate BoundCheckers and Simplify
- Migrate RewriteUnsafeSelect and RemoveNoOp
- Migrate UnrollLoop and StorageRewrite
- Migrate InjectDoubleBuffer and InjectVirtualThread
- Migrate LoopPartition and Vectorize
- Migrate CoProcSync, LiftAttrScope, InjectCopyIntrin

We still keep ir_pass registerations for now.
Need a separate PR to refactor the parts before the StorageFlatten.

4 years ago[RUNTIME] FastRPC interface for Hexagon runtime (#5353)
Krzysztof Parzyszek [Sat, 18 Apr 2020 11:56:17 +0000 (06:56 -0500)]
[RUNTIME] FastRPC interface for Hexagon runtime (#5353)

* [RUNTIME] FastRPC interface for Hexagon runtime

Co-authored-by: Ravishankar Kolachana <quic_rkolacha@quicinc.com>
Co-authored-by: Krzysztof Parzyszek <kparzysz@quicinc.com>
* Explain store offset in a comment in launcher

Co-authored-by: Abhikrant Sharma <quic_abhikran@quicinc.com>
Co-authored-by: Ravishankar Kolachana <quic_rkolacha@quicinc.com>
4 years agofix fuse over functions that are handled by external codegen (#5365)
Zhi [Sat, 18 Apr 2020 06:38:59 +0000 (23:38 -0700)]
fix fuse over functions that are handled by external codegen (#5365)

4 years agodocker: Drop caffe2 download progess bars (#5359)
Marcus Shawcroft [Fri, 17 Apr 2020 18:05:42 +0000 (19:05 +0100)]
docker: Drop caffe2 download progess bars (#5359)

Change-Id: Ia15c3c8f41f75423814e559f6fdb062098f19464

4 years ago[RELAY][PYTORCH]GroupNorm op support added (#5358)
Samuel [Fri, 17 Apr 2020 14:54:24 +0000 (20:24 +0530)]
[RELAY][PYTORCH]GroupNorm op support added (#5358)

4 years ago[TIR] Make lower_warp_memory support extent(threadIdx.x) < warp_size (#5307)
Tang, Shizhi [Fri, 17 Apr 2020 14:35:11 +0000 (22:35 +0800)]
[TIR] Make lower_warp_memory support extent(threadIdx.x) < warp_size (#5307)

* support extent(threadIdx.x) < warp_size in lower_warp_memory

* more docs for lower_warp_memory

4 years ago[TOPI-ARM] Do not alter layout if layout is NHWC (#5350)
Animesh Jain [Fri, 17 Apr 2020 07:10:02 +0000 (00:10 -0700)]
[TOPI-ARM] Do not alter layout if layout is NHWC (#5350)

* [TOPI-ARM] Do not alter layout if layout is NHWC

* Add test.

4 years ago[Hexagon] Add hexagon_posix.cc to TVM/RT sources in the right place (#5346)
Krzysztof Parzyszek [Fri, 17 Apr 2020 06:22:51 +0000 (01:22 -0500)]
[Hexagon] Add hexagon_posix.cc to TVM/RT sources in the right place (#5346)

This file was added before the variable with TVM/RT was initialized.
The initialization overwrote the addition.

4 years ago[PYTORCH]Tensor creation ops support (#5347)
Samuel [Fri, 17 Apr 2020 01:24:55 +0000 (06:54 +0530)]
[PYTORCH]Tensor creation ops support (#5347)

4 years ago[CRT]Compilation warnings fixed for 32bit and 64bit compilation (#5349)
Samuel [Thu, 16 Apr 2020 23:56:30 +0000 (05:26 +0530)]
[CRT]Compilation warnings fixed for 32bit and 64bit compilation (#5349)

4 years agoenable tsim and fsim for GPU build (#5352)
Zhi [Thu, 16 Apr 2020 22:06:00 +0000 (15:06 -0700)]
enable tsim and fsim for GPU build (#5352)

4 years ago[BYOC][FIX] Fix typo in "default" (#5348)
mbaret [Thu, 16 Apr 2020 20:23:01 +0000 (21:23 +0100)]
[BYOC][FIX] Fix typo in "default" (#5348)

Default annotations were incorrectly being named 'defualt'
which results in them not being removed in PartitionGraph.

4 years ago[RUNTIME][CRT] support DLTensor whose ndim == 0 (#5344)
windclarion [Thu, 16 Apr 2020 20:02:31 +0000 (04:02 +0800)]
[RUNTIME][CRT] support DLTensor whose ndim == 0 (#5344)

Signed-off-by: windclarion <windclarion@gmail.com>
4 years ago[RELAY][BYOC] Register pattern tables from external codegens (#5262)
mbaret [Thu, 16 Apr 2020 08:36:38 +0000 (09:36 +0100)]
[RELAY][BYOC] Register pattern tables from external codegens (#5262)

* [RELAY][BYOC] Register pattern tables from external codegens

This adds utility functions to support registering
and retrieving pattern tables used by MergeComposite for
external codegens.

Change-Id: I5be165a321440e48b15ff6aff4970e0c67496aaa

* Updated DNNL tests to use pattern table mechanism

* Removed pattern table standalone test

* Change reg to _op

4 years ago[TOPI][PYTORCH]Logical & Bitwise operator support (#5341)
Samuel [Thu, 16 Apr 2020 08:34:36 +0000 (14:04 +0530)]
[TOPI][PYTORCH]Logical & Bitwise operator support (#5341)

4 years ago[DOCS] Bring relay docs to the top-level flat view (#5343)
Tianqi Chen [Wed, 15 Apr 2020 22:32:59 +0000 (15:32 -0700)]
[DOCS] Bring relay docs to the top-level flat view (#5343)

- Changes most of the relay docs to use autosummary.
- Bring relay API docs to the top-level flat view for easier discovery
- Removed a few cases of re-exports.

4 years ago[Tutorial, QNN] Add tutorial for loading quantized PyTorch model (#5321)
masahi [Wed, 15 Apr 2020 20:46:28 +0000 (05:46 +0900)]
[Tutorial, QNN] Add tutorial for loading quantized PyTorch model (#5321)

* add pytorch tutorial code and doc stub

* add more docs

* formatting, more docs

* typo fix

* try make sphinx happy

* add performance section

* type and nit fix

* format fix

4 years ago[BYOC] Prevent duplicate outputs in subgraph Tuple (#5320)
Trevor Morris [Wed, 15 Apr 2020 20:33:31 +0000 (13:33 -0700)]
[BYOC] Prevent duplicate outputs in subgraph Tuple (#5320)

* Fix duplicate output in partitiongraph

* Add test case

* Fix test_annotated_regions with duplicate compiler_end outputs

* Revert "Fix duplicate output in partitiongraph"

This reverts commit e1f8ef3f4ca5b2aaa31ace6fa968bb50e5e4d1fa.

* Prevent duplicate outputs in Tuple in PartitionGraph

* Fix lint

* Add another test case for when regions are merged, and when TupleGetItem was duplicated

* Pull GetFunctionOutput out of branch, improve description of GetFunctionOutput

* Use std::move for GetFunctionOutput. Fix typo with testcase name

* Use tvm.transform.Sequential

4 years ago[TIR] Remove ProducerConsumer and AllocateNode::new_expr (#5333)
Tianqi Chen [Wed, 15 Apr 2020 18:11:39 +0000 (11:11 -0700)]
[TIR] Remove ProducerConsumer and AllocateNode::new_expr (#5333)

* [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

4 years ago[PYTHON] Enhance with_attr API, cleanup MakeAPILegacy in testcases (#5335)
Tianqi Chen [Wed, 15 Apr 2020 18:11:28 +0000 (11:11 -0700)]
[PYTHON] Enhance with_attr API, cleanup MakeAPILegacy in testcases (#5335)

4 years ago[TOPI] Improve get_valid_count and nms performance for CUDA (#5339)
Leyuan Wang [Wed, 15 Apr 2020 15:32:50 +0000 (08:32 -0700)]
[TOPI] Improve get_valid_count and nms performance for CUDA (#5339)

* get_valid_count updated to have correct results

* speedup nms

* update nms

* revert back nms

* recover one test for get_valid_count