Samuel [Wed, 11 Mar 2020 03:08:48 +0000 (08:38 +0530)]
[TFLITE]Activation functions support (#4978)
* [TFLITE]elu, leaky_relu, lrn, log_softmax activation functions
* removed ops present in pr 4805
* review_comments updated
Wei Pan [Wed, 11 Mar 2020 02:16:59 +0000 (19:16 -0700)]
[CodeGen][CUDA] Enhance CUDA codegen for SelectNode (#4983)
- This patch allows CUDA backend to emit correct code for
selects with vector conditions, which may be produced
by floordiv op lowering etc..
- This already works for llvm BE, as llvm select instruction
supports vector conditions.
Signed-off-by: Wei Pan <weip@nvidia.com>
notoraptor [Wed, 11 Mar 2020 01:24:04 +0000 (21:24 -0400)]
[topi][relay] new PR to re-add tan to TVM (#5025)
* Add relay operation relay.op.tan.
* Update tan implementation in TVM.
* Update tests.
* Add shape function for tan.
* Add missing main test to python/frontend/tensorflow/test_forward.
* Revert, back to sin/cos.
* Revert "Revert, back to sin/cos."
This reverts commit
4da5b503b921585ba9d80944b29136142b575c40.
* Fix implementation of tan in cuda. Do not support tan for float16.
Simplify topi/tests/python/test_topi_math. Add testing for tan with float32 and float64.
Finally implement tan as sin/cos in llvm.
Tianqi Chen [Tue, 10 Mar 2020 18:46:56 +0000 (11:46 -0700)]
[CI] Temporary disable rust test (#5029)
masahi [Tue, 10 Mar 2020 17:59:09 +0000 (02:59 +0900)]
[Torch] Add initial control flow support (#4964)
* Add support for prim::If and prim::Loop with test cases
* rebase and fix tests
* add some comments
* simplifying, fix float cast
* parse -> convert
* recursivly retrive ops in get_all_op_names
* use multiple return values from block correctly, simplify loop convert
* choose dtype properly for zeros and ones
* simplifying, replace convert_inputs with _get_relay_input_vars
* fix for while loop with non input dependent init cond
* add assert on loop var update
* move the condition around
* better testing for seg models
* rebase fix, disable inception v3 in quant test as it is too slow to
load with torch-1.4 + torchvision 0.5
* simplify and add more comparison op converter
Yao Wang [Tue, 10 Mar 2020 09:37:12 +0000 (02:37 -0700)]
Revert "[topi][relay] add operation tan to TVM (#4938)" (#5017)
This reverts commit
d992468d80af816f0413fc43c2ee1c02f7fe19c3.
lhutton1 [Tue, 10 Mar 2020 08:10:07 +0000 (08:10 +0000)]
[RELAY] Remove primitive attribute from composite function (#5014)
* A composite function should not be primitive since we still may need to perform passes on it.
Change-Id: If62d06d265234861a6ec0df7749dc1c339c1055c
ANSHUMAN TRIPATHY [Tue, 10 Mar 2020 04:23:18 +0000 (09:53 +0530)]
Early checking added and new test cases added for schedule fuse (#5010)
* [1] New test case added for fuse
* [2] New test case added for fuse
* [3] New test case added for fuse
* [4] New test case added for fuse
* [5] Early check added
jmorrill [Tue, 10 Mar 2020 02:39:41 +0000 (19:39 -0700)]
Implemented kDLCPUPinned (cudaMallocHost) (#4985)
* implement kDLCPUPinned
* Fix line endings
* Fix whitespace for linter
* cleanup up allocdataspace method
Jared Roesch [Tue, 10 Mar 2020 02:35:20 +0000 (19:35 -0700)]
Revive the Rust + SGX refactor (#4976)
* Add Nick's changes's squashed
* Fix frontend compilation
* Re-enable Rust CI
* Add changes with conflicted badly
* Restructure import_module! macro in order to avoid unstable features
* Kill old unstable feature enablement
* Refactor common to use new APIs
* Move the code to stable
* Fix warning
Co-authored-by: Nick Hynes <nhynes@oasislabs.com>
masahi [Tue, 10 Mar 2020 01:36:50 +0000 (10:36 +0900)]
[REDO AFTER GH BUG] Add support for quantized models via QNN (#5016)
This reverts commit
f346c60287b50950275e20db9e6d84b3fc568a00.
Animesh Jain [Mon, 9 Mar 2020 20:14:58 +0000 (13:14 -0700)]
Revert "[Torch, QNN] Add support for quantized models via QNN (#4977)" (#5013)
This reverts commit
fc7f0783940c362bf48cd46817956381196201e2.
雾雨魔理沙 [Mon, 9 Mar 2020 19:50:23 +0000 (12:50 -0700)]
typo (#5008)
Liangfu Chen [Mon, 9 Mar 2020 18:21:28 +0000 (02:21 +0800)]
[Runtime] MISRA-C compliant TVM runtime (#3934)
* implement of MISRA-C compliant TVM runtime;
* working on bundle_deploy_c demo
* move header files into include dir
* fix compatibility issues
* fix compatibility issues
* resolve most of the warnings and errros
* implement c_backend_api
* introduce bridge
* working well
* move to header files and bundle.c into src/runtime/crt
* clean up
* satisfy linter
* clean up
* test with the cat image
* remove synset
* refactoring
* refactoring
* refactoring
* initial crt_runtime_api.c
* improved compatibility with g++
* using exposed API in c_runtime_api.h
* call from c_runtime_api.h
* clean up
* lint
* merge into apps/bundle_deploy directory
Change-Id: I51904db81b8589e65d107d8ca77b47452e3812b5
* make the demo runs in ci
Change-Id: I2c24f8b592508833d3555311c2b24d1931f19385
* address review comments
Change-Id: I027ddff15c31fb4da0bd0e461427dce619de1f93
* release
Change-Id: I5ad5bb8426468aac9fc8d074e56ddea358a7fd91
* fix ci testing
Change-Id: Ic2e82fb3051b6c254ef32a964f976b61e3e5fe4d
* add test case for misra c runtime
Change-Id: Ie0dfd0ade6be4665b4384db7d260a6c69b35010f
* fread files in testing to avoid calling xxd
Change-Id: Ie7fbc16b4b0b9509918d986a841f443900813bef
Pasquale Cocchini [Mon, 9 Mar 2020 17:09:13 +0000 (10:09 -0700)]
[VTA][Chisel,de10nano] Chisel fixes and de10nano support (#4986)
* [VTA][de10nano] Enable user defined target frequency.
Issue:
The VTA target frequency on the DE10-Nano is hardcoded to 50MHz
unnecessarily limiting performance.
Solution:
Add a PLL to the FPGA sub-system along with support for the
selection of a user specified frequency at build time. The board
successfully builds and runs at 100MHz.
* Added a PLL in the soc_system.tcl platform designer generator
script.
* Modified the Makefile to automatically set the target frequency
from that specified in the pkg_config.py file.
* Modified the Makefile to generate a bitstream with an RBF
format that enables programming of the FPGA directly from
the on-board processor. Specifically, the RBF is generated in
FastParallel32 mode with compression, which corresponds to the
default MSEL switch setting on the board, i.e. 01010.
* Added a false path override to file set_clocks.sdc to turn off
unconstrained path warnings on the VTA pulse LED.
* [VTA][TSIM] Add more debug and tracing options.
* Modified Makefile to change default config to DafaultDe10Config.
* Added option in Makefile to produce more detailed tracing
for extra observability in debugging complex scenarios.
* Added option in Makefile to produce traces in FST format which
are 2 orders of magnitude smaller, although much slower to
generate.
* Added option in Makefile to build the simulator with GCC address
sanitizer.
* Modified Makefile to not lint the scala code by default avoiding
unintended wrong indentation. Linting should be better performed
manually on a per-need basis.
* [VTA][de10nano] Enable remote programming of FPGA.
Issue:
The Cyclone V FPGA on board of the DE10-Nano can only be programmed
using the JTAG port, which is a limiting option for users.
Solution:
Add support for the remote programming of the FPGA implementing
the FPGA programming manager protocol published in the Cyclone V
user manual.
* Added file de10nano_mgr.h implementing an FPGA manager class
that supports handling of control and status registers as well
as a push-button option to program the FPGA. The class can be
easily extended to include more registers if needed.
* Used an instance of the FPGA manager to implement function
VTAProgram also warning users when incompatible bitstream
files are used.
* Registered VTAProgram as a global function and modified
the program_bitstream python class to use it.
* [VTA][de10nano] Enhance de10nano runtime support.
Issue:
The de10nano target has incomplete, non-working support
for runtime reconfiguration, bitstream programming, and
examples of usage.
Solution:
Complete runtime support for the de10nano target.
* Modified VTA.cmake to comment out a default override for
VTA_MAX_XFER to 21 bit wide.
* Modified VTA.cmake to add needed de10nano include dirs.
* Modified relevant files to support de10nano same way as
other targets for VTA runtime reconfiguration and FPGA
programming.
* Added test_program_rpc.py example as a runtime FPGA
programming example. Note that unlike the pynq target
no bitstream is either downloaded or programmed when
the bitstream argument is set to None.
* Cosmetic changes to vta config files.
* [VTA][Chisel] LoadUop FSM bug fix.
Issue:
The LoadUop FSM incorrectly advances the address of the next
uop to read from DRAM when the DRAM data valid bit is deasserted
and asserted at the end of a read. This is caused by a mismatch
in the logic of the state and output portions of the FSM.
This is one of two issues that was gating the correct operation
of VTA on the DE10-Nano target.
Solution:
Modify the logic of the output section of the FSM to include
a check on the DRAM read valid bit or fold the output assignemnt
into the state section.
* Folded the assignemnt of the next uop address in the state
section of the FSM.
* [VTA][Chisel] Dynamically adjust DMA tranfer size.
Issue:
In the DE10-Nano target and possibly in others, DMA transfers that
cross the boundaries of memory pages result in incorrect reads and
writes from and to DRAM. When this happens depending on different
input values, VTA loads and stores exhibit incorrect results for
DMA pulses at the end of a transfer. This is one of two issues that
were gating the DE10-Nano target from functioning correctly, but may
affect other Chisel based targets.
Solution:
Add support for dynamically adjustble DMA transfer sizes in load
and store operations. For a more elegant and modular implementation
the feature can be enabled at compile time with a static constant
that can be passed as a configuration option.
* Modified the load and store finite state machines to dynamically
adjust the size of initial and stride DMA transfers. The feature
is enabled by default by virtue of the static constant
ADAPTIVE_DMA_XFER_ENABLE.
* [VTA][Chisel] Improve FSIM/TSIM/FPGA xref debug.
Issue:
Cross reference between FSIM, TSIM, and Chisel based FPGA traces
is an invaluable instrument that enables fast analysis on FSIM,
and analysis/debug on TSIM and FPGA, especially for complex flows
like conv2d or full inferences. Currently this cannot be done
easily since a suitable reference is missing. The clock cycle
event counter cannot be used since it is undefined in FSIM and
not reliable between TSIM and FPGA because of different latencies.
Solution:
Introduce a new event counter that preserves a program order across
FSIM, TSIM, FPGA. We propose adding the accumulator write event
counter in the Chisel EventCounter class and a simple instrumentation
in the FSIM runtime code. Note that this technique enabled finding the
Chisel issues reportes in the PR, which would have been otherwise
far more difficult.
* Added the acc_wr_count event counter and changed interfaces
accordingly.
* [VTA][de10nano] Comply with linting rules.
* [VTA] Appease make lint.
* [VTA] Disable pylint import not top level error.
* [VTA][Chisel,de10nano] Linting changes.
* Use CamelCase class names.
* Use C++ style C include header files.
* Add comments to Chisel makefile.
* [VTA][de10nano]
* Reorder C and C++ includes in de10nano_mgr.h.
* Restore lint as default target in Chisel Makefile.
* [VTA][de10nano] Do not use f string in pkg_config.py.
* [VTA][de10nano] Remove overlooked f strings in pkg_config.py.
* [VTA][de10nano] Fixed typo.
* [VTA][TSIM] Check if gcc has align-new.
* [VTA][Chisel] Make adaptive DMA transfer default.
* [VTA][RPC] Renamed VTA_PYNQ_RPC_* to VTA_RPC_*.
Issue:
With more FPGA targets coming online the initial method of
using individual environment variables to specify target IP and port
does not scale well.
Solution:
Use a single VTA_RPC_HOST, VTA_RPC_PORT pair to be changed
every time a different target is used. For instance in a script
used to benchmark all targets.
* Replaced every instance of VTA_PYNQ_RPC_HOST and VTA_PYNQ_RPC_PORT
with VTA_RPC_HOST and VTA_RPC_PORT, respectively.
* [VTA][Chisel] Comply with new linter.
ANSHUMAN TRIPATHY [Sun, 8 Mar 2020 16:01:18 +0000 (21:31 +0530)]
Docs and Readme updated as per new namespace change (#4989)
Haichen Shen [Sun, 8 Mar 2020 11:51:02 +0000 (04:51 -0700)]
lower plevel of conv2d winograd on cuda (#4987)
Michal Jamroz [Sun, 8 Mar 2020 06:31:11 +0000 (07:31 +0100)]
kill from tvm import te (#5007)
Co-authored-by: Michal Jamroz <jamroz@chem.uw.edu.pl>
zhengdi [Sun, 8 Mar 2020 06:27:56 +0000 (14:27 +0800)]
[FRONTEND][TENSORFLOW] support multiply outputs (#4980)
* [FRONTEND][TENSORFLOW] support multiply outputs
* [TENSORFLOW][TEST] add tf_testing.AddShapesToGraphDef test
* update frontend test
* retrigger CI
lfengad [Sun, 8 Mar 2020 04:46:12 +0000 (12:46 +0800)]
Add BN support with run-time mean and variance calculation (#4990)
Liangfu Chen [Sat, 7 Mar 2020 18:42:44 +0000 (02:42 +0800)]
[VTA][Chisel] Change Scala Linter scalafmt => scalastyle (#4998)
* scalafmt => scalastyle
Change-Id: Ifc590e7cb63585f35dfdc9efcf3c6287b1afb1dd
* scalafmt => scalastyle
Change-Id: I8aff2632dadda05d2896e28bdaf6f780a160a15a
* add indentation constraint
Change-Id: Ibeb00c11a5718ea47322ea2b82e757828af8af91
* trigger ci again
Tianqi Chen [Sat, 7 Mar 2020 07:19:38 +0000 (01:19 -0600)]
[COMMUNITY] @optima2005 -> reviewer (#5004)
Zhi [Sat, 7 Mar 2020 04:30:13 +0000 (20:30 -0800)]
[relay][external codegen] outline and inline lifted functions for external codegen (#4996)
* outline and inline lifted functions for external codegen
* add batch_norm test
* test batch_norm inline
Thomas Viehmann [Sat, 7 Mar 2020 00:44:24 +0000 (01:44 +0100)]
fix ROCm strategy for winograd conv selection (#5001)
Jeremy Johnson [Sat, 7 Mar 2020 00:40:50 +0000 (00:40 +0000)]
[Frontend][Torch] Check graph inputs match expected (#4992)
* [Frontend][Torch] Check graph inputs match expected
* error/warn when missing/unused graph inputs
* Change to use get_graph_input_names
pyjhzwh [Sat, 7 Mar 2020 00:39:33 +0000 (19:39 -0500)]
Fix stride default value None in torch.nn.functional.avg_pool (#4984)
* fix unordered dictionary problem for python version 3.5
* modify style
* default value of stride in torch.nn.functional.avg_pool is None
* delete prev modifications
* add testcase for nn.functional.avg_pool2d
Jon Soifer [Fri, 6 Mar 2020 23:54:03 +0000 (15:54 -0800)]
[Runtime] Export GraphRuntime in tvm_runtime.dll (#5002)
Co-authored-by: Jon Soifer <jonso@microsoft.com>
Yao Wang [Fri, 6 Mar 2020 01:17:35 +0000 (17:17 -0800)]
[topi][relay] add operation tan to TVM (#4938)
* Add relay operation relay.op.tan.
* Update tan implementation in TVM.
* Update tests.
* Add shape function for tan.
* Add missing main test to python/frontend/tensorflow/test_forward.
* Revert, back to sin/cos.
* Revert "Revert, back to sin/cos."
This reverts commit
4da5b503b921585ba9d80944b29136142b575c40.
* Fix implementation of tan in cuda. Do not support tan for float16.
Simplify topi/tests/python/test_topi_math. Add testing for tan with float32 and float64.
Try again to implement tan as sin/cos in llvm.
Tianqi Chen [Fri, 6 Mar 2020 01:15:19 +0000 (19:15 -0600)]
Adding Hua Jiang as reviewer. (#4993)
Zhi [Thu, 5 Mar 2020 23:56:44 +0000 (15:56 -0800)]
hotfix gcn tutorial fail (#4994)
Zhi [Thu, 5 Mar 2020 15:37:26 +0000 (07:37 -0800)]
refactor build module to take IRModule (#4988)
Tianqi Chen [Thu, 5 Mar 2020 00:35:38 +0000 (18:35 -0600)]
Conditions updated to cover better user scenarios (#4951)
* Conditions updated to cover better user scenarios
* [1] New test case added
* [2] New test case added
* [3] Proper variable name used
* [4] Review Comments handled
* [5] Review comments handled
* [6] Review comments handled
Tianqi Chen [Thu, 5 Mar 2020 00:34:08 +0000 (18:34 -0600)]
Fix gpu not found when running TVM docker (#4975)
Animesh Jain [Wed, 4 Mar 2020 19:24:56 +0000 (11:24 -0800)]
[Torch, QNN] Add support for quantized models via QNN (#4977)
* qnn support initial import
* fix upsampling num input
* imagenet tests added
* add qunatized module tests
* quantized module tests working
* imagenet test working
* fix lint
* remove top level torch import to fix ci error
* disable lint warning on outside toplevel import
* revert parse -> convert change
* add comments to qnn translation
* address comments, add sample outputs
* add more comments
* refactor bias add and requantize step
Lianmin Zheng [Wed, 4 Mar 2020 18:52:02 +0000 (10:52 -0800)]
Tighten split's extent (#4931)
* Set split node's range to minimum of ext and split factor or split nparts, but only when PassDownDomain is called with allow_missing == false, i.e. by InferBound. Add a helper PassUpThreadBinding() to get a map telling whether an IterVar has at least one leaf IterVar deriving from it binding to a thread. Add two unit tests.
* Enhance LoopVectorizer for vectorizing by 0. Found at least one case from testtopi/tests/python/test_topi_transform.py::test_tile.
* Revert changes vectorize_loop.cc; when parent's ext is zero, set split's range to the factor or nparts.
* Update with comments.
* Refactor the ext tightening predicate.
* Fix reference types.
* Integrate tvm.te changes.
* Trivial comment change to trigger CI.
* Trivial comment correction to trigger testing.
pyjhzwh [Wed, 4 Mar 2020 09:40:37 +0000 (04:40 -0500)]
[Torch] fix unordered dictionary problem for python version under 3.6 (#4982)
* fix unordered dictionary problem for python version 3.5
* modify style
Zhi [Tue, 3 Mar 2020 09:30:28 +0000 (01:30 -0800)]
[Relay] Target annotation for external codegen (#4933)
* op based external compiler annotation
* Use TVM register directly
* Small fix
* test graph
Co-authored-by: Cody Yu <comaniac0422@gmail.com>
Leandro Nunes [Tue, 3 Mar 2020 03:41:31 +0000 (03:41 +0000)]
Pin xgboost dependency version to 0.90 (#4965)
* Sets xgboost dependency to be 0.90, preventing
segfaults during TVM python unit tests execution
* This is discussed in issue #4953
maheshambule [Mon, 2 Mar 2020 20:57:40 +0000 (02:27 +0530)]
[Frontend] [Tensorflow] ReadVariableOp operator support (#4952)
* tf frontend read variable op
* pylint fix
* tf frontend freezed graph pruned ops
Zhi [Mon, 2 Mar 2020 06:23:46 +0000 (22:23 -0800)]
[Relay][Pass] Add inline pass (#4927)
* add inline pass
* IsInline -> IsMarkedInlined
* fix comment
Ethan-Yan27 [Mon, 2 Mar 2020 06:00:08 +0000 (14:00 +0800)]
[Doc]refine the example description of max/min/sum/tag_scope (#4974)
Samuel [Mon, 2 Mar 2020 03:16:46 +0000 (08:46 +0530)]
[TFLITE]FLOOR_MOD & FLOOR_DIV support (#4971)
* TFLite Floor_div & floor_mod parsing code
* Review comment updated
Animesh Jain [Sun, 1 Mar 2020 21:57:24 +0000 (13:57 -0800)]
[Relay][FastMath] Relay pass to use fast exp/tanh (#4873)
* [Relay][FastMath] Relay pass to use fast exp/tanh
* Adding required_pass to the tests.
* FastMath test changes.
zhengdi [Sun, 1 Mar 2020 16:33:59 +0000 (00:33 +0800)]
[TOPI] fix docs errors (#4973)
masahi [Sun, 1 Mar 2020 00:51:49 +0000 (09:51 +0900)]
[Torch] Upsampling op support and enable registering a user defined op conversion map (#4961)
* add custom conversion map
* add roi align test using custom convert map
* refactor test
* add support for upsampling op and test on segmentation models
* remove redundant no_grad
* add upsampling test case
* make the default custom map None, instead of empty dict
* updated tests, remove packaging and drop PT 1.2 support
* add better support for aten::to and tests
* add a note on dilation in x86
jmorrill [Sat, 29 Feb 2020 21:52:22 +0000 (13:52 -0800)]
Added CopyFromBytes and CopyToBytes convenience methods to NDArray. Fixed typos. (#4970)
* Added CopyFromBytes and CopyToBytes convenience methods. Fixed typos.
* Removed unneed argument check
* Use TVMArrayCopyFrom/ToBytes methods
* Moved CopyFrom/ToBytes to ndarray.cc
* CopyToBytes impl was using CopyFromBytes. Fixed
* changed inline to TVM_DLL
* Used impl from TVMArrayCopyTo/FromBytes into NDArray CopyTo/FromBytes
* Move implementation of all CopyFrom/ToBytes into a common impls
* make arg const
* simplify method impl
Ina Dobreva [Sat, 29 Feb 2020 21:30:16 +0000 (23:30 +0200)]
[Frontend][TFLite] Add parser support for l2_normalization (#4966)
* [Frontend][TFLite] Add parser support for l2_normalization
* TF doesn't provide uint8 support
* TFL does the normalization only if it's over the last axis
* TFL uses only the default value for expilon
* Change error message
Tianqi Chen [Fri, 28 Feb 2020 21:20:04 +0000 (13:20 -0800)]
[DOCS] Fix sphinx precheck (#4967)
* [DOCS] Fix sphinx precheck
* ignore keras warnings
* Remove more warnings
masahi [Fri, 28 Feb 2020 02:59:15 +0000 (11:59 +0900)]
[Relay, Torch] Clean up and refactor PyTorch frontend (#4944)
* The initial import of refactored implementation, all tests passed
* enable mobilenet v2 test
* minor cleanup
* reorg
* fix lint
* use input names that come with torch IR
* fix typo
* introduce parse_operators
* fix lint
* add _ prefix
Tianqi Chen [Fri, 28 Feb 2020 02:57:18 +0000 (18:57 -0800)]
[CI] Add pre-check script to check sphinx doc build. (#4956)
Introduce the check stage to the unittest stage for now
so we don't have to rebuild CI images.
As we make additional CPU images to make use of the sphinx,
consider move it to an earlier stage.
Cody Yu [Fri, 28 Feb 2020 02:57:07 +0000 (18:57 -0800)]
fix doc warning (#4959)
Tianqi Chen [Thu, 27 Feb 2020 22:27:37 +0000 (14:27 -0800)]
[DOCS] Sphinx -- Introduce alias detection. (#4954)
* [DOCS] Sphinx -- Introduce alias detection.
Background: some of our namespaces import function from another
namespace. For example tvm.te imports most of the operators from tvm.tir.
Previously we manually exclude these aliases from the doc.
However that means we can not link them by the alias name.
This PR adds a sphinx callback plugin to detect such aliases, and create a rubric block
on the button of its current docstring `Alias of the original class`.
It is done in a way so that we can refer to the generated docs.
We also fixed a few docs errors.
* Fix most of the issues
Jon Soifer [Thu, 27 Feb 2020 21:32:16 +0000 (13:32 -0800)]
[Runtime] Fix TVM_DLL_EXPORT_TYPED_FUNC to work on Windows (#4955)
* [Runtime] Fixed TVM_DLL_EXPORT_TYPED_FUNC to work on Windows
* fix style
Co-authored-by: Jon Soifer <jonso@microsoft.com>
Cody Yu [Thu, 27 Feb 2020 20:38:54 +0000 (12:38 -0800)]
Move Ops in relay.op.contrib.* (#4942)
* move contrib
* lint
* address comment
* address comment
maheshambule [Thu, 27 Feb 2020 19:40:30 +0000 (01:10 +0530)]
[Frontend] [MXNet] make_loss operator support (#4930)
* make_loss test case
* mxnet frontend make_loss support
* added comment for make_loss
* pylint fix
* Update mxnet.py
zhengdi [Thu, 27 Feb 2020 16:43:10 +0000 (00:43 +0800)]
[RELAY] fix error message (#4945)
Tianqi Chen [Thu, 27 Feb 2020 05:10:47 +0000 (21:10 -0800)]
[REFACTOR][PY][API-CHANGE] Remove legacy python files. (#4943)
* [REFACTOR][PY][API-CHANGE] Remove legacy python files.
Remove legacy python files.
Use the te namespace for most of the tensor expression primitives.
- tvm.create_schedule -> tvm.te.create_schedule
- tvm.placeholder -> tvm.te.placeholder
- tvm.compute -> tvm.te.compute
* Remove top-level exposures.
Tianqi Chen [Thu, 27 Feb 2020 00:44:09 +0000 (16:44 -0800)]
[TUTORIAL] Fix tedd tutorial after strategy change (#4947)
* [TUTORIAL] Fix tedd tutorial after strategy change
* Remove scale, remove link to external gdoc
Hua Jiang [Wed, 26 Feb 2020 23:52:28 +0000 (15:52 -0800)]
[VTA] YoloV3 Support (#4887)
* [VTA] YoloV3 Support
Issue:
YoloV3 use some operator and logic that not get good support by
existing vta logic, like nn.pad, upsample, and 255 output channel.
Solution:
add related logic to let darknet YoloV3 can running on VTA
* Fix small(0, or 1 heigh/width) detect frame issue.
* add yolov3-tiny turtorial
* add os import
* address review comments.
* rename tutorial file with a short name.
* rename deploy_vision_on_vta.py into deploy_classification.py.
* address review comment, fix plint eror in deploy_detection.py
Ina Dobreva [Wed, 26 Feb 2020 23:43:11 +0000 (01:43 +0200)]
[Frontend][TFLite] Add parser support for 'square' operator (#4915)
* [Frontend][TFLite] Add parser support for square operator
* Add parser implementation
* Add relevant tests
* Note: 'square' is an unary elemwise operator but it's added separately
in the parser since there is no Relay 'square' op
and instead we have to use 'multiply'
* Change relay operation from 'multiply' to 'power'
* Remove a redundant line as requested
Nick Hynes [Wed, 26 Feb 2020 21:44:32 +0000 (13:44 -0800)]
Remove SGX toolchain installation from CI Dockerfile (#4948)
Zhi [Wed, 26 Feb 2020 18:01:27 +0000 (10:01 -0800)]
[Relay][pass] call graph for relay (#4922)
* call graph for relay
* CallGraphEntryNode->CallGraphEntry, __getitem__->print_var
* fix typos
Alex Wong [Wed, 26 Feb 2020 05:41:53 +0000 (21:41 -0800)]
[Tutorial] Add a tutorial for PyTorch (#4936)
* Add a tutorial for PyTorch
* Fix sphinx formatting, add version support
* Remove space
* Remove version check
* Some refactoring
* Use no grad
* Rename input
* Update cat img source
Haichen Shen [Wed, 26 Feb 2020 05:39:16 +0000 (21:39 -0800)]
Bump up dev version (#4941)
* bump up dev version
* update
Neo Chien [Wed, 26 Feb 2020 04:23:27 +0000 (12:23 +0800)]
[DOCS] Fix Sphinx Warning: the target found for cross-reference (#4925)
* [DOCS] Fix Sphinx Warnings: the target found for cross-reference warnings
* Fix the warning: undefined label
yongfeng-nv [Wed, 26 Feb 2020 04:21:08 +0000 (23:21 -0500)]
Tensor Expression Debug Display (TEDD) (#4651)
* Initial TEDD for publishing.
* 1. Fix lint issues. 2. Print intrin.body instead of intrin.name in Schedule Tree. 3. Add examples to top level APIs' comments. 4. Top level APIs don't print Dot string by default, unless outputdotstring is True.
* Fix more lint issues.
* Update top level API argument names and use raw strings to avoid Python lint warnings in the tests.
* Disable TEDD verification, but keep TE construction.
* Stop importing tedd to avoid failure.
* Separate data extraction and visualization. 1. Add API tedd.dump_json(schedule) to dump a json string for the schedule data for visualization. 2. Update tests. 3. Add a tutorial. 4. Add range information to IterVars.
* Update TEDD about InferBound failure. 1. TEDD doesn't call inferbound for DFG. 2. Update tutorial about the InferBound failure.
* 1. Import IPython only if SVG is requested. This is required to fix a tutorial publishing faliure. 2. Fix test about IPython availability check.
雾雨魔理沙 [Wed, 26 Feb 2020 01:35:49 +0000 (17:35 -0800)]
[WIP] Fixing an Infinite Loop case in UnmatchedChecker. (#4881)
* save
* save
* remove
* remove cerr
Yida Wang [Tue, 25 Feb 2020 21:14:58 +0000 (13:14 -0800)]
[Fix] remove unnecessary spliting in the cached chunk (#4935)
* remove unnecessary spliting in the cached chunk
* remove unnecessary spliting in the cached chunk
wpan11nv [Tue, 25 Feb 2020 11:32:21 +0000 (03:32 -0800)]
[LLVM] Fix build breaks from StringRef changes (#4923)
- llvm::StringRef to std::string conversion is explicit now.
Signed-off-by: Wei Pan <wpan11nv@nvidia.com>
Jon Soifer [Tue, 25 Feb 2020 04:53:24 +0000 (20:53 -0800)]
[Relay][External Codegen] Support data types for CSourceModuleCodegen args and output (#4934)
* Support int args and no extra buffers
* Fixes
* remove testing code
* fix style
* more style
* use const args
* style
Co-authored-by: Jon Soifer <jonso@microsoft.com>
Alex Wong [Tue, 25 Feb 2020 04:14:45 +0000 (20:14 -0800)]
[Relay] Add a PyTorch to Relay Parser (#4497)
* Add a PyTorch to Relay parser
* Add alexnet, googlenet, mnasnet, shufflenet wip
* Fix lint
* Remove fix for shufflenet
* Lower check
* Pull changes from neo-ai/tvm changes
* Remove commented out section
* Use infer_shape everywhere
* Change back to using trace instead of path in from_pytorch
* Parse state_dict to add param names
* Umbrella single_op under test_forwards
* Remove print and cleanup call
* Check if update to test broke CI
* Retrigger CI
* Add back in updated tests
* Try splitting up tests
* First pass at flexible typing, implemented for ones
* Add int32 for all ops
* Remove print statements
* Fix lint
* Broad except
* Add other tensor types
* Temporarily use old tests
* Retrigger CI
* Lower type names
* Use numpy to convert in dense op
* Fix lint
* Remove print
* Need to cleanup but verify int32 works for add
* Rough tests for different types, a lot of types are not supported on CPU
* Probably doesn't build, need to save work as I have to switch branches (constantly)
* Parse param type
* Remove print stmt in parser
* Clean up some code
* Working on flaot32 for bn
* Add resnet18 double type
* Fix lint
* Temporarily move PT tests first
* Temporarily add back refactored tests to fix mem issue
* Add more type test and temp remove some tests
* Comment out tests, hopefully CI prints a trace
* Get stack trace
* Remove operator dict key, rename op_name to node_id, remove dead code
* Make relay map a list
* Remove some hacky string stuff
* Move to PyTorch 1.4
* Remove input_type as param
* Remove _get_fill_value, fix full ops
* Remove unused code and combine ops for identity and none
* Remove fn_param
* Clean up main loop
* Remove useless if/else for outputs
* Remove ir_names, only used once
* Remove some string hacking
* Remove string parsing to get output name
* Fix bug with output sizes of nodes
* Use attributeNames in parse ops
* Remove continue and add_op in parse_op
* Do this everywhere, use assert instead of explciitly type casting
* Remove unnecessary swap
* Slight refactor for elemwise input parse
* Use a copy of graph everywhere
* Rename nid_to_node_name
* Refactor parse import prereqs
* Clean up input node kind check
* Clean up conditionals
* Clean up add_op
* Cleanup type for ones and zeros op
* Fix lint
* Add torch install to CI
* Actually use torch
* Try moving import torch to only where it's needed
* Import torch for CI
* Use take op for select
* Temporarily add ignore for jit inline pass for CI
* Use CompleteTensorType, might be a PT 1.2 only thing
* Use different types in elemwise op
* Use float16 ones
* Fix float16 test
* Remove the temp docker changes
* Remove temp test
* Temporarily comment out original tests
* Remove file
* Empty cache after each test
* Add some prints and lower input sizes
* Try using no grad
* Trying to globally set grad off
* Use no grad for torchvision
* Remove xfail tests
* Remove VGG and AlexNet due to some issues
* Combine pooling tests
* Remove extra test file
* Remove single op, remove larger pooling tests
* Remove maxpool3
* Remove debug prints
* Remove inference call and add no_grad in measure latency
* Use standard string start char
* Remove redundant infer_shape in slice
* Convert most to checks to just expr
* Remove extra paren
* More refactor of isinstance
* Add helper for creating typed constants
* Assert instead of return when no matching type
* Remove network variants
* Add no_grad when forward, remove deatch, fix lint
* Change isinstance to expr in transpose
* Use opnotimplemented, refactor
* Fix full ops, remove duplicate tests
* Never use shape field unless we know the type
* Remove comma, retrigger CI
* Add paren, retrigger CI
* Use inline if-else for flags
* Throw exception instead of assert
* Remove version check for CI
* Check version when doing inline pass
* Fix lint
* Lower more input sizes
* Add new line, conv2d only accepts weight as expr
* Use tvm.runtime.ndarray
* Remove change to torch version install
* Try no grad for mobilenet
* Fix lint
* Fix lint again
* Revert to last passing
* Delete test files
* Ignore lint
* Revert back
* Comment out mobilenet
* Clean up compare compiled and baseline outputs
* Use IRModule
* Add todos
* Refactor use_bias
* Add todo for fix conv op channels
* Change input to data type
* Remove todo
* Handle channel multiplier > 1
vizero1 [Tue, 25 Feb 2020 03:55:27 +0000 (04:55 +0100)]
Use opencv reisze method for preprocessing of image in darknet (#4883)
* Use opencv reisze method for preprocessing of image in darknet
* Use opencv reisze method for preprocessing of image in darknet
* Fix pylint issues
Samuel [Tue, 25 Feb 2020 03:39:10 +0000 (09:09 +0530)]
[FRONTEND][KERAS]GaussianDropout/Noise parsing support (#4928)
GaussianDropout & GaussianNoise are active only during training time. This can be skipped during inference.
Haichen Shen [Mon, 24 Feb 2020 21:12:03 +0000 (13:12 -0800)]
[Relay][AutoTVM] Relay op strategy (#4644)
* relay op strategy
fix lint
bitpack strategy
bitserial_dense (#6)
* update strategy
* address comments
fix a few topi test
Dense strategy (#5)
* dense
* add biforst; remove comments
* address comment
Refactor x86 conv2d_NCHWc (#4)
* Refactor x86 conv2d
* Add x86 depthwise_conv2d_NCHWc
* Add back topi x86 conv2d_nchw
* Merge x86 conv2d_nchw and conv2d_NCHWc
* Minor fix for x86 conv2d
fix more strategy
Add x86 conv2d_NCHWc_int8 strategy (#8)
* Add x86 conv2d_NCHWc_int8 strategy
* Remove contrib_conv2d_nchwc_int8
* Fix generic conv2d_NCHWc for int8
* Fix topi arm_cpu conv2d_NCHWc_int8
update x86 conv2d
enable specify relay ops to be tuned for autotvm
add cuda conv2d strategy
add conv2d strategy for rocm
add conv2d strategy for hls
add conv2d strategy for arm cpu
add conv2d strategy for mali
add conv2d strategy for bifrost
add conv2d strategy for intel graphics
clean up and fix lint
remove template keys from autotvm
remove 2 in the func name
address comments
fix
* fix bugs
* lint
* address comments
* add name to op implement
* Modify topi tests (#9)
* Add pooling, reorg, softmax and vision
* Add lrn
* fix topi test
* fix more topi test
* lint
* address comments
* x
* fix more tests & bugs
* Modify more tests (#10)
* Modify tests for bitserial_conv2d, bitserial_dense, bitserial_conv2d_rasp and bnn
* Minor fix
* More minor fix
* fix more test
* try to update vta using strategy
* fix cpptest
* x
* fix rebase err
* Fix two tests (#11)
* change autotvm log format
* lint
* minor fix
* try fix vta test
* fix rebase err
* tweak
* tmp hack for vta pass
* fix tutorial
* fix
* fix more tutorials
* fix vta tutorial
* minor
* address comments
* fix
* address comments
* fix cpptest
* fix docs
* change data structure name and api
* address comments
* lint
* fix rebase err
* updates
* fix winograd test
* fix doc
* rebase
* upgrade tophub version number
* fix bug
* re-enable vta tsim test after tophub is upgraded
* fix vta test to use the correct args so the config can be found in tophub
Co-authored-by: Yao Wang <kevinthesunwy@gmail.com>
Leyuan Wang [Fri, 21 Feb 2020 22:31:04 +0000 (14:31 -0800)]
[Fix] Fix get_valid_count flaky test for cuda (#4901)
* get_valid_count accuracy issue fixed for individual tests but not for all tests running together
* minor fix
* initialize valid_count and PrefixSum buffers
* test updated
* udpate relay test as well
* update document
* fix lint
* address comment
* fix lint
* correct atomicAdd identifier name
Neo Chien [Fri, 21 Feb 2020 21:03:41 +0000 (05:03 +0800)]
[TEST][FLAKY] topi/tests/python/test_topi_sort.py::test_argsort (#4891)
* [TEST][FLAKY] topi/tests/python/test_topi_sort.py::test_argsort
* upadate test function of argsort like topk
* Shuffle index and get data from shuffled index
* Replace the random.uniform with np.arange
Tianqi Chen [Fri, 21 Feb 2020 05:56:26 +0000 (21:56 -0800)]
[COMMUNITY] @anijain2305 -> Committer (#4921)
Ina Dobreva [Fri, 21 Feb 2020 04:10:45 +0000 (04:10 +0000)]
Fix tests for tflite unary elemwise operations (#4913)
* add TFLite version check for 'ceil' and 'cos'
* fix name check of test_op for positive inputs
* add error message for operator not found in the installed fbs schema
Orion34C [Fri, 21 Feb 2020 02:43:45 +0000 (10:43 +0800)]
[CODEGEN] Support cuda tensorcore subbyte int data type in auto tensorcore (#4546)
* support cuda tensorcore subbyte int data type in auto tensorcore
* add lisence
* pass cpplint
* fix code review comments
* merge the int4/int1 codegen tutorial into the existing auto tensorcore tutorial
* using master's new API
* disable tuning when cuda is not enabled
* address cr comment
* do not run the tuning
* fix test failure
* fix cpplint error
* fix bool type reduction bug
* 1. fix a index bug 2. fix returned bytes value of int1/int4/uint4
* fix typo
Cody Yu [Thu, 20 Feb 2020 22:09:34 +0000 (14:09 -0800)]
[DOCS] Fix Sphinx Warnings (RST indent, cross-ref, and image scale) (#4920)
* fix indents
* Fix image scale and cross-ref
wpan11nv [Thu, 20 Feb 2020 17:25:35 +0000 (09:25 -0800)]
[Relay] Fix an assertion exposed by loop vectorizer (#4916)
- Allows uniform conditions for select expressions (the same as halide)
exposed by the loop vectorizer.
Signed-off-by: Wei Pan <weip@nvidia.com>
Cody Yu [Thu, 20 Feb 2020 17:24:37 +0000 (09:24 -0800)]
[DOCS] Fix sphinx warnings (#4917)
* Fix Python docstrings
* More fixes
* Fix lint
Tianqi Chen [Wed, 19 Feb 2020 21:14:42 +0000 (13:14 -0800)]
[REFACTOR] Polish ffi convention. (#4912)
* [REFACTOR] Polish ffi convention.
- Remove the src/api, keep registration local to the c++ function.
- Remove the api_internal as it is no longer needed.
* Update the codebase walk through
hcyang [Wed, 19 Feb 2020 06:33:16 +0000 (14:33 +0800)]
[RELAY][FRONTEND][TF] Fix FuseBatchNorm output cast error if need_cast is True (#4894)
Andrew [Wed, 19 Feb 2020 02:03:03 +0000 (18:03 -0800)]
Fix tvm.target.generic_func runtime detection (#4910)
Tianqi Chen [Tue, 18 Feb 2020 23:39:59 +0000 (15:39 -0800)]
[DOCS] Update API docs to reflect the status after the refactor. (#4907)
Jon Soifer [Tue, 18 Feb 2020 21:44:59 +0000 (13:44 -0800)]
[Relay] Expose FunctionGetAttr to Python (#4905)
* [Relay] Expose FunctionGetAttr to Python
* add test
Co-authored-by: Jon Soifer <jonso@microsoft.com>
Josh Fromm [Tue, 18 Feb 2020 18:24:22 +0000 (10:24 -0800)]
[Relay][Frontend][Keras] NHWC import support. (#4899)
* Basic test working
* Almost all tests working.
* all tests passing.
* Fixed lint.
* Improved Style.
Tianqi Chen [Tue, 18 Feb 2020 16:14:12 +0000 (08:14 -0800)]
[REFACTOR][PY] Establish tvm.arith (#4904)
Tianqi Chen [Tue, 18 Feb 2020 05:40:19 +0000 (21:40 -0800)]
[CI] Add autodocsum as dep (#4902)
Tianqi Chen [Tue, 18 Feb 2020 04:56:45 +0000 (20:56 -0800)]
[CI] Update ci docker to add autodocsumm (#4903)
pankratz [Tue, 18 Feb 2020 02:48:05 +0000 (19:48 -0700)]
Fixed bugs that occured when using bitwise operators on floating point type expressions. Further crash when using ops <<, >>, %. Finally added regression tests for both types of bug. (#4892)
Tianqi Chen [Tue, 18 Feb 2020 02:47:09 +0000 (18:47 -0800)]
[REFACTOR][PY] Establish tvm.te and tvm.driver (#4900)
- Move the related files to tvm.te
- Move build_module.py to tvm.driver
Jon Soifer [Mon, 17 Feb 2020 20:18:15 +0000 (12:18 -0800)]
[Relay][Pass] Fix bug in re-processing call node in MergeComposite pass (#4879)
* Fix bug in re-processing call node
* Add test
* Add to main
* temp changes to work from another machine
* fix rest of tests
* fix test_reuse_call_merge
* fix merge
Co-authored-by: Jon Soifer <jonso@microsoft.com>
Tianqi Chen [Mon, 17 Feb 2020 18:53:05 +0000 (10:53 -0800)]
[DOCS] Introduce how to add hardware backend to FAQ (#4898)
Alex Gladkov [Mon, 17 Feb 2020 17:22:11 +0000 (09:22 -0800)]
Fast exponent (#4790)
Baden Hughes [Mon, 17 Feb 2020 01:56:25 +0000 (11:56 +1000)]
Update faq.md (#4893)
various minor editorial updates - style, grammar, typos.
Zhi [Mon, 17 Feb 2020 01:44:22 +0000 (17:44 -0800)]
Fix alpha_equal bug (#4897)
Tianqi Chen [Sun, 16 Feb 2020 23:02:39 +0000 (15:02 -0800)]
[CI] Cleanup logfile before tutorial runs (#4896)
masahi [Sun, 16 Feb 2020 06:43:22 +0000 (15:43 +0900)]
[Relay] Fix VM compiler for while loop with free vars (#4889)
* add additional switch to handle nested call node
* Fix VM compiler for while loop with free var