Luis Vega [Mon, 29 Jul 2019 18:11:53 +0000 (11:11 -0700)]
[VTA] [Chisel] make dram offset configurable for uops different than 4-bytes (#3654)
Luis Vega [Mon, 29 Jul 2019 07:22:06 +0000 (00:22 -0700)]
[VTA] [CMake] hotfix tsim rules (#3650)
Thierry Moreau [Mon, 29 Jul 2019 01:41:10 +0000 (18:41 -0700)]
[VTA] Refactor to increase platform coverage (Ultra96 etc.) (#3496)
* hardware refactor for increased FPGA coverage, small optimizations
* fix header
* cleaning up parameters that won't be needed for now
* streamlining makefile, and simplifying tcl scripts
* moving parameter derivation into pkg_config.py, keeping tcl scripts lightweight
* refactoring tcl script to avoid global variables
* deriving AXI signals in pkg_config.py
* unifying address map definition for hardware and software drivers
* single channel design for ultra96 to simplify build
* enable alu by default, no mul opcode for now
* hardware fix
* new bitstream; vta version
* avoid error when env variable is not set
* ultra96 cleanup
* further cleaning up tcl script for bitstream generation
* preliminary rpc server support on ultra96
* rpc server tracker scripts
* ultra96 ldflag
* ultra96 support
* ultra96 support
* cleanup line
* cmake support for ultra96
* simplify memory instantiation
* cleaning up IP parameter initialization
* fix queue instantiation
* 2019.1 transition
* fix macro def
* removing bus width from config
* cleanup
* fix
* turning off testing for now
* cleanup ultra96 ps insantiation
* minor refactor
* adding comments
* upgrading to tophub v0.6
* model used in TVM target now refers to a specific version of VTA for better autoTVM scheduling
* revert change due to bug
* rename driver files to be for zynq-type devices
* streamlining address mapping
* unifying register map offset values between driver and hardware generator
* rely on cma library for cache flush/invalidation
* coherence management
* not make buffer packing depend on data types that can be wider than 64bits
* refactor config derivation to minimize free parameters
* fix environment/pkg config interaction
* adding cfg dump property to pkgconfig:
* fix rpc reconfig
* fix spacing
* cleanup
* fix spacing
* long line fix
* fix spacing and lint
* fix line length
* cmake fix
* environment fix
* renaming after pynq since the driver stack relies on the pynq library - see pynq.io
* update doc
* adding parameterization to name
* space
* removing reg width
* vta RPC
* update doc on how to edit vta_config.json
* fix path
* fix path
Luis Vega [Sun, 28 Jul 2019 23:18:34 +0000 (16:18 -0700)]
fix comment/doc in TensorLoad (#3646)
Balint Cristian [Sun, 28 Jul 2019 08:05:37 +0000 (11:05 +0300)]
Hotfix for issue #3641. (#3644)
Luis Vega [Sun, 28 Jul 2019 07:20:53 +0000 (00:20 -0700)]
fix case when offset is odd and size is even (#3643)
Luis Vega [Sat, 27 Jul 2019 20:39:37 +0000 (13:39 -0700)]
[VTA] [Chisel] fix tensor issue/commit in gemm (#3637)
* fix tensor issue/commit in gemm
* remove trailing spaces
Yong Wu [Sat, 27 Jul 2019 16:44:22 +0000 (09:44 -0700)]
[Relay][TF] add BatchMatMul (#3634)
peterjc123 [Sat, 27 Jul 2019 16:43:34 +0000 (00:43 +0800)]
Improve the x86 auto-tune tutorial (#3609)
YPBlib [Fri, 26 Jul 2019 22:14:39 +0000 (06:14 +0800)]
Update tensorflow.py (#3632)
Logan Weber [Fri, 26 Jul 2019 22:14:18 +0000 (15:14 -0700)]
Make Google Test usage configurable in CMake files (#3628)
* Add USE_GTEST as a CMake variable
* Add GTest section in installation docs
* Incorporate feedback
lixiaoquan [Fri, 26 Jul 2019 18:05:14 +0000 (02:05 +0800)]
[TensorFlow] Fix a bug output index is ignored (#3631)
Enhance test to cover this case
Wuwei Lin [Fri, 26 Jul 2019 06:49:28 +0000 (14:49 +0800)]
[TOPI][CUDA] Schedule for pool_grad (#3622)
* [TOPI][CUDA] Schedule for pool_grad
* Relay test
* Fix fused op
* doc
* Remove set scope local
雾雨魔理沙 [Fri, 26 Jul 2019 05:17:47 +0000 (22:17 -0700)]
[Relay] [Training] Add numerical gradient check. (#3630)
* add check_grad
* finish
* what does the fox say?
* lint lint lint lint lint lint lint lint lint
Benjamin Tu [Fri, 26 Jul 2019 01:47:04 +0000 (18:47 -0700)]
[VTA] [Chisel] support for different inp/wgt bits, rewrote DotProduct for clarity (#3605)
* support for different inp/wgt bits, rewrote dot for clarity
* [VTA] [Chisel] support for different inp/wgt bits, rewrote DotProduct for clarity
* [VTA] [Chisel] support for different inp/wgt bits, rewrote DotProduct for clarity
* change back to sim
* fix index
* fix index
* fix indent
* fix indent
* fix indent
* fix trailing spaces
* fix trailing spaces
* change to more descriptive name
* matric->matrix
* fix spacing
* fix spacing & added generic name for dot
* better parameter flow
* spacing
* spacing
* spacing
* update requirement (tested) for dot, spacing
* function call convention
* small edit
Lianmin Zheng [Thu, 25 Jul 2019 22:28:59 +0000 (06:28 +0800)]
[IR] Make iterators compatible with constructors of STL containers (#3624)
Balint Cristian [Thu, 25 Jul 2019 21:56:22 +0000 (00:56 +0300)]
Add Winograd matrices computation. (#3553)
Logan Weber [Thu, 25 Jul 2019 17:12:57 +0000 (10:12 -0700)]
Implementation of uTVM (#3227)
* uTVM interfaces (#14)
* some minor interface changes
* implemented HostLowLevelDevice
* added MicroDeviceAPI
* implemented micro_common and added Python interfaces
* current status, semi implemented micro session
* added micro_common implementation and python interfaces (#18)
* added micro_common implementation and python interfaces (#18)
* current status, semi implemented
* host test working
* updated interfaces for MicroSession arguments allocation
* make somewhat lint compatible
* fix based on comments
* added rounding macro
* fix minor bug
* improvements based on comments
* Clean up `binutil.py` and make Python-3-compatible
* Change argument allocation design
* Address feedback and lint errors
* Improve binutil tests
* Simplify allocator (per @tqchen's suggestions)
* Doc/style fixes
* farts
* mcgee
* rodata section werks
(and so does `test_runtime_micro_workspace.py`)
* simple graph runtime werk
* TEMP
* ResNet works, yo
* First round of cleanup
* More cleanup
* runs a dyson over the code
* Another pass
* Fix `make lint` issues
* ready to pr... probably
* final
* Undo change
* Fix rebase resolution
* Minor fixes
* Undo changes to C codegen tests
* Add `obj_path` in `create_micro_lib`
* TEMP
* Address feedback
* Add missing TODO
* Partially address feedback
* Fix headers
* Switch to enum class for `SectionKind`
* Add missing ASF header
* Fix lint
* Fix lint again
* Fix lint
* Kill lint warnings
* Address feedback
* Change Python interface to MicroTVM
All interaction with the device is now through `Session` objects, which
are used through Python's `with` blocks.
* Reorder LowLevelDevice interface
* Store shared ptr to session in all alloced objects
* Move helper functions out of `tvm.micro`
* Switch static char arr to vector
* Improve general infra and code quality
Does not yet address all of tqchen's feedback
* Forgot a rename
* Fix lint
* Add ASF header
* Fix lint
* Partially address MarisaKirisame's feedback
* Lint
* Expose `MicroSession` as a node to Python
* Revert to using `Session` constructor
* Fix compiler error
* (Maybe) fix CI error
* Debugging
* Remove
* Quell lint
* Switch to stack-based session contexts
* Make uTVM less intrusive to host codegen
And use SSA for operands of generated ternary operators
* Inline UTVMArgs into UTVMTask struct
* Remove `HostLowLevelDevice` header
* Remove `BaseAddr` class
* Address feedback
* Add "utvm" prefix to global vars in runtime
* Fix lint
* Fix CI
* Fix `test_binutil.py`
* Fix submodules
* Remove ResNet tests
* Make `test_binutil.py` work with nose
* Fix CI
* I swear this actually fixes the binutil tests
* lint
* lint
* Add fcompile-compatible cross-compile func
* Add docs for uTVM runtime files
* Move pointer patching into `MicroSession`
* Fix lint
* First attempt at unifying cross-compile APIs
* Fix lint
* Rename `cross_compile` back to `cc`
* Address feedback
* Remove commented code
* Lint
* Figure out failing function
* Remove debugging code
* Change "micro_dev" target to "micro"
* Add checks in tests for whether uTVM is enabled
* Add TODO for 32-bit support
* Rename more "micro_dev" to "micro"
* Undo rename
We already have `tvm.micro` as a namespace. Can't have it as a method
as well.
* Fix failing CI
Thanks to @tqchen for finding this bug. Emitting ternary operators for
`min` and `max` causes concurrency bugs in CUDA, so we're moving the
ternary op emissions from `CodeGenC` to `CodeGenCHost`.
* Address feedback
* Fix lint
Philip Hyunsu Cho [Thu, 25 Jul 2019 06:12:44 +0000 (23:12 -0700)]
Add a missing header in cuda_device_api.cc (#3621)
Yong Wu [Thu, 25 Jul 2019 06:12:11 +0000 (23:12 -0700)]
[Relay][Keras] Permute, Softmax support (#3618)
Jian Weng [Thu, 25 Jul 2019 01:07:51 +0000 (18:07 -0700)]
fix typo (#3611)
Animesh Jain [Thu, 25 Jul 2019 01:06:36 +0000 (18:06 -0700)]
[TOPI] Average Pool2D Bug. (#3607)
* [TOPI] Average Pool2D Bug.
Issue - https://github.com/dmlc/tvm/issues/3581
* Add uint16 test.
Logan Weber [Wed, 24 Jul 2019 22:39:10 +0000 (15:39 -0700)]
Remove prints in `generic_op_impl.py` (#3616)
Tianqi Chen [Wed, 24 Jul 2019 20:53:22 +0000 (13:53 -0700)]
Hotfix pylint (#3615)
Tianqi Chen [Wed, 24 Jul 2019 18:48:39 +0000 (11:48 -0700)]
[TEST] Fix testcase to make them more compatible to zero-rank (#3612)
雾雨魔理沙 [Wed, 24 Jul 2019 18:31:19 +0000 (11:31 -0700)]
init (#3571)
quickfix
Wuwei Lin [Wed, 24 Jul 2019 18:30:46 +0000 (02:30 +0800)]
[TOPI][Relay] max_pool2d & avg_pool2d gradient (#3601)
Zhi [Wed, 24 Jul 2019 17:13:16 +0000 (10:13 -0700)]
[Relay][vm] Small bug fix for DataTypeObject (#3604)
* small bug fix for DataTypeObject
* retrigger ci
Andrew Tulloch [Tue, 23 Jul 2019 21:44:27 +0000 (14:44 -0700)]
We observe multiple groups across a range of domains (ASR, NMT, LM, etc), (#3566)
internally and externally, interested in replacing standard dense layers with
block-sparse matrix multiplication layers. The motivations are generally: higher
performance (due to reduction in FLOPs, memory bandwidth/cache footprint),
enabling larger models (e.g. fitting more layers in a given memory budget).
Some public work along these lines:
* https://openai.com/blog/block-sparse-gpu-kernels/
* https://openai.com/blog/sparse-transformer/
* https://arxiv.org/abs/1802.08435
* https://arxiv.org/abs/1711.02782
Various groups have been able to successfully train models with reasonable
levels of sparsity (90%+) with marginal accuracy changes, which suggests
substantial speedups are possible (as this implies a >10x reduction in FLOPs).
It is fairly straightforward to realize these theoretical speedups, see e.g. TVM
benchmarks for Intel CPUs in
https://gist.github.com/ajtulloch/
e65f90487bceb8848128e8db582fe902, and CUDA
results in https://github.com/openai/blocksparse, etc.
* https://github.com/openai/blocksparse (CUDA)
* https://software.intel.com/en-us/mkl-developer-reference-c-mkl-bsrmm (MKL BSRM)
* https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.bsr_matrix.html (SCIPY BSR representation)
This is extracted from an internal patch we've been using internally. There are
various extensions possible (int8/fp16/bf16, CUDA/other GPU architectures), but
this is a reasonable starting point. This needs more thorough unit test coverage
however.
We follow the conventions established by scipy.sparse.bsr_matrix and other
libraries, see the unit tests for details.
For folks interested in experimenting with scheduling/AutoTVM etc,
https://gist.github.com/ajtulloch/
e65f90487bceb8848128e8db582fe902 is a useful
starting point.
Andrew Tulloch [Tue, 23 Jul 2019 21:43:27 +0000 (14:43 -0700)]
{relay,topi}.reinterpret support (#3599)
= Motivation
It's useful to expose the tvm::reinterpret functionality to Relay/TOPI users, as
this allows them to build (fused) operators leveraging the bitwise
reinterpretation of an operator. An example is approximate transcendental
functions, which can be implemented similar to:
```.py
def C(x):
return relay.expr.const(x, "float32")
def approx_exp(x):
x = relay.minimum(relay.maximum(x, C(-88.0)), C(88.0))
x = C(127.0) + x * C(1.
44269504)
xf = relay.floor(x)
i = relay.cast(xf, "int32")
x = x - xf
Y = C(0.
99992522) + x * (C(0.
69583354) + x * (C(0.
22606716) + x * C(0.
078024523)))
exponent = relay.left_shift(i, relay.expr.const(23, "int32"))
exponent = relay.reinterpret(exponent, "float32")
return exponent * Y
def approx_sigmoid(x):
# <2.0e-5 absolute error over [-5, 5]
y = approx_exp(x)
return y / (y + C(1.0))
def approx_tanh(x):
# <4.0e-5 absolute error over [-5, 5]
x = x * C(2.0)
y = approx_exp(x)
return (y - C(1.0)) / (y + C(1.0))
```
See unit tests for implementations of these approximate transendentals.
Luis Vega [Tue, 23 Jul 2019 17:23:10 +0000 (10:23 -0700)]
remove tabs (#3603)
Steven S. Lyubomirsky [Tue, 23 Jul 2019 17:14:53 +0000 (10:14 -0700)]
[Relay][Pass][Docs] Update the doc for adding a Relay pass to mention the pass infra (#3583)
* Update the Relay adding pass doc to reference the new pass infrastructure
* Correct pass name
Co-Authored-By: Zhi <5145158+zhiics@users.noreply.github.com>
* Align header equals signs
Animesh Jain [Tue, 23 Jul 2019 16:59:40 +0000 (09:59 -0700)]
Checking the correct dtypes for choosing the Intel int8 instructions. (#3516)
雾雨魔理沙 [Tue, 23 Jul 2019 09:52:44 +0000 (02:52 -0700)]
[Relay] [Training] Allow gradient to return a tuple (#3600)
Andrew Tulloch [Tue, 23 Jul 2019 02:48:55 +0000 (19:48 -0700)]
[Runtime] [ThreadPool] Make SpscTaskQueue::Pop(..) spin_count configurable (#3577)
In cases where we have multiple models or threadpools active, spinning around
`sched_yield()` may not be desirable, as it prevents the OS from effectively
scheduling other threads.
Thus, allow users to conditionally disable this behaviour (via an environment
variable `TVM_THREAD_POOL_SPIN_COUNT`, similar to existing environment flags for
the thread pool such as `TVM_BIND_THREADS`, etc).
This substantially improves tail latencies in some of our multi-tenant
workloads in practice.
Unit tests have been added - on my laptop, running:
```
TVM_THREAD_POOL_SPIN_COUNT=0 ./build/threading_backend_test;
TVM_THREAD_POOL_SPIN_COUNT=1 ./build/threading_backend_test;
./build/threading_backend_test;
```
gives https://gist.github.com/ajtulloch/
1805ca6cbaa27f5d442d23f9d0021ce6 (i.e.
97ms -> <1ms after this change)
Ramana Radhakrishnan [Mon, 22 Jul 2019 22:12:09 +0000 (23:12 +0100)]
Add support for Tflite operator SPLIT (#3520)
* [RFC] Initial support for Tflite operator SPLIT
This patch adds initial support for the tflite operator split. However
I am not yet sure how to handle the axis parameter for the split
operator and support it in the test infrastructure. Putting this up for
an initial review and comment.
The split operator in tflite according to
https://www.tensorflow.org/lite/guide/ops_compatibility
appears to take num_or_size_split as a 0D tensor.
I also note that tflite.split is one of the few operators that returns
multiple outputs and thus the helper routines in the tests needed some
massaging to make this work.
@apivarov , could you please review this ?
Thanks,
Ramana
* Fix the axis parameter
Add more tests
* Address review comments
* Try out frozen_gene's suggestion
* Handle split of 1 element
* int32 is only supported in tflite 1.14, let's check that version here.
* Keep this at python3.5
* Add packaging as a python package to be installed
Tianqi Chen [Mon, 22 Jul 2019 18:37:43 +0000 (11:37 -0700)]
Update Jenkinsfile
Thierry Moreau [Mon, 22 Jul 2019 15:31:37 +0000 (08:31 -0700)]
[VTA] Runtime refactor to allow for non-shared memory FPGAs (e.g. F1) (#3554)
* updated runtime to support non-shared memory FPGAs for instruction and micro-op kernels
* adding driver-defined memcpy function to handle F1 cases
* refactor to include flush/invalidate in memcpy driver function
* update tsim driver
* bug fixes
* cleanup
* pre-allocate fpga readable buffers to improve perf
* fix
* remove instruction stream address rewrite pass for micro op kernels
* fix:
* white spaces
* fix lint
* avoid signed/unsigned compilation warning
* avoid signed/unsigned compilation warning
* fix
* fix
* addressing comments
* whitespace
* moving flush/invalidate out of memmove
* clearnup
* fix
* cosmetic
* rename API
* comment fix
Tianqi Chen [Sun, 21 Jul 2019 23:30:31 +0000 (16:30 -0700)]
[CI] Upgrade LLVM envs (#3590)
Luis Vega [Sun, 21 Jul 2019 22:45:48 +0000 (15:45 -0700)]
add coherent, length, and user bits option to Shell Config (#3593)
Luis Vega [Sat, 20 Jul 2019 03:33:18 +0000 (20:33 -0700)]
bugfix function args order in alu instruction generation (#3592)
雾雨魔理沙 [Fri, 19 Jul 2019 22:55:28 +0000 (15:55 -0700)]
[Relay] add some check for the ad algorithm (#3585)
* do
* fix test
Yong Wu [Fri, 19 Jul 2019 22:06:34 +0000 (15:06 -0700)]
[TOPI][RELAY] Add op Size (#3094)
Yao Wang [Fri, 19 Jul 2019 20:19:37 +0000 (13:19 -0700)]
[AutoTVM]Improve graph tuner for multiple subgraphs (#3490)
* Improve boundary nodes in graph tuner
* Limit output node number
* Fix test
* Improve warning.
* Fix test
Balint Cristian [Fri, 19 Jul 2019 16:22:46 +0000 (19:22 +0300)]
[RPC] Better handle tempdir if subprocess killed. (#3574)
Yizhi Liu [Fri, 19 Jul 2019 16:21:47 +0000 (09:21 -0700)]
Add printer for Layout/BijectiveLayout (#3582)
Ramana Radhakrishnan [Fri, 19 Jul 2019 16:21:25 +0000 (17:21 +0100)]
Mention minimum version of python features one should stick to (#3588)
Thierry Moreau [Fri, 19 Jul 2019 01:35:19 +0000 (18:35 -0700)]
avoiding cast None to int errors (#3578)
zacario-li [Fri, 19 Jul 2019 01:34:44 +0000 (09:34 +0800)]
fix topi c++ conv2d_nchw lambda expr issue (#3570)
雾雨魔理沙 [Thu, 18 Jul 2019 22:29:22 +0000 (15:29 -0700)]
[Relay] parser/pretty printer roundtripping (#3536)
Tianqi Chen [Thu, 18 Jul 2019 22:06:38 +0000 (15:06 -0700)]
[ARITH] Simplify let (#3568)
Andrew Tulloch [Thu, 18 Jul 2019 21:56:14 +0000 (14:56 -0700)]
Emit DWARF debug information (#3420)
Ramana Radhakrishnan [Thu, 18 Jul 2019 17:21:03 +0000 (18:21 +0100)]
Support additional architectures beyond x86_64 in ubuntu_install_java (#3546)
* Support additional architectures beyond x86_64 in ubuntu_install_java
While attempting to get a development environment going for TVM
on my AArch64 desktop I ran into some hardcoding of relevant architectures.
Logan Weber [Thu, 18 Jul 2019 17:20:16 +0000 (10:20 -0700)]
Disable MicroTVM on i386 CI (#3569)
Thierry Moreau [Thu, 18 Jul 2019 17:12:22 +0000 (10:12 -0700)]
[Community] Zhi Chen -> Committer (#3572)
Let's welcome Zhi as a new Apache TVM Committer!
bulanova-huawei [Thu, 18 Jul 2019 00:15:09 +0000 (20:15 -0400)]
tightening bounding box for IntSet fused in PassUpDomain (#3073)
Apply suggestions from code review
Co-Authored-By: Wei Chen <ipondering.weic@gmail.com>
Zhi [Wed, 17 Jul 2019 20:28:03 +0000 (13:28 -0700)]
[docs] Add a tutorial for the pass manager (#3515)
* [docs] Add a tutorial for the pass manager
* address comment
* address more comments
* retrigger ci
* address steven's comments
* address comments
* retrigger ci
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Steven S. Lyubomirsky <slyubomirsky@gmail.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Steven S. Lyubomirsky <slyubomirsky@gmail.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Steven S. Lyubomirsky <slyubomirsky@gmail.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Steven S. Lyubomirsky <slyubomirsky@gmail.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Steven S. Lyubomirsky <slyubomirsky@gmail.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Logan Weber <36520469+weberlo@users.noreply.github.com>
* Update docs/dev/relay_pass_infra.rst
Co-Authored-By: Logan Weber <36520469+weberlo@users.noreply.github.com>
Wei Chen [Wed, 17 Jul 2019 20:17:18 +0000 (13:17 -0700)]
[Relay][VM]Fix debug statement (#3565)
* [Relay][VM]Fix debug statement
* Change debug statement
Luis Vega [Wed, 17 Jul 2019 06:49:40 +0000 (23:49 -0700)]
fix pynq 32-bit address pointers (#3558)
Yinghai Lu [Wed, 17 Jul 2019 05:01:41 +0000 (22:01 -0700)]
Fix build error (#3552)
* Fix build error
* comments
Joshua Z. Zhang [Wed, 17 Jul 2019 04:55:15 +0000 (21:55 -0700)]
fix js test load module example (#3556)
Haichen Shen [Wed, 17 Jul 2019 00:18:43 +0000 (17:18 -0700)]
fix (#3550)
zhengdi [Tue, 16 Jul 2019 17:41:10 +0000 (01:41 +0800)]
[FRONTEND][TENSORFLOW] Some bug fixes for tensorflow NCHW data_format (#3514)
Haichen Shen [Tue, 16 Jul 2019 04:02:12 +0000 (21:02 -0700)]
[Relay][VM] Port VM, VM compiler, and Object into python (#3391)
* tmp
* Port vm and object to python
* clean up
* update vm build module
* update
* x
* tweak
* cleanup
* update
* fix rebase
* Rename to VMCompiler
* fix
Yinghai Lu [Mon, 15 Jul 2019 20:21:04 +0000 (13:21 -0700)]
[Runtime] Enable set_input_zero_copy in GraphRuntime (#3416)
* Enable set_input_zero_copy in GraphRuntime
* Fix LoadParams
* Fix
* lint
* Fix remote context issue
* Fix
* Remove LOG
* Remove unused variables
* Add tests
* works
* More test scenarios
* make it simpler
* Remove unnecessary changes
* Address comments
* More comments
* Address comments
* Fix build
Sergei Grechanik [Sun, 14 Jul 2019 19:30:12 +0000 (22:30 +0300)]
[ARITH][BOUND] Fix bound inference to avoid allocating too much (#3526)
* [TVM] Fix bound inference to avoid allocating too much
* [ARITH][BOUND] Pass analyzer to PropBoundToInputs
Tianqi Chen [Sat, 13 Jul 2019 05:06:29 +0000 (22:06 -0700)]
[ARITH][IR] Introduce FloorDiv/Mod (#3479)
* [ARITH][IR] Introduce FloorDiv/Mod
* Address review comments
* address review comments, fix div sub rule
Wuwei Lin [Fri, 12 Jul 2019 04:26:39 +0000 (12:26 +0800)]
[Relay][Quantization] Fix add_rewrite and UnifyDTypeScale (#3534)
* [Relay][Quantization] Fix issue introduced in #3135
* Recover StopFusion
* Fix fmultiref
* Fix lint
Tianqi Chen [Fri, 12 Jul 2019 00:10:57 +0000 (17:10 -0700)]
[DEP] Remove HalideIR from submodule (#3535)
Tianqi Chen [Thu, 11 Jul 2019 21:26:43 +0000 (14:26 -0700)]
[INFA][IR] Build and Evolve Low-level IR. Remove HalideIR dep. (#3533)
* [INFA][IR] Build and Evolve Low-level IR. Remove dep from HalideIR.
* Update include/tvm/node/ir_functor.h
Co-Authored-By: Jared Roesch <roeschinc@gmail.com>
* Update include/tvm/node/ir_functor.h
Co-Authored-By: Jared Roesch <roeschinc@gmail.com>
hlu1 [Thu, 11 Jul 2019 16:52:36 +0000 (09:52 -0700)]
posix_memalign appears in API 17, not 16 (#3532)
tristan-arm [Wed, 10 Jul 2019 22:03:14 +0000 (23:03 +0100)]
Add Pack operator to TFLite (#3521)
雾雨魔理沙 [Wed, 10 Jul 2019 20:31:48 +0000 (13:31 -0700)]
init (#3476)
lint
update
address comment
comment out breaking test
Zhi [Wed, 10 Jul 2019 20:24:49 +0000 (13:24 -0700)]
[bugfix] fix the bug caused by test_any (#3528)
Jared Roesch [Wed, 10 Jul 2019 17:16:45 +0000 (10:16 -0700)]
[Relay][RFC] Implement type checking for Any (#3221)
* Implement type checking for Any
Remove code generation related changes
Remove compile changes
Remove more
Remove unification hack
Add some code back that was needed, and clean up test
Refactor test cases
WIP
Implement TypeHint AST
Add test case which should fail
Remove unification changes, and fix bug with let rec
Restore unification for shapes
Improve error reporting while debugging
All examples type check
All examples type check
WIP
First version that works with hints, needs clean up
Remove dead code
Tweaks
Remove type hint
Remove unecessary type hint stuff
Remove more type hints
Clean up
Expose Any expression node
Address CR
Fix
Fix solver
Kill unecessary code
Fix
PyLint
Fix
Relocate loops
Fix license and test
Lint again
Lint again
Fix loops
Fix docstring
Fix template error
Fix compiler issue
Fix compile err
Remove more runtime changes
Restore buffer
Fix segfault
Fix
Fix arange
* Address feedback
* Fix typo
* Fix arange
* Fix op level3
* Fix issue with Python wrapper
Ramana Radhakrishnan [Wed, 10 Jul 2019 15:59:01 +0000 (16:59 +0100)]
Fix pylint issue in vta/python/vta/top/graphpack.py (#3519)
This appears in linting using the docker scripts. I'm not sure
why this isn't failing in the standard CI for TVM and it might
be that the docker images haven't been updated in the CI system.
python3 -m pylint vta/python/vta --rcfile=/workspace/tests/lint/pylintrc
Using config file /workspace/tests/lint/pylintrc
************* Module vta.top.graphpack
C:131, 4: Missing method docstring (missing-docstring)
Marcus Shawcroft [Wed, 10 Jul 2019 15:49:55 +0000 (16:49 +0100)]
Fix broken rat install (#3527)
http://www.trieuvan.com/apache//creadur/apache-rat-0.12/apache-rat-0.12-bin.tar.gz
gives a 404 so point the installer at archive.apache.org hopefull that
is more reliable.
雾雨魔理沙 [Wed, 10 Jul 2019 05:43:37 +0000 (22:43 -0700)]
fix test (#3525)
Wei Chen [Wed, 10 Jul 2019 01:40:42 +0000 (18:40 -0700)]
[Relay][Doc] Docs for new op code (#3522)
Tianqi Chen [Wed, 10 Jul 2019 01:40:10 +0000 (18:40 -0700)]
[CPP] Refactor remove tvm/tvm.h (#3523)
Steven S. Lyubomirsky [Wed, 10 Jul 2019 01:39:14 +0000 (18:39 -0700)]
[Relay][Testing] Relay-to-Python compilation (#3156)
* First pass at Relay-to-Python converter testing utility
* Indicate astor as a dependency
* Add astor dep to host as well
* Typos and small bugs
* Handle ADTs and matching in Python conversion
* Remove any dependency on ast.parse
* Eliminate unnecessary type var field in Python version of ConstructorValue (already gone on C++ side)
* Update constructor value, fix syntax errors
* Don't forget keywords arg on Call nodes
* Fix some incorrect calls to ast nodes
* Fix more calls, a little more cleaning up
* Missing cases in attr conversion
* Lower op calls instead of running them through interpreter, as in @MarisaKirisame's AoT compiler
* We do still need the module
* Remove changes to op attrs: Will PR separately
* Smoke test and corrections
* More tests and fixes
* Ensure imports are properly global in generated Python code
* Add unit tests for refs
* Add unit test for tuple indexing
* Add unit test for if expression
* Remove astor dependency
* Remove astor from meta.yaml too
* Fix if test and add basic local function test
* Add global function test, refactor earlier tests
* Correct 'clause' field in ADT so Python and C++ field names match
* More fixes and tests for matching and constructors
* Dramatically simplify matching: no need for a thunk
* Improve ref writing test
* Ensure local recursion works
* cleanup
* Add test for global recursion
* Add test for higher-order calls
* Get ops working, add basic tests
* Remove accidentally duplicated test
* More docstrings to appease pylint
* Forgot to fix a test using constructor values
* Reduce optimization level in fusion and fix tuple input to operators
* Test op with tuple output, fix tuple output code
* Add unit test for batch norm
* Add a couple more tricky test cases
* Correct nat constructor to drop unnecessary field
* Fix the op attrs file (accidentally reduced it)
* Address review comments
* Adapt to new ConstructorValue representation (no more runtime dep on module)
* Use pass manager and updated interfaces. Extend module.from_expr to accommodate necessary demands
* Use sequential return value
* Lift out nested conditionals
* Replace triple single quotes with triple double quotes
* Use main variable instead of entry_func
Wei Chen [Tue, 9 Jul 2019 18:48:44 +0000 (11:48 -0700)]
[Relay][VM]Compiling pattern matching (#3470)
* [Relay][VM]Compiling pattern matching
* Fix lint
* Remove debug code
* Move TreeNode definition
* merge ifi and selecti, todo: remove them
* fix lint
* remove ifi and selecti
* rename GetTagi to GetTag
* fix dltype
* fix more dltype
* Generalize If and select, and rename to Ifi and Selecti
* Fix lint
* Rename Ifi to If
* Change register default to match value
* Remove bad specialization for Move
* Stop use Select
* Remove Select
* TreeNode refactor
* Change entry_func name
* Remove Cmp due to rebase issue
Amy Wang [Tue, 9 Jul 2019 17:59:43 +0000 (13:59 -0400)]
[Relay] Clip gradient: grad * (select(x < min || max < x, 0, 1)) (#3509)
Animesh Jain [Tue, 9 Jul 2019 16:46:43 +0000 (09:46 -0700)]
Relaxing convolution infer checks. (#3511)
- Weight dtype can be different than idtype. So, using the weight tensor to set
the dtype of weight.
- For conv2d NCHWc operator, the weight can be of any dimension. For int8
computation on Intel, it can be 7D. Relaxing the weight type checking.
Josh Fromm [Tue, 9 Jul 2019 03:20:22 +0000 (20:20 -0700)]
[Vulkan] Added conversion from bool to float. (#3513)
* Added bool to float conversion support to spirv ir builder.
* Added unittest for vulkan bool conversion.
* Typo fix.
雾雨魔理沙 [Tue, 9 Jul 2019 00:30:43 +0000 (17:30 -0700)]
[Relay] Roundtrip part of pretty printer and parser (#3460)
* init
fix rebase
lint
fix cmake
try again
fix ci
* add gitignore
* fix format
* do not include .interp and .tokens
Animesh Jain [Tue, 9 Jul 2019 00:22:01 +0000 (17:22 -0700)]
Passing dilation argument to account for API change. (#3510)
Zhi [Mon, 8 Jul 2019 20:57:57 +0000 (13:57 -0700)]
[Relay][Transform] Support Dumping IR to help debugging (#3493)
* [Relay][Transform] Support Dumping IR to help debugging
* debugprint->printir
Luis Vega [Mon, 8 Jul 2019 06:47:48 +0000 (23:47 -0700)]
[VTA] TSIM improvements and fixes (#3505)
* add tsim init function
* add sim device
* test wait and resume
* launch simulation thread from DPILoader
* add VTASimDPI module to handle all simulation related stuff
* test tsim init
* move exit to simdpi module
* update vta driver
* add chisel DPI module
* get back simshell
* update vta to support dpi sim
* update unittests
* add tsim to integration-conv2d test
* run resnet on tsim
* remove max-cycles
* match tsim counters with sim counters
* use env in simulator to switch between sim and tsim
* update unittest
* rollback conv2d test
* update resnet
* add stats to matrix multiply
* add stats
* print stats after assert
* update other tests
* add stats to gemm
* add return and remove unused libs
* add missing arg
* return lib
* update comments for linter
* add more comments to VTASimDPI module
* remove trailing spaces
* remove trailing spaces
Tianqi Chen [Sun, 7 Jul 2019 05:48:43 +0000 (22:48 -0700)]
[ARITH] More recursive rewrite rule, cleanup simplify tests (#3502)
Tianqi Chen [Sun, 7 Jul 2019 03:44:13 +0000 (20:44 -0700)]
[ARITH] Bugfix div subtract rewrite rule (#3504)
Yida Wang [Sun, 7 Jul 2019 03:11:30 +0000 (20:11 -0700)]
[TOPI] add basic scheduling for conv2d_transpose on x86 (#3491)
* initialize cond 2d transpose scheduling on x86
* refine the scheduler a bit
* fix for lint
* address review comments; remove duplicate code
* fix lint
Tianqi Chen [Sat, 6 Jul 2019 21:44:46 +0000 (14:44 -0700)]
[ARITH] Refactor: Remove un-necessary usage of ComputeExpr (#3503)
Ruslan Baratov [Sat, 6 Jul 2019 16:37:30 +0000 (19:37 +0300)]
Android RPC README improvements (#3500)
- Fix APK path
- Add ADB install/uninstall instructions
Zhi [Sat, 6 Jul 2019 04:23:27 +0000 (21:23 -0700)]
[relay][frontend] Return Module from get_workload (#3483)
* [relay][frontend] Return Module from get_workload
* pass entry_func to autotvm
* disable tune
* add property to module
* mod.entry_func to main
* .main -> mod["main"]
* fix
Ruslan Baratov [Sat, 6 Jul 2019 03:41:25 +0000 (06:41 +0300)]
Android demo: Docker improvements (#3499)
- Install OpenCL headers
- Set ANDROID_HOME environment variable
Steven S. Lyubomirsky [Fri, 5 Jul 2019 20:58:16 +0000 (13:58 -0700)]
[Relay][Module] Make tags for ADT constructors and ConstructorValues more robust (#3369)
* Use hash of ADT name and constructor idx to generate tag, add reverse mapping to module and use where appropriate
* Lint and build fixes
* Add round-tripping test for getting constructors by tag
* Use int64_t everywhere for tags
* Add additional identity check
* Bring out _arg_to_ast again
* Use 8-bit hash of GTV name as MSB of tag, index as LSB for more readable tags
* Use int32 instead of int64 for tag
Thierry Moreau [Fri, 5 Jul 2019 20:53:01 +0000 (13:53 -0700)]
[VTA][Hotfix] Avoiding error when environment variable is not set (#3497)
* avoid error when env var is not set
* extra content
Ruslan Baratov [Fri, 5 Jul 2019 18:17:51 +0000 (21:17 +0300)]
Tutorial: Use Python 3 (#3498)
Ruslan Baratov [Thu, 4 Jul 2019 19:09:47 +0000 (22:09 +0300)]
Docker: Install Python packages 'requests' and 'Pillow' (#3495)
Needed for:
- https://github.com/dmlc/tvm/blob/
287078c33db85d4f312d8d2457a064442d9d18c3/tutorials/frontend/deploy_model_on_android.py#L30
- https://github.com/dmlc/tvm/blob/
287078c33db85d4f312d8d2457a064442d9d18c3/tutorials/frontend/deploy_model_on_android.py#L37
- https://github.com/dmlc/tvm/blob/
287078c33db85d4f312d8d2457a064442d9d18c3/python/tvm/contrib/download.py#L58