platform/upstream/tvm.git
4 years ago[DOCKER] torch install depends on future package (#4098)
Marcus Shawcroft [Thu, 10 Oct 2019 16:26:57 +0000 (17:26 +0100)]
[DOCKER] torch install depends on future package (#4098)

The torch package depends on the future package but the torch wheel
does not expose that dependency resulting in an inconsitent install.

Ideally the wheel should declare all of its dependencies, I'm not sure
why the packagers have choosen not to do this, for now the simple work
around is to explicitly install the future package.

Change-Id: Ic9f0f4bb4c78ab65706fc1b20c1b4fd287856a9e

4 years ago[Relay][VM] Fix constant folding issue in VM compiler (#4077)
Wei Chen [Thu, 10 Oct 2019 00:47:04 +0000 (17:47 -0700)]
[Relay][VM] Fix constant folding issue in VM compiler (#4077)

* [Relay][VM] Fix constant folding issue in VM compiler

1. allow pass params when compile a module
2. enhance profiler robustness

* remove dead code

* fix lint

* add get_params

* fix test

* don't pass params back

* remove get_params

* docs

* move compile function to api

* compile clashes with builtin name

* fix compilation error

* remove dead code

4 years ago[TOPI] Add valid auto tvm for Intel Graphics (#4078)
Leyuan Wang [Wed, 9 Oct 2019 18:05:45 +0000 (11:05 -0700)]
[TOPI] Add valid auto tvm for Intel Graphics (#4078)

* add valid autotune

* fix pylint

4 years ago[TVM] Rewrite simplification rule to eliminate unnecessary conditionals. (#4076)
Andrew Tulloch [Wed, 9 Oct 2019 16:35:49 +0000 (09:35 -0700)]
[TVM] Rewrite simplification rule to eliminate unnecessary conditionals. (#4076)

The current bounds checking infrastructure inserts checks like:

```
for (i, 0, bounds[n]) {
  if (likely(i < bounds[n]) {
     ...
  }
}
```

into the TVM IR which is currently not removed by simplification infrastructure.
This is a little unclean, as these are trivially true since for a loop var `i`
with a given min and extent, we are guaranteed that `i >= min` and `i < min +
extent`. Thus, we can insert these checks into the IR and use them to eliminate
trivial bounds checks early on.

4 years ago[relay] Small refactor for context (#4091)
Zhi [Wed, 9 Oct 2019 16:19:56 +0000 (09:19 -0700)]
[relay] Small refactor for context (#4091)

4 years ago[TOPI][X86] Pool operator parallel support. (#4090)
Animesh Jain [Wed, 9 Oct 2019 15:23:45 +0000 (08:23 -0700)]
[TOPI][X86] Pool operator parallel support. (#4090)

4 years ago[topi] enable fp16 sort for arm (#4084)
Yizhi Liu [Tue, 8 Oct 2019 21:54:37 +0000 (05:54 +0800)]
[topi] enable fp16 sort for arm (#4084)

4 years ago[ARITH] Add floordiv for the deduce bound (#4025)
Umang Yadav [Tue, 8 Oct 2019 21:17:15 +0000 (17:17 -0400)]
[ARITH] Add floordiv for the deduce bound (#4025)

Use fdiv in the tests for the deduce_bound

4 years agoFix wrong n_trial number in autotvm tutorials' progress bar (#4070)
Attila Dusnoki [Tue, 8 Oct 2019 19:24:56 +0000 (21:24 +0200)]
Fix wrong n_trial number in autotvm tutorials' progress bar (#4070)

if n_trial is larger then config space.

4 years ago[VTA] hotfix for de10-nano driver (#4081)
Hua Jiang [Tue, 8 Oct 2019 19:16:03 +0000 (12:16 -0700)]
[VTA] hotfix for de10-nano driver (#4081)

Issue:
git clone latest TVM/VTA and run VTA on xilinx FPGA board, application
crashed due to the "call stack overflow" which caused by a infinite recursive
function call. this issue ever happen before and get addressed by PR 3843.

Analysis:
seems like de10-nano driver PR  used old code base then the  logic change
of 3843 get eliminated.

Solution:
add the logic back.

4 years ago[CodeGen] Disable -mfloat-abi hard option for LLVM < 6.0 (#4071)
mbarrett97 [Tue, 8 Oct 2019 18:54:08 +0000 (19:54 +0100)]
[CodeGen] Disable -mfloat-abi hard option for LLVM < 6.0 (#4071)

The -mfloat-abi hard option does not work for LLVM < 6.0 as it is ignored.
This adds a fatal error when using unsupported LLVM versions so that the failure
is not silent.

4 years ago[AlterOpLayout][x86] NHWC to NCHWc conv support. (#4080)
Animesh Jain [Tue, 8 Oct 2019 18:44:45 +0000 (11:44 -0700)]
[AlterOpLayout][x86] NHWC to NCHWc conv support. (#4080)

4 years ago[Fix][VM] Fix VM invoke with set_params (#4079)
Haichen Shen [Tue, 8 Oct 2019 17:19:49 +0000 (10:19 -0700)]
[Fix][VM] Fix VM invoke with set_params (#4079)

* Fix VM invoke with set_params

* add test

* tweak

4 years ago[QNN] Refactor fixed point multiplication in requantize (#4073)
Wuwei Lin [Tue, 8 Oct 2019 17:17:56 +0000 (13:17 -0400)]
[QNN] Refactor fixed point multiplication in requantize (#4073)

4 years agoFix match case in Python-side expr functor (#4037)
Logan Weber [Mon, 7 Oct 2019 15:20:59 +0000 (08:20 -0700)]
Fix match case in Python-side expr functor (#4037)

4 years agoHide symbols from dependent libraries if HIDE_PRIVATE_SYMBOLS is ON. (#4041)
ndl [Mon, 7 Oct 2019 15:20:26 +0000 (17:20 +0200)]
Hide symbols from dependent libraries if HIDE_PRIVATE_SYMBOLS is ON. (#4041)

In current implementation HIDE_PRIVATE_SYMBOLS hides symbols from TVM
itself but not from its dependent libraries. This is problematic when
other third-party libraries with the same symbols are linked to the
same executable.

One example is using TVM with Mesa OpenCL drivers: they depend on LLVM
and load its shared libraries with RTLD_GLOBAL flag, which results in
conflicts with LLVM symbols that TVM uses. Arguably this particular
issue belongs to Mesa (here's their tracking bug:
https://gitlab.freedesktop.org/mesa/mesa/issues/236) but in general
that's the right thing to do regardless of this particular bug.

Note that I'm not enabling this functionality for Darwin as in my
earlier tests their linker didn't seem to understand "--exclude-libs"
(but I don't have test platform ATM to double-check).

4 years agoAdd gradient for log-softmax (#4069)
雾雨魔理沙 [Mon, 7 Oct 2019 14:11:38 +0000 (07:11 -0700)]
Add gradient for log-softmax (#4069)

4 years ago[DOC] Fix typos in tutorials (#4066)
Bohan Hou [Mon, 7 Oct 2019 04:27:59 +0000 (12:27 +0800)]
[DOC] Fix typos in tutorials (#4066)

fix some typos

4 years agodicrease the complexity of CalcDep from exponential to linear (#4053)
Chengji Yao [Mon, 7 Oct 2019 03:02:06 +0000 (11:02 +0800)]
dicrease the complexity of CalcDep from exponential to linear (#4053)

4 years ago[Relay][AlterOp] Minor refactor. (#4064)
Animesh Jain [Sun, 6 Oct 2019 23:46:06 +0000 (16:46 -0700)]
[Relay][AlterOp] Minor refactor. (#4064)

4 years ago[Relay][AlterOp] Improving support for broadcast layout alteration. (#4040)
Animesh Jain [Sun, 6 Oct 2019 04:18:58 +0000 (21:18 -0700)]
[Relay][AlterOp] Improving support for broadcast layout alteration. (#4040)

4 years agoAdd parses support for zeros_like tflite operator (#4042)
Ina Dobreva [Sun, 6 Oct 2019 00:40:29 +0000 (01:40 +0100)]
Add parses support for zeros_like tflite operator (#4042)

The tensorflow zeros_like operation provided in array_ops.py produces directly a tensor with zeros
without a graph, using only the shape and type of the input. This imposes the use of gen_array_ops.py
that produces both a tensor and a graph so a comparison between tflite and tvm can be done.

4 years ago[Bugfix][TF] reset graph after getting tag of savedmodel (#4055)
Yong Wu [Sun, 6 Oct 2019 00:33:14 +0000 (17:33 -0700)]
[Bugfix][TF] reset graph after getting tag of savedmodel (#4055)

@zhiics @icemelon9

4 years ago[Relay][VM] Add more passes to VMCompiler (#4058)
Wei Chen [Sat, 5 Oct 2019 23:08:53 +0000 (16:08 -0700)]
[Relay][VM] Add more passes to VMCompiler (#4058)

* [Relay][VM] Add more passes to VMCompiler

* Check build config

* Add todo

4 years ago[Relay][VM] Add autotvm context when compile (#4062)
Wei Chen [Sat, 5 Oct 2019 17:02:08 +0000 (10:02 -0700)]
[Relay][VM] Add autotvm context when compile (#4062)

4 years ago[Bugfix] Fix target host for vm compiler (#4057)
Haichen Shen [Sat, 5 Oct 2019 03:51:01 +0000 (20:51 -0700)]
[Bugfix] Fix target host for vm compiler (#4057)

* fix

* tweak

4 years ago[Relay][Training] Add gradient for Crossentropy (#3925)
雾雨魔理沙 [Sat, 5 Oct 2019 00:24:55 +0000 (17:24 -0700)]
[Relay][Training] Add gradient for Crossentropy (#3925)

* save

save

redo max test

save

address comment

fix

* address comment

* increase rtol

* address review comment

4 years ago[llvm] switch to use Align for llvm trunk (#4051)
Yizhi Liu [Fri, 4 Oct 2019 22:13:38 +0000 (06:13 +0800)]
[llvm] switch to use Align for llvm trunk (#4051)

4 years ago[Relay][TopHub] Add switch to disable TopHub download (#4015)
Jon Soifer [Thu, 3 Oct 2019 18:55:17 +0000 (11:55 -0700)]
[Relay][TopHub] Add switch to disable TopHub download (#4015)

4 years ago[Relay][Op] Add instance norm op (#4004)
bindog [Thu, 3 Oct 2019 00:01:36 +0000 (08:01 +0800)]
[Relay][Op] Add instance norm op (#4004)

* [Relay][Op] Add instance norm op

* mend

[Relay][Op] Add instance norm op

4 years ago[QNN][Relay] Calling Dialect passes from inside Relay Build API. (#3971)
Animesh Jain [Wed, 2 Oct 2019 22:39:54 +0000 (15:39 -0700)]
[QNN][Relay] Calling Dialect passes from inside Relay Build API. (#3971)

4 years ago[RELAY/PASS] Fix the extent for the post_stmt in the loop partition (#3734)
Umang Yadav [Wed, 2 Oct 2019 20:13:10 +0000 (16:13 -0400)]
[RELAY/PASS] Fix the extent for the post_stmt in the loop partition (#3734)

4 years ago[TF][Op] Op where (#4045)
Wei Chen [Wed, 2 Oct 2019 20:11:30 +0000 (13:11 -0700)]
[TF][Op] Op where (#4045)

* [TF][Op] Add TF op Where

* improve tests

* add tests for vm

4 years agoFix split's last factor issue (#4044)
Cody Hao Yu [Tue, 1 Oct 2019 23:20:29 +0000 (16:20 -0700)]
Fix split's last factor issue (#4044)

4 years ago[COMMUNITY] ajtulloch -> committer (#4043)
Tianqi Chen [Tue, 1 Oct 2019 21:07:49 +0000 (14:07 -0700)]
[COMMUNITY] ajtulloch -> committer (#4043)

4 years ago[TOPI]Add op argwhere (#3994)
Wei Chen [Tue, 1 Oct 2019 20:09:21 +0000 (13:09 -0700)]
[TOPI]Add op argwhere (#3994)

* Add op argwhere

* Move shape func to _algorithm.py

* Add lint rule

* Raise exception if rank is not supportted

* move argwhere to transform

* Add argwhere example

* Fix lint

* Add 1-d support

* cleanup

* Add more dtype support

* CR comment

* Improve error message

* Docs

* raise exception

4 years ago[topi] add ARM v8.2 udot (uint8) support (#3978)
Yizhi Liu [Tue, 1 Oct 2019 15:40:16 +0000 (23:40 +0800)]
[topi] add ARM v8.2 udot (uint8) support (#3978)

* [topi] add ARM v8.2 udot (uint8) support

* fix test case

* fix common conv2d schedule

* add back fp32_time in test

* fix lint

* fix doc, add support for int32_lanes=4, signed int

* fix lint

* add ic_bn % 4 checker in schedule

4 years ago[COMMUNITY] anijain2305 -> reviewer (#4036)
Tianqi Chen [Mon, 30 Sep 2019 19:14:59 +0000 (12:14 -0700)]
[COMMUNITY] anijain2305 -> reviewer (#4036)

4 years ago[QNN] Renaming dense operator. (#4033)
Animesh Jain [Mon, 30 Sep 2019 17:24:36 +0000 (10:24 -0700)]
[QNN] Renaming dense operator. (#4033)

4 years ago[Relay][Compile_engine] Int64 shape handling for outputs. (#4031)
Animesh Jain [Mon, 30 Sep 2019 17:06:35 +0000 (10:06 -0700)]
[Relay][Compile_engine] Int64 shape handling for outputs. (#4031)

4 years agoAdd dmlc-core to the list of installed header directories. (#4035)
ndl [Mon, 30 Sep 2019 16:25:24 +0000 (18:25 +0200)]
Add dmlc-core to the list of installed header directories. (#4035)

There are dependencies on dmlc-core in TVM public API headers
(e.g. some headers include dmlc/logging.h) so it needs to be installed
as part of TVM for TVM headers to be actually usable.

4 years ago[ARITH] migrate indexdiv/mod to floordiv/mod (#4008)
Tianqi Chen [Mon, 30 Sep 2019 05:06:58 +0000 (22:06 -0700)]
[ARITH] migrate indexdiv/mod to floordiv/mod (#4008)

4 years ago[Relay] Move prelude to text format (#3939)
Logan Weber [Sun, 29 Sep 2019 23:48:10 +0000 (16:48 -0700)]
[Relay] Move prelude to text format (#3939)

* Fix parser

* Doc fix

* Add module utility functions necessary for prelude

* Implement prelude in text format

* Remove programmatically constructed prelude defs

* Fix 0-arity type conses in pretty printer and test

* Make prelude loading backwards-compatible

* Fix patterns

* Improve some prelude defs

* Fix `ImportFromStd`

It needs to also follow the "add unchecked, add checked" pattern

* Lint roller

* Woops

* Address feedback

* Fix `test_list_constructor` VM test

* Fix `test_adt.py` failures

4 years agomake tvm compilable by gcc 4.9.2 (#4032)
egolearner [Sun, 29 Sep 2019 16:21:18 +0000 (00:21 +0800)]
make tvm compilable by gcc 4.9.2 (#4032)

please see https://stackoverflow.com/a/26949099

4 years ago[AUTOTVM][DOCS] Add a link to the defining network description of auto-tuning tutoria...
Neo Chien [Sun, 29 Sep 2019 03:20:34 +0000 (11:20 +0800)]
[AUTOTVM][DOCS] Add a link to the defining network description of auto-tuning tutorial (#4023)

* [AUTOTVM][DOCS] Add a link to autoTVM tutorial to direct the details of building NN with relay

* [AUTOTVM][DOCS] Add a link to autoTVM tutorial to direct the details of building NN with relay

4 years ago[ARITH] cleanup the indexmod/div on python side (#4028)
Tianqi Chen [Sat, 28 Sep 2019 21:43:44 +0000 (14:43 -0700)]
[ARITH] cleanup the indexmod/div on python side (#4028)

4 years ago[Fix] Add more pad_mode support for onnx converter (#4029)
bindog [Sat, 28 Sep 2019 17:22:01 +0000 (01:22 +0800)]
[Fix] Add more pad_mode support for onnx converter (#4029)

* [Fix] Add more pad_mode support for onnx converter

* robustness fix

4 years agoAdd parser support for ReLU tflite operator (#4022)
Ina Dobreva [Sat, 28 Sep 2019 00:30:11 +0000 (01:30 +0100)]
Add parser support for ReLU tflite operator (#4022)

4 years agoAdditional MXNet Convolution and Deconvolution tests (#4026)
Alex Gladkov [Sat, 28 Sep 2019 00:27:48 +0000 (17:27 -0700)]
Additional MXNet Convolution and Deconvolution tests (#4026)

Add different batch sizes and channel numbers to
MXNet Convolution and Deconvolution tests.

4 years agodocs: minor spelling tweaks (#4027)
brett koonce [Fri, 27 Sep 2019 19:39:42 +0000 (14:39 -0500)]
docs: minor spelling tweaks (#4027)

4 years ago[Rust] Fix issue with CPP enums. (#4019)
Paddy Horan [Fri, 27 Sep 2019 16:41:31 +0000 (12:41 -0400)]
[Rust] Fix issue with CPP enums. (#4019)

4 years ago[DOCKER] make demo images consistent with ci images when possible. (#4024)
Tianqi Chen [Fri, 27 Sep 2019 16:34:02 +0000 (09:34 -0700)]
[DOCKER] make demo images consistent with ci images when possible. (#4024)

4 years ago[Fix]use a more intuitive way to limit the #ops in a group (#4018)
Yida Wang [Fri, 27 Sep 2019 15:59:15 +0000 (08:59 -0700)]
[Fix]use a more intuitive way to limit the #ops in a group (#4018)

* use a more intuitive way to limit the #ops in a group

* format

4 years ago[ARITH] Use explicit div mode in python. (#4014)
Tianqi Chen [Fri, 27 Sep 2019 14:45:25 +0000 (07:45 -0700)]
[ARITH] Use explicit div mode in python. (#4014)

4 years agoExposed lowered func to c++ API. (#4012)
Kimish Patel [Fri, 27 Sep 2019 00:20:00 +0000 (17:20 -0700)]
Exposed lowered func to c++ API. (#4012)

So that you can use: `build_mod_.GetFunction("get_lowered_funcs", false);`
to get lowered_funcs.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

4 years agohide psutil (#4013)
Haozheng Fan [Thu, 26 Sep 2019 22:00:14 +0000 (06:00 +0800)]
hide psutil (#4013)

4 years ago[QNN][Conv2D] Optimize lowering. (#4006)
Animesh Jain [Thu, 26 Sep 2019 17:19:42 +0000 (10:19 -0700)]
[QNN][Conv2D] Optimize lowering. (#4006)

4 years ago[TOPI][x86] Introduce schedule_injective_from_existing and unify external schedules...
Jon Soifer [Thu, 26 Sep 2019 05:48:50 +0000 (22:48 -0700)]
[TOPI][x86] Introduce schedule_injective_from_existing and unify external schedules for all targets (#3983)

* Fix extern schedule for x86

* Register x86::schedule_extern

* Fix

* Fix

* Replace extern.py with extern.h

* Introduce new generic function schedule_injective_from_existing

* Fix

* Fix

* Add back to C++

* Fix style

* Injective schedule calls local schedule_injective_from_existing

* Fix

* Remove target arg from schedule_injective_from_existing

* Fix docs

* Try to fix unit test

* Fix test

* Fix other tests

* Fix bug

4 years ago[RELAY]impose a max op limit to the op fusion pass (#4002)
Yida Wang [Wed, 25 Sep 2019 23:24:14 +0000 (16:24 -0700)]
[RELAY]impose a max op limit to the op fusion pass (#4002)

* impose a max op limit to op fusion

* use cross platform data type

4 years ago[TOPI] Move conv2d spatial pack schedule to dedicated file (#3972)
黎明灰烬 [Wed, 25 Sep 2019 23:02:19 +0000 (07:02 +0800)]
[TOPI] Move conv2d spatial pack schedule to dedicated file (#3972)

More schedules are making the conv2d.py file too large, so
we'd like to move the spatial pack schedule to dedicated file
before introducing NHWC schedule. No logic change in this patch.

4 years agoRevert "Added tesnorizeation for avx2 based gemm. (#3982)" (#4007)
Tianqi Chen [Wed, 25 Sep 2019 22:43:31 +0000 (15:43 -0700)]
Revert "Added tesnorizeation for avx2 based gemm. (#3982)" (#4007)

This reverts commit 23727eb49ea71609fc29963b996a68a14fddf79c.

4 years agoremove FLOP computation for 3rd party lib call (#4005)
Cody Hao Yu [Wed, 25 Sep 2019 20:50:42 +0000 (13:50 -0700)]
remove FLOP computation for 3rd party lib call (#4005)

4 years ago[ARITH] Refactor to use explicit div/mod functions instead of operators. (#4000)
Tianqi Chen [Wed, 25 Sep 2019 19:47:29 +0000 (12:47 -0700)]
[ARITH] Refactor to use explicit div/mod functions instead of operators. (#4000)

* [ARITH] Use explicit div/mod functions instead of operators.

* fix pooling case

4 years agoExpose llvm.nearbyint intrinsic. This is a faster alternate to rounding. (#4001)
Kimish Patel [Wed, 25 Sep 2019 18:22:54 +0000 (11:22 -0700)]
Expose llvm.nearbyint intrinsic. This is a faster alternate to rounding. (#4001)

* Expose llvm.nearbyint intrinsic. This is a faster alternate to rounding.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

* Added python binding. Added test.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

4 years agoChange Vivado install instructions to version 2018.3 (#4003)
Philipp Krones [Wed, 25 Sep 2019 17:29:23 +0000 (19:29 +0200)]
Change Vivado install instructions to version 2018.3 (#4003)

4 years agoAdded tesnorizeation for avx2 based gemm. (#3982)
Kimish Patel [Wed, 25 Sep 2019 16:52:09 +0000 (09:52 -0700)]
Added tesnorizeation for avx2 based gemm. (#3982)

* Added tesnorizeation for avx2 based gemm.

Summary:
Tensorized the same region as avx512. Names produce 16x1 int32 results.
Does by doing two sets of AVX2 instructions to do reduction on 8x4 int8
kernel with 1x4 data.

Test Plan:
on avx2 machine:
python tests/python/contrib/test_gemm_avx2_acc32.py

Reviewers:

Subscribers:

Tasks:

Tags:

* Fix lint errors. Removed commented out code.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

4 years ago[COMMUNITY] @yongwww-> reviewer (#3997)
Tianqi Chen [Wed, 25 Sep 2019 03:13:29 +0000 (20:13 -0700)]
[COMMUNITY] @yongwww-> reviewer (#3997)

4 years agoadd parser support for GREATER tflite operator (#3963)
Ina Dobreva [Wed, 25 Sep 2019 00:13:21 +0000 (01:13 +0100)]
add parser support for GREATER tflite operator (#3963)

add test for GREATER

4 years agoChanges to make tensorize work. These changes also fix the previously broken test...
Kimish Patel [Wed, 25 Sep 2019 00:08:01 +0000 (17:08 -0700)]
Changes to make tensorize work. These changes also fix the previously broken test. (#3981)

* Changes to make tensorize work. These changes also fix the previously
broken test.

Summary:
Tensorize was breaking  for a few reasons.
1)
Assert at: src/op/tensorize.cc:234 CHECK(is_one(e.region[j]->extent))
In some cases this cannot be proven, e.g.:
expected shape=[16, 4], given region=[range(min=((ax1.outer*16)/16), ext=(((((ax1.outer*16) + 15)/16) + 1) - ax1.outer)), range(min=((k.outer*4)/4), ext=(((((k.outer*4) + 3)/4) + 1) - k.outer)), range(min=0, ext=16), range(min=0, ext=4)]
The unprovable one is: ext=(((((ax1.outer*16) + 15)/16) + 1) - ax1.outer)).
This can be simplified but it is not because to simplify divide, it must
prove ax1.outer > 0 and since it is var it cannot. The fix for this to
just find all the vars in expr in relace them with some const value.

2) Equivalence between tensorized expr and one being asked to tensorize. For example,
the error would be.
TVMError: Check failed: Equal(lhs, rhs):
Failed to match the compute with TensorIntrin tensor_intrin's declaration
provided= reduce(combiner=comm_reducer(result=[(x + y)], lhs=[x], rhs=[y], identity_element=[(int16)0]), source=[(int16(data(k))*int16(kernel(((((((((k.outer.outer*64) + (k.outer.inner*2)) + k)/2)*128) + i) - (k.outer.inner*128)) - (k.outer.outer*4096)), ((((k.outer.outer*64) + (k.outer.inner*2)) + k) % 2))))], axis=[iter_var(k, range(min=0, ext=2))], where=(bool)1, value_index=0),
intrin=  reduce(combiner=comm_reducer(result=[(x + y)], lhs=[x], rhs=[y], identity_element=[(int16)0]), source=[(int16(data(k))*int16(kernel(i, k)))], axis=[iter_var(k, range(min=0, ext=2))], where=(bool)1, value_index=0)
Difference is mainly in the source part:
source=[(int16(data(k))*int16(kernel(((((((((k.outer.outer*64) + (k.outer.inner*2)) + k)/2)*128) + i) - (k.outer.inner*128)) - (k.outer.outer*4096)), ((((k.outer.outer*64) + (k.outer.inner*2)) + k) % 2))))]
source=[(int16(data(k))*int16(kernel(i, k)))], axis=[iter_var(k, range(min=0, ext=2))]
This was not being simpifiled due to compute_intrin_iter_space (map for
iter var to range) not containing leaf iter vars.

3) Here it fails with:
Check failed: is_one(Simplify(value->shape[i])): Argument b_buffer shape mismatch[16, 4] vs [(((((ax1.outer*16) + 15)/16) + 1) - ax1.outer), (((((k.outer*4) + 3)/4) + 1) - k.outer), 16, 4]
This is in buffer binding where it thinks expected and buffer bound
shape is different. Although if we could simplify expr, this would not
be the case.

Test Plan:
On skylake avx512 machine:
python tests/python/contrib/test_gemm_acc16.py

Reviewers:

Subscribers:

Tasks:

Tags:

* Implemented bounded analyzer which traverses tree and for reduce/for
statements binds the bound of the analyzer. Later this is used to
simplify expressions. Inspired from ir_mutator_with_analyzer

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

* Addressed comments.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

* Added ASF header + define macro for the header file: TVM_ARITHMETIC_IR_VISITOR_WITH_ANALYZER_H_
Some lint fixes as well.

* Relax the assumption that dom_map must always contain all leaf itervars.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

* Disable copy constructor and move to raw ptr.

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

4 years ago[ARITH] Explicitly state truncdiv/mod in pattern matching. (#3986)
Tianqi Chen [Tue, 24 Sep 2019 18:01:37 +0000 (11:01 -0700)]
[ARITH] Explicitly state truncdiv/mod in pattern matching. (#3986)

* [ARITH] Explicitly state truncdiv/mod in pattern matching.

* Fix the dependent cpp test

4 years agoadd parser support for TANH tflite operator (#3996)
Ina Dobreva [Tue, 24 Sep 2019 17:18:41 +0000 (18:18 +0100)]
add parser support for TANH tflite operator (#3996)

4 years ago[Relay] Add new IR pass CombineParallelDense (#3862)
Jon Soifer [Tue, 24 Sep 2019 08:12:11 +0000 (01:12 -0700)]
[Relay] Add new IR pass CombineParallelDense (#3862)

* Refactor to create abstract ParallelOpCombiner

* First draft of CombineParallelDense

* Begin to work on tests

* Test

* Refactor to move out more common code

* Clean up

* Fix

* Remove statics

* fix wording

* Start to add combine_parallel_op_batch

* Resolve PR comments

* Resolve PR comments

* dummy change to retrigger CI

* Change special case from bias_add to add

* Revert special case change

* Ignore units check

* dummy change to retrigger CI

* dummy change to re-trigger CI

* Improve docs

* Update docs

* Update docs

4 years agoAdd type solver unit tests for unifying quantified funcs (one bug found) (#3947)
Steven S. Lyubomirsky [Tue, 24 Sep 2019 08:05:00 +0000 (01:05 -0700)]
Add type solver unit tests for unifying quantified funcs (one bug found) (#3947)

4 years ago[Relay][Frontend][ONNX] Add Erf to ONNX frontend (#3988)
Jon Soifer [Tue, 24 Sep 2019 08:02:26 +0000 (01:02 -0700)]
[Relay][Frontend][ONNX] Add Erf to ONNX frontend (#3988)

* Add Erf to ONNX frontend

* dummy change to retrigger CI

4 years ago[DOC] Add test script starter command to document (#3993)
StandbyMe [Tue, 24 Sep 2019 05:54:56 +0000 (13:54 +0800)]
[DOC] Add test script starter command to document (#3993)

4 years ago[QNN] Fix padding changes due to #3739 (#3989)
Animesh Jain [Mon, 23 Sep 2019 15:55:04 +0000 (08:55 -0700)]
[QNN] Fix padding changes due to #3739 (#3989)

4 years ago[Rust] Fixes "common" sub crate using nightly and master (#3965)
Paddy Horan [Sun, 22 Sep 2019 23:13:07 +0000 (19:13 -0400)]
[Rust] Fixes "common" sub crate using nightly and master (#3965)

4 years agoQnn fully connected (#3910)
shoubhik [Sun, 22 Sep 2019 22:55:35 +0000 (15:55 -0700)]
Qnn fully connected (#3910)

* Qnn Dense layer.

* Reformatting code.

* Reformatting code and making the test case more readable.

* Fixing lint issues.

* Fixing test method names to pass the nose related configurations.

* Aligning the code for code style.

4 years agoAdd operator `isnan` (#3979)
Huang, Guangtai [Sun, 22 Sep 2019 16:49:10 +0000 (00:49 +0800)]
Add operator `isnan` (#3979)

* add expr `isnan`

* move to intrinsic

* doc & add to topi

* fix error from ci

4 years agoAdd docs for analysis namespace (#3985)
Zhi [Sat, 21 Sep 2019 18:44:07 +0000 (11:44 -0700)]
Add docs for analysis namespace (#3985)

4 years agoEnable miopen Group Convolution (#3987)
Peter Yeh [Sat, 21 Sep 2019 06:04:37 +0000 (23:04 -0700)]
Enable miopen Group Convolution (#3987)

* enable group conv through miopen

* linter fix

4 years agoadd bc for gfx1010 (#3984)
Peter Yeh [Sat, 21 Sep 2019 00:02:00 +0000 (17:02 -0700)]
add bc for gfx1010 (#3984)

4 years ago[Relay][Frontend][TFLite] frontend operator support: batch_to_space_nd, space_to_batc...
Neo Chien [Fri, 20 Sep 2019 21:48:55 +0000 (05:48 +0800)]
[Relay][Frontend][TFLite] frontend operator support: batch_to_space_nd, space_to_batch_nd (#3850)

* Fix unittest

* Fix pylint error: Line 915 too long

* Fix the conflicting files

* frontend operator support: space_to_batch_nd

* add test case for frontend operator support: space_to_batch_nd

* add test case for frontend operator support: space_to_batch_nd

* frontend operator support: space_to_batch_nd

* Fix ValueError: don't know how to convert type <class 'numpy.ndarray'> to node

4 years ago[Relay][Frontend][ONNX] operator support: Tile (#3941)
Neo Chien [Fri, 20 Sep 2019 19:17:11 +0000 (03:17 +0800)]
[Relay][Frontend][ONNX] operator support: Tile (#3941)

* [Relay][Frontend][ONNX] operator support: Tile

* Trigger notification

4 years ago[ARITH] Add Lowering rule for FloorDiv/Mod (#3976)
Tianqi Chen [Fri, 20 Sep 2019 17:17:04 +0000 (10:17 -0700)]
[ARITH] Add Lowering rule for FloorDiv/Mod (#3976)

* [ARITH] Add Lowering rule for FloorDiv/Mod

* add comment about constant folding

4 years agoAdd support for MXNet pad operator. (#3739)
Alex Gladkov [Fri, 20 Sep 2019 03:49:34 +0000 (20:49 -0700)]
Add support for MXNet pad operator. (#3739)

MXNet pad is described at:
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.pad

Add support for parameter 'None' in MXNet slice operator.

MXNet 'slice' is described at
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.slice

Add support for MXNet cos, sin, arctan

MXNet 'cos' is described at
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.cos

MXNet 'sin' is described at
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.sin

MXNet arctan is descirbed at
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.arctan

Add support for MXNet 1D Convolution and 1D Deconvolution

MXNet convolution is described at:
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.Convolution

MXNet Deconvolution is described at:
https://mxnet.incubator.apache.org/api/python/symbol/symbol.html#mxnet.symbol.Deconvolution

4 years ago[QNN] Renaming tests to follow the Relay nomenclature. (#3975)
Animesh Jain [Fri, 20 Sep 2019 00:06:44 +0000 (17:06 -0700)]
[QNN] Renaming tests to follow the Relay nomenclature. (#3975)

4 years ago[TOPI] Add proper scheduling for dense on CUDA (#3923)
Cody Hao Yu [Thu, 19 Sep 2019 21:23:20 +0000 (14:23 -0700)]
[TOPI] Add proper scheduling for dense on CUDA (#3923)

* add proper scheduling for dense on CUDA

* add fallback config and fix unit test

* fix corner cases

* refactoring

* fix bias and add testcase

* let fusion happen

4 years agoRemove GTest cmake flag from install docs (#3953)
Meghan Cowan [Thu, 19 Sep 2019 17:36:30 +0000 (10:36 -0700)]
Remove GTest cmake flag from install docs (#3953)

4 years agoadjust pylint output (#3973)
Ina Dobreva [Thu, 19 Sep 2019 17:33:26 +0000 (18:33 +0100)]
adjust pylint output (#3973)

adjust pylint output to show file location to make it possible to locate errors

4 years ago[Relay] Legalize and AlterOpLayout for Int8 Intel. (#3961)
Animesh Jain [Thu, 19 Sep 2019 04:54:01 +0000 (21:54 -0700)]
[Relay] Legalize and AlterOpLayout for Int8 Intel. (#3961)

4 years ago[ARITH] Introduce base-class IRMutatorWithAnalyzer for scope dependent analysis ...
Tianqi Chen [Thu, 19 Sep 2019 04:02:30 +0000 (21:02 -0700)]
[ARITH] Introduce base-class IRMutatorWithAnalyzer for scope dependent analysis (#3969)

4 years ago[Relay] Add shape check for ConcatenateRel and StackRel (#3699)
Ligeng Zhu [Wed, 18 Sep 2019 23:03:09 +0000 (19:03 -0400)]
[Relay] Add shape check for ConcatenateRel and StackRel (#3699)

* [Relay] add shape check for concat

* [Relay] add shape check for stack

* add test case for shape mismatch

* [typo] add the missing assert

* fix lint errors.

* replace int with size_t.

* statically cast param->axis to size_t.

* switch to run_infer_type.

* fix checking for negative index

* add static_cast for param->axis

* merge to latest tvm

* fix lint error

* Fix an error with negative index.

* Update transform.h

* Update transform.cc

4 years ago[TVM][AutoTVM] cast filepath arguments to string (#3968)
Neo Chien [Wed, 18 Sep 2019 15:12:32 +0000 (23:12 +0800)]
[TVM][AutoTVM] cast filepath arguments to string (#3968)

4 years ago[Relay] Keras frontend upsample and 1 channel conv2d fixes (#3937)
Josh Fromm [Wed, 18 Sep 2019 07:40:31 +0000 (00:40 -0700)]
[Relay] Keras frontend upsample and 1 channel conv2d fixes (#3937)

* Fix upsample layout in keras frontend.

* Fixed group conv being used instead of conv when channels=1

* Add new conv2d test to catch bugs when channels=1.

4 years agoAdding support to check if an attribute is present or not without having to get the...
shoubhik [Tue, 17 Sep 2019 23:39:34 +0000 (16:39 -0700)]
Adding support to check if an attribute is present or not without having to get the value (#3957)

* Adding support to check if an attribute is present or not without having to get the value.

* - Renaming the method to more appropriate name.

4 years ago[Vulkan] Minor optimization for deferred token lookups. (#3960)
Andrew Tulloch [Tue, 17 Sep 2019 16:34:33 +0000 (09:34 -0700)]
[Vulkan] Minor optimization for deferred token lookups. (#3960)

Use a hash map keyed on the descriptor set to avoid bad asymptotic behaviour.

4 years agoMore friendly error msg; Fix Android Demo LLVM ver (#3962)
Junru Shao [Tue, 17 Sep 2019 16:33:30 +0000 (09:33 -0700)]
More friendly error msg; Fix Android Demo LLVM ver (#3962)

4 years ago[TOPI] Setting up AutoTVM template for Intel Int8 conv2D (#3955)
Animesh Jain [Mon, 16 Sep 2019 21:52:28 +0000 (14:52 -0700)]
[TOPI] Setting up AutoTVM template for Intel Int8 conv2D (#3955)

4 years ago[TOPI] Improve conv2d_transpose schedule on X86 and CUDA (#3948)
Yuwei Hu [Mon, 16 Sep 2019 20:03:32 +0000 (13:03 -0700)]
[TOPI] Improve conv2d_transpose schedule on X86 and CUDA (#3948)

* improve conv2d_transpose x86 performance by reusing conv2d schedule

* parallelize across batches to make large-batch conv2d and conv2d_transpose faster

* improve doc for autotvm.task.space.FallbackConfigEntity.fallback_with_reference_log

* add fallback schedule for schedule_conv2d_transpose_nchw_cuda

* fix pylint

* fix pylint

* unify conv2d_transpose declaration in topi.nn and topi.x86