Samuel [Fri, 15 May 2020 21:43:23 +0000 (03:13 +0530)]
[PYTORCH]Matmul fix for batch_matmul (#5604)
Samuel [Fri, 15 May 2020 21:41:57 +0000 (03:11 +0530)]
[PYTORCH]ImplicitTensorToNum support added (#5603)
Andrew Reusch [Fri, 15 May 2020 21:39:45 +0000 (14:39 -0700)]
Add debug mode to tempdir() (#5581)
Krzysztof Parzyszek [Fri, 15 May 2020 21:39:21 +0000 (16:39 -0500)]
[LLVM] Represent alignment information in LLVM IR (#5598)
Andrew Reusch [Fri, 15 May 2020 21:38:39 +0000 (14:38 -0700)]
Fix TVMArray layout on device (#5599)
Wei Pan [Fri, 15 May 2020 21:28:19 +0000 (14:28 -0700)]
[Reduction] Fix cross thread redunction (#5551)
- The predictions were not correctly applied after transformation.
This leads to normal reduction itervar appearing outside of the loop,
which is undefined. See detailed comments.
Signed-off-by: Wei Pan <weip@nvidia.com>
Matthew Brookhart [Fri, 15 May 2020 19:42:51 +0000 (12:42 -0700)]
Pattern Language, Matcher, Rewriter, and Function Paritioner (#5231)
Andrew Reusch [Fri, 15 May 2020 16:27:44 +0000 (09:27 -0700)]
Add ostream formatters for TargetPtr/TargetVal. (#5592)
Jared Roesch [Fri, 15 May 2020 04:46:21 +0000 (21:46 -0700)]
[Relay][VM] Memory planner (part 1) (#5144)
* Start on memory planning
WIP
Move to test_memory_passes.py
Work on memory planning
Post-rebase and VM changes
Plumb through the offsets
Basic tests all pass, fix offset to data buffer.
Fix compile errors
Fix ws
Apply suggestions from code review
Co-Authored-By: Haichen Shen <shenhaichen@gmail.com>
Address CR
Update src/runtime/vm/vm.cc
Co-Authored-By: Haichen Shen <shenhaichen@gmail.com>
Fix another comment
Fix lint
Fix
Fix
Fix
Lint is done?
Fix
More fix
Trying to debug
No clue
Fix lint
* Fix docs
* Disable aggressive constant eval
* It works
* Fix lint
* Found issue with dynamic
* Fix the pass, but runtime segfaults
* fix scalar tensor, test_any_elemwise passes
* Fix split pass
* Fix 0-rank issues
* Fix
* debug
* apply Haichen's patch and clean up
* lintgit add .
* fix serializer and test_tyck_alloc_tensor test
* Fix the constant lift pass in presence of closures
* Restore old finder
* Fix rebase issues
* Fix
* Fix
* Fix issue coercing the shapes incorrectly from i64 to i32
* Fix linting
* Fix clang format
* Format memory.cc
* Fix 0-rank case
* Add fix for (0,) shape
* Ignore shapes for now
* Apply suggestions from code review
Co-authored-by: Zhi <5145158+zhiics@users.noreply.github.com>
* Update src/runtime/vm/executable.cc
Co-authored-by: Zhi <5145158+zhiics@users.noreply.github.com>
* Fix
* lint
Co-authored-by: Zhi Chen <chzhi@amazon.com>
Co-authored-by: Zhi <5145158+zhiics@users.noreply.github.com>
Michal Piszczek [Fri, 15 May 2020 03:16:57 +0000 (20:16 -0700)]
[TFLite Runtime] Fix bug and re-enable RPC execution test (#5436)
Andrew Reusch [Thu, 14 May 2020 20:33:43 +0000 (13:33 -0700)]
Overestimate binary size for microTVM compiled binaries. (#5590)
* Overestimate binary size for microTVM compiled binaries.
* Currently uTVM binary section sizes are computed by summing the
sizes of all symbols in the section.
* This method produces errors because it presumes the linker works in
a particular way, rather than analyzing the linked output.
* As we intend to move away from linking inside TVM (RFC
forthcoming), just using this stopgap to make forward progress
until then.
* address weberlo comments
* fix regression (use 64 bit word size)
Liangfu Chen [Thu, 14 May 2020 14:59:53 +0000 (22:59 +0800)]
[DOCS] Improve document in reflection (#5593)
Andrew Reusch [Thu, 14 May 2020 01:20:26 +0000 (18:20 -0700)]
Fix JSON graph dumping. (#5591)
* Previously this function placed a JSON-escaped string containing
the JSON-encoded graph.
Krzysztof Parzyszek [Thu, 14 May 2020 00:16:14 +0000 (19:16 -0500)]
[Hexagon] One more fix for concurrency count (#5589)
Samuel [Wed, 13 May 2020 21:01:36 +0000 (02:31 +0530)]
[MXNET]abs, round, reciprocal, sign, softsign, hard_sigmoid (#5587)
ANSHUMAN TRIPATHY [Wed, 13 May 2020 20:16:49 +0000 (01:46 +0530)]
[Relay][Transform] Safe check added for Merge Composite (#5562)
Giuseppe Rossini [Wed, 13 May 2020 18:11:15 +0000 (19:11 +0100)]
Add a quantized conv2 unit test for the tflite front-end (#5558)
Signed-off-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
lhutton1 [Wed, 13 May 2020 18:08:32 +0000 (19:08 +0100)]
[RELAY][Convert Layout] Specify additional layouts in convert layout pass (#5422)
* [RELAY] Specify additional layouts in convert layout pass
* This patch means that you can specify an additional layout, rather than using the layout chosen by default during conversion.
* This is specifically useful for external codegen when a 3rd party library needs to target a specific kernel layout for example.
Change-Id: I3ef9cf45ead574801870a38af9768f93e29aab10
* Use mapping of op name to list of desired layouts
Change-Id: Ibd691a3cb93e73a394f36112668ad52a84c7d5a2
* Fix issue with code block
Change-Id: Ibb4e38c05ad4312b7dea845be699b8d5d57e0a94
* Address comments, Improve tutorial
Change-Id: Ib824eead329d551c338234de3b2d814693afd0ec
* Fix linting
Change-Id: Ie9e1891f590b3a7496a56ff8362cdda9d4b5fa75
* Test uses NCHW default layout. Unrelated issue with NHWC.
Change-Id: I1c16f0db73db56f5e9536db3fe5eb2624c3b595c
* Fix mistake in tutorial
Change-Id: I944041245d27af262dc96f1cd8117f1f19272062
* Address multiple comments
Change-Id: If33a1e34acd8fc37d1c7797ee189a6448a392672
* Improve tutorial
Change-Id: Ib04142c94c7958ab5067947d2ff4c84354e3d0c5
* Fix Clang-format
Change-Id: Ieff39e3f0817d22579c68b3287e972a3b0fcfbc8
LiangLiu [Wed, 13 May 2020 15:49:21 +0000 (23:49 +0800)]
Fix the runtime raise error (#5586)
Candy [Wed, 13 May 2020 07:07:31 +0000 (15:07 +0800)]
Add prim::device op (#5584)
lixiaoquan [Wed, 13 May 2020 06:37:33 +0000 (14:37 +0800)]
[RELAY][TF] Support symbolic newshape for Reshape (#5429)
* [RELAY][TF] Support symbolic newshape for Reshape
* Only need to pass data
* Use MakeReshape() in Reshape()
* Change newshape to Expr
* Create a template for Array<T>
* Fuse reshape when newshape is constant
* Make newshape Optional
* Use bool() of Optional
Co-authored-by: Li Xiaoquan <xiaoquan.li@denglin.ai>
Josh Fromm [Wed, 13 May 2020 06:23:56 +0000 (23:23 -0700)]
[Relay] Fixed bug in attribute parsing for pool layers. (#5582)
* Fixed pooling bug.
* Added tests and fixed more cases.
Trevor Morris [Wed, 13 May 2020 06:21:16 +0000 (23:21 -0700)]
[PYTORCH] Support max_pool2d_with_indices (#5549)
* Use real output name instead of node_name
* Add pytorch max_pool2d_with_indices converter.
* Add test for maxpool2d with indices
* Add explicit assert for single output
* Only consume output (not indices) from max pool 2d with indices
* undo change
Tianqi Chen [Wed, 13 May 2020 02:31:45 +0000 (19:31 -0700)]
[CI] Enable llvm-11 and llvm-10 in build tests, recover webdocs. (#5579)
This PR ties up the last loosen end of the recent CI update.
Samuel [Wed, 13 May 2020 00:09:41 +0000 (05:39 +0530)]
[PYTORCH]expand bug fix (#5576)
Ramana Radhakrishnan [Tue, 12 May 2020 21:27:05 +0000 (22:27 +0100)]
Allow ubuntu_install_darknet.sh to work in both 18.04 and 16.04 (#5574)
Tianqi Chen [Tue, 12 May 2020 17:06:09 +0000 (10:06 -0700)]
[CI] Fix clang-format error (#5577)
Menooker [Tue, 12 May 2020 14:36:53 +0000 (22:36 +0800)]
[Relay] enable blocking format in x86 conv2d and fold scale axis (#5357)
Tianqi Chen [Tue, 12 May 2020 09:41:04 +0000 (02:41 -0700)]
[CI] Update the ci-gpu to the lastest build with the new vulkansdk. (#5571)
Tianqi Chen [Tue, 12 May 2020 05:18:36 +0000 (22:18 -0700)]
[LINT] Enable clang-format. (#5572)
* [LINT] Enable clang-format.
* Add more docs
Tianqi Chen [Tue, 12 May 2020 02:53:00 +0000 (19:53 -0700)]
[TARGET] Phase out WebGL (#5570)
The graphics API is moving towards next generation.
Vulkan/Metal on the native and WebGPU on the web.
Due to the limited programming model, we cannot get the best compute performance in WebGL.
Now that the mainline already have both WebGPU and vulkan support, this PR phases out WebGL.
Tianqi Chen [Tue, 12 May 2020 01:43:55 +0000 (18:43 -0700)]
[DOCKER] Add clang-format and nodejs to ci-lint (#5567)
Tianqi Chen [Tue, 12 May 2020 01:43:47 +0000 (18:43 -0700)]
[CI] Update ci-lint to use the latest image that contains clang-format (#5568)
Tianqi Chen [Mon, 11 May 2020 23:24:18 +0000 (16:24 -0700)]
[CI] reintroduce docker stage for wasm tests (#5565)
* [DOCKER] Introduce ci-wasm
* Add Jenkinsfile
* Rename prepare to prepwasm so it won't run by default
Tianqi Chen [Mon, 11 May 2020 22:28:04 +0000 (15:28 -0700)]
[DOCKER] Fix vulkansdk in the ci-gpu (#5566)
ANSHUMAN TRIPATHY [Mon, 11 May 2020 19:08:04 +0000 (00:38 +0530)]
[Refactor][std::string --> String] IR is updated with String (#5547)
* [std::string --> String] GlobalTypeVar is updated with String
* [std::string --> String] GlobalVar is updated with String
* [std::string --> String][IR] ADT is updated with String
* [std::string --> String][IR] OP is updated with String
* [std::string --> String][IR] Attrs is updated with String input
* [std::string --> String][IR] GlobalVar is updated with String
* [std::string --> String][Test] Pyconverter is updated with String change
Ramana Radhakrishnan [Mon, 11 May 2020 19:00:26 +0000 (20:00 +0100)]
Fix topi test for tensorcore (#5563)
Samuel [Mon, 11 May 2020 18:56:23 +0000 (00:26 +0530)]
[FRONTEND]onnx, mxnet, pytorch mathops added (#5561)
Haichen Shen [Mon, 11 May 2020 17:26:03 +0000 (10:26 -0700)]
[Fix] Fix conv2d alter op for arm cpu (#5532)
Tianqi Chen [Mon, 11 May 2020 16:04:28 +0000 (09:04 -0700)]
[CI] Update ci-cpu to bionic (#5554)
Tianqi Chen [Mon, 11 May 2020 16:04:20 +0000 (09:04 -0700)]
[CI] Update ci-cpu to bionic (#5555)
Tianqi Chen [Mon, 11 May 2020 16:04:08 +0000 (09:04 -0700)]
[WEB] Setup lint, doc, test (#5556)
masahi [Mon, 11 May 2020 12:00:43 +0000 (21:00 +0900)]
[BYOC, MergeComposite] Add additional check before re-using the cached match (#5552)
* Add additional check before re-using the cached match in merge composite
* clean up ExtractPattern calls
Tianqi Chen [Mon, 11 May 2020 04:43:33 +0000 (21:43 -0700)]
[LINT] clang-format the h,cc,m files. (#5557)
This PR prepares for our migration to use the clang-format
as part of the linter system.
Krzysztof Parzyszek [Mon, 11 May 2020 03:05:59 +0000 (22:05 -0500)]
[RUNTIME] Hexagon driver for offloading kernels to simulator (#5492)
* [RUNTIME] Hexagon driver for offloading kernels to simulator
* Add sim_dev as external project when building with Hexagon/sim support
* Change target CPU for sim_dev to v60
Samuel [Mon, 11 May 2020 00:32:00 +0000 (06:02 +0530)]
[TOPI][RELAY][TENSORFLOW]Math ops added (#5502)
* [TOPI][RELAY][TENSORFLOW]Math ops added
* Extra newline removed
* CI fix
* Review comments fixed
* Review comments fixed
Tianqi Chen [Sat, 9 May 2020 23:59:18 +0000 (16:59 -0700)]
[WEB] WebGPU support (#5545)
This PR introduces WebGPU support to tvm.
The WebGPU runtime is directly built in javascript(as WebGPU uses JS as the first class citizen API)
and exposes back to the tvm's runtime via PackedFuncs.
One important note is that `ctx.sync` is not async.
This is due to the fact that WebGPU is a purely async API and we cannot block in the web environment.
So the current best way to use the js api is to wrap things in an async function.
When copy a GPU array to CPU, `await ctx.sync()` need to be called to wait for copy completion.
We use a AsyncIO rpc server to serve the async functions to the clients.
Matthew Brookhart [Sat, 9 May 2020 23:54:39 +0000 (16:54 -0700)]
Apparently, ONNX Conv with no 'pads' defaults to zero padding (#5548)
MORITA Kazutaka [Sat, 9 May 2020 23:01:12 +0000 (08:01 +0900)]
[CI] Install wasmtime for WebAssembly tests (#5494)
Tom Gall [Sat, 9 May 2020 15:45:05 +0000 (10:45 -0500)]
A clone of test/python/unittest/test_runtime_micro.py, however (#5546)
modified to run specifically on ARM cortex-M hardware, which
currently is just the STM32F746 discovery board.
Signed-off-by: Tom Gall <tom.gall@linaro.org>
Wei Pan [Sat, 9 May 2020 15:38:38 +0000 (08:38 -0700)]
[Optimization] Warp level reduction support for CUDA (#5498)
- Added the warp level reduction support
- Upgraded shfl intrinsics to the sync version.
- This is the building block for scheduling softmax like operations.
Signed-off-by: Wei Pan <weip@nvidia.com>
Bohan Hou [Sat, 9 May 2020 15:35:58 +0000 (23:35 +0800)]
[TIR][Printer] text format printer considering future parsing use (#5483)
Tang, Shizhi [Sat, 9 May 2020 00:52:30 +0000 (08:52 +0800)]
[TE] Fix MakeLoopNest for warp memory (#5382)
Jared Roesch [Fri, 8 May 2020 23:53:47 +0000 (16:53 -0700)]
[Rust] Add first stage of updating and rewriting Rust bindings. (#5526)
* Add tvm-sys
* Use as_mut_ptr
* Address CR feedback
* Update rust/tvm-sys/src/datatype.rs
Co-authored-by: Nick Hynes <nhynes@berkeley.edu>
* Final CR comments
* Fix find and replace error in frontend
Co-authored-by: Nick Hynes <nhynes@berkeley.edu>
Tianqi Chen [Fri, 8 May 2020 22:55:22 +0000 (15:55 -0700)]
[RPC] Improve RPCServer AsyncIO support. (#5544)
* [RPC] Improve RPCServer AsyncIO support.
When the RPCServer is in the async IO mode, it is possible for the server
to directly serve async function that may return its value via a callback in the future.
This mode is particular useful to the web environment, where blocking is not an option.
This PR introduces the Async support to the RPCSession, allowing the AsyncIO driven servers
to serve the async functions. These functions will still be presented as synchronized version
on the client side.
Followup PR will refactor the web runtime to make use of this feature.
* Address comments
tobe [Fri, 8 May 2020 19:42:22 +0000 (03:42 +0800)]
Load platform specific lib for tvmdsoop instead of only so (#5542)
Samuel [Fri, 8 May 2020 17:10:57 +0000 (22:40 +0530)]
[CRT]fix to reduce RAM size during loading model (#5507)
* [CRT]fix to reduce RAM size during loading model
* Release graph_json memory immediately after reading
Thierry Moreau [Fri, 8 May 2020 16:52:50 +0000 (09:52 -0700)]
fix restructured text (#5541)
Matthew Brookhart [Fri, 8 May 2020 06:37:45 +0000 (23:37 -0700)]
Add Onnx Pad v11 (#5539)
Krzysztof Parzyszek [Fri, 8 May 2020 03:36:36 +0000 (22:36 -0500)]
Changes to cpp_rpc to make it work on Android (+ Hexagon offloading) (#5535)
* Changes to cpp_rpc to make it work on Android (+ Hexagon offloading)
- Implement getNextString to break up std::string into words. stringstream
just doesn't work on Android.
- string::find_last_of doesn't look for the last substring, but the
last character from a given string.
- Use SIGTERM to terminate processes (this isn't necessary, but using
SIGKILL is not a good practice).
- Convert "./rpc" to a full path. When a module is uploaded and offloaded
to Hexagon, the dlopen on Hexagon needs an absolute path (or a path
without directories).
* Only set the absolute patch on non-Windows platforms
Windows has different macros for the maximum path length.
Animesh Jain [Fri, 8 May 2020 03:18:18 +0000 (20:18 -0700)]
[Relay-TFLite] FP32 and Quantized Object Detection Model (#5479)
* TFlite e2e FP32 Object detection model
* Fix test
* [Relay-TFLite] Quantized activations
* Flexbuffer parsing
* Lint
* Relaxing checks.
* Github reviews
* comments
Co-authored-by: Ubuntu <ubuntu@ip-172-31-34-212.us-west-2.compute.internal>
Tianqi Chen [Fri, 8 May 2020 03:10:58 +0000 (20:10 -0700)]
[RUNTIME] Store nullptr PackedFunc as nullptr for better error propagation (#5540)
ANSHUMAN TRIPATHY [Thu, 7 May 2020 22:11:25 +0000 (03:41 +0530)]
[Refactor][std::string --> String] IRModule is updated with String (#5523)
* [std::string --> String] IRModule is updated with String
* [1] Packedfunction updated
* [2] Lint error fixed
* [3] Remove std::string variant
Tianqi Chen [Thu, 7 May 2020 21:54:25 +0000 (14:54 -0700)]
[RPC][BUGFIX] Fix remote device sync (#5538)
Samuel [Thu, 7 May 2020 20:50:12 +0000 (02:20 +0530)]
[RELAY][ONNX]ReduceLogSumExp Operator support (#5453)
* [RELAY]LogSumExp Op Support
* [ONNX]LogSumExp Op Support
Tianqi Chen [Thu, 7 May 2020 20:47:36 +0000 (13:47 -0700)]
[WEB][RUNTIME] TVM WebAssembly JS Runtime (#5506)
* [WEB] Remove the old web runtime
* [WEB][RUNTIME] TVM WebAssembly Runtime
This PR introduces a brand new TVM web runtime based on the WASM standard API.
Main highlights:
- The new runtime is rewritten using the Typescript.
- The new runtime now directly interfaces with WebAssembly's standard API,
instead of relying on emscripten's API.
This change will make the js runtime more portable to runtime variants.
For example, we could also try to make it interface with the tvm's rust runtime implementation.
- System library can be provided through WASI
- We also build a hack to enable Emscripten to generate a WASI like
bundle for runtime environment on the Web.
- The wasm generation now uses the mainlin LLVM.
- Dynamic link(dlopen) is not used due to limitation of wasm,
instead we rely on the recent new RPC refactor to directly
restart a new session for each wasm binary sent to the RPC.
* Address review comments
* Skip tensorcore test
Mahesh Ambule [Thu, 7 May 2020 20:09:18 +0000 (01:39 +0530)]
[Frontend][TFLite] ADD_N operator (#5474)
Matthew Brookhart [Thu, 7 May 2020 20:03:52 +0000 (13:03 -0700)]
fix a few bugs with shape inference and types in the onnx importer (#5534)
Krzysztof Parzyszek [Thu, 7 May 2020 18:18:26 +0000 (13:18 -0500)]
Cache PrimExpr instead of raw pointers in bound analyzer (#5533)
The objects that the raw pointers point to can be deallocated and new
objects can be allocated at the same address, all while these pointers
are still in the cache. This can lead to unexpected behavior, for
example to calculated bound conflicts with previously cached values.
Caching PrimExpr will prevent the objects from being deallocated while
the cache is active.
wsl-inspur [Thu, 7 May 2020 10:46:45 +0000 (18:46 +0800)]
[TOPI][Winograd] Optimization of Conv2d Winograd algorithm on Tensor Core (#5485)
ANSHUMAN TRIPATHY [Thu, 7 May 2020 10:36:20 +0000 (16:06 +0530)]
[FRONTEND][TFLite] Fully connected op conversion made in sync with TFLite (#5510)
* [FRONTEND][TFLite] Fully connected op conversion made in sync with TFLite
* [1] Test case added
* [2] Review comments handled
* [3] Prints removed
Samuel [Thu, 7 May 2020 07:27:39 +0000 (12:57 +0530)]
[TFLITE]Select op support for tflite frontend (#5486)
* [TFLITE]Select/Where op support for tflite frontend
* Review comment fixed
* Review comment fixed
Matthew Brookhart [Wed, 6 May 2020 19:36:01 +0000 (12:36 -0700)]
Fix an issue with Upsampling and update one test to hit the broken usecase (#5530)
Matthew Brookhart [Wed, 6 May 2020 18:51:15 +0000 (11:51 -0700)]
LRN only supports 4D tensors, remove it from alter_op_layout (#5520)
Tianqi Chen [Wed, 6 May 2020 18:50:09 +0000 (11:50 -0700)]
[RUNTIME] Improve PackedFunc robustness (#5517)
* [RUNTIME] Improve PackedFunc robustness
- Add static assert to warn about unsupported type deduction.
- Always inline template expansions for PackedFunc calls.
* Fix style issue
Tianqi Chen [Wed, 6 May 2020 14:50:41 +0000 (07:50 -0700)]
[RPC] Fix the multihop cpu case (#5522)
Matthew Brookhart [Wed, 6 May 2020 03:53:07 +0000 (20:53 -0700)]
fix prelu importer and add tests: (#5521)
Samuel [Tue, 5 May 2020 23:47:44 +0000 (05:17 +0530)]
[TFLITE]Nit: Function names made consitent (#5515)
Ramana Radhakrishnan [Tue, 5 May 2020 23:47:10 +0000 (00:47 +0100)]
[PATCH] [ring_buffer.h] Improve commentary for RingBuffer (#5518)
bytes_available refers to the number of bytes used in the ring
buffer. At the same time, fix a typo.
Tianqi Chen [Tue, 5 May 2020 23:47:00 +0000 (16:47 -0700)]
[RPC][BUGFIX][BACKPORT-0.6] Fix bug in rpc ring buffer shrink (#5516)
mbaret [Tue, 5 May 2020 21:38:40 +0000 (22:38 +0100)]
[QNN] Support CallNode inputs in qnn.concatenate (#5360)
* [QNN] Support CallNode inputs in qnn.concatenate
Currently, qnn.concatenate assumes that its 1st arg
(data) is a TupleNode. This may not necessarily be true
if the input is a CallNode which returns a value of
tuple-type. This patch handles the CallNode case by
inserting TupleGetItemNodes.
* Fix lint
* Add test
Change-Id: I40b55517b8b1dabbeca89337f80c0c8e62e34981
* Use isinstance
Change-Id: I731a231113c5214528373ef52b603a9f05ec502a
* isinstance fix
Change-Id: Ib3495532f6e4feb5aae3d3096cedd4dc4676cdb4
* Use elif/else if
Change-Id: Id8123ea2dd9ce3d8267609de7b5602bb84b084fb
* Fix lint
Change-Id: Ib6899bb22260575aa3f5d8b51b5d2a0277ee2b10
* Lint fix
Change-Id: I56cf1930315344e42d956818a6c68e80836ae786
* Spaces
Change-Id: I3edab192e32bafa9ffdc915315791c63279d85dc
Tianqi Chen [Tue, 5 May 2020 19:07:59 +0000 (12:07 -0700)]
[RPC] Call sync in remote cpu to gpu copies (#5512)
Tianqi Chen [Tue, 5 May 2020 00:05:33 +0000 (17:05 -0700)]
[REFACTOR][RPC][PROCOTOL-CHANGE] Modularize the RPC infra (#5484)
* Update dmlc-core which was mistakenly overriden
* [REFACTOR][RPC][PROCOTOL-CHANGE] Modularize the RPC infra.
This PR refactors the RPC protocol to make it more modularized.
- RPCSession: represent a set of features that need to be implemented
- RPCEndPont: End point that forwards the RPCSession requests over a communication channel.
- RPCModule: Exposes an RPCSession as an rpc device in the TVM Runtime API.
In the new design, the local machine is presented as a special case of RPCSession.
The remote is just another client session that calls into RPCEndPoint.
The RPC communication path is as follows.
```
client -> ClientSession -> EndPoint[client@n0]
-> networking[between n0 <=> n1]
-> EndPoint[server@n1] -> LocalSession[@n1]
```
Because of the new modular design, we can now chain more sessions together.
For example, we can now run the following proxy setup (testcase in test_runtime_rpc.test_session_constructor).
```
client -> ClientSession -> Endpoint[client@n0]
-> networking[between n0 <=> n1]
-> Endpoint[server@n1] -> ClientSession -> Endpoint[client@n1]
-> networking[between n1 <=> n2]
-> Endpoint[server@n2] -> LocalSession[@n2]
```
We can also implement other types of Sessions.
As an example, We introduced a PopenSession that communicates with
the another process via a pipe.
We also add more comments about the internal of the RPC.
The communication protocol is simplfied using a similar convention as PackedFunc.
This allows us to further reduce the amount of special remote syscalls.
Due to the major improvement and simplification, we are making a non-compatible update to the RPC protocol.
It means that the client and server needs to be upgraded to together in order for it to function correctly.
This PR also introduces a versioning mechanism to the current RPC procotol,
so that future upgrade will be produce more user friendly with error messages.
* Address review comments
* Remove ld library path
MORITA Kazutaka [Mon, 4 May 2020 20:51:36 +0000 (05:51 +0900)]
[RUST][RUNTIME] Fix workspace (#5503)
* [RUST][RUNTIME] Fix workspace
* use ok_or_else instead of ok_or
Yao Wang [Mon, 4 May 2020 15:26:17 +0000 (08:26 -0700)]
Fix Canonical Simplifier (#5505)
Thomas Viehmann [Sun, 3 May 2020 15:34:14 +0000 (17:34 +0200)]
bump tophub rocm version (#5504)
Andrew Reusch [Sat, 2 May 2020 17:52:40 +0000 (10:52 -0700)]
[uTVM] Reset target and wait for runtime initialization on connect. (#5499)
* This ensures a clean runtime environment for tuning and evaluating
tasks.
* This patch assumes that the code flashed to target executes the ARM
BKPT or RISC-V EBREAK instructions after startup.
MORITA Kazutaka [Sat, 2 May 2020 00:06:43 +0000 (09:06 +0900)]
[Rust] Fixes for wasm32 target (#5489)
* [Rust] Fixes for wasm32 target
* [Rust] Add test for wasm32
* allow cargo config to be into repo
* Disable wasm tests in CI
Thierry Moreau [Sat, 2 May 2020 00:02:24 +0000 (17:02 -0700)]
[TFLite] Model importer to be compatible with tflite 2.1.0 (#5497)
Krzysztof Parzyszek [Fri, 1 May 2020 20:55:34 +0000 (15:55 -0500)]
Link necessary libraries when building runtime for Android (#5496)
- Link libgcc to enable use of thread-local storage (ThreadLocalStore
requires emutls).
- Link liblog when building with Hexagon support.
Zhi [Fri, 1 May 2020 20:27:44 +0000 (13:27 -0700)]
[REFACTOR][BOYC] Non recursive partitioning (#5493)
* non recursive partitioning
* refactor maps
* rebase upstream
* refactor shared output
* address comments
Co-authored-by: Cody Yu <comaniac0422@gmail.com>
Samuel [Fri, 1 May 2020 13:03:45 +0000 (18:33 +0530)]
[MXNET]broadcast and logical op support (#5461)
* [MXNET]broadcast and logical op support
* Review comment fixed
Krzysztof Parzyszek [Fri, 1 May 2020 08:43:22 +0000 (03:43 -0500)]
[Hexagon] Change "scalar" and "stack" in IDL from "inrout" to "in" (#5487)
Co-authored-by: Abhikrant Sharma <quic_abhikran@quicinc.com>
Krzysztof Parzyszek [Fri, 1 May 2020 05:06:06 +0000 (00:06 -0500)]
Make "none" DataType explicit (#5491)
* Make "none" DataType explicit
The None data type is created when converting an empty string to DataType.
Add functions to create it and recognize it. Convert it to the "void" LLVM
type in LLVM codegen.
* Rename "none" to "void"
* Map VoidType:Type -> Void:DataType in GetRuntimeDataType
* Map Void:DataType -> VoidType:Type in GetType
Tianqi Chen [Thu, 30 Apr 2020 23:11:38 +0000 (16:11 -0700)]
[IR] Initial stab at std::string->String upgrade (#5438)
Animesh Jain [Thu, 30 Apr 2020 19:21:27 +0000 (12:21 -0700)]
Removing older Object detection TFlite test (#5477)
Andrew Reusch [Thu, 30 Apr 2020 17:59:33 +0000 (10:59 -0700)]
[RUNTIME][uTVM] AutoTVM + uTVM for Cortex-M7 (#5417)
* Prototype for micro TVM.
* Cleanup and sync micro tvm prototype.
* Use /std:c++14 with MSVC.
* Per tqchen: project has already moved to C++14
* Presubmit failed for code that built locally on gcc.
* fix ASF lint, and fix add_asf_header too
* Compiles with USE_MICRO=OFF.
* Cleanup TargetPtr and word size representations.
* fix compile warning
* address logan's comments
* address logan and liangfu comments
* address thierry's comments
* address u99127, liangfu, tmoreau89 comments
Co-authored-by: Logan Weber <weberlo@cs.washington.edu>
Zhi [Thu, 30 Apr 2020 17:00:27 +0000 (10:00 -0700)]
[Fix] Add ConstantNode to IsAtomic (#5457)
* add constantnode to atomic
* Add ToANormalForm to FoldConstant
Hua Jiang [Thu, 30 Apr 2020 15:07:23 +0000 (08:07 -0700)]
[VTA] Fix VTA compile issue (#5481)
* [VTA] Fix Pynq driver build issue.
Issue:
When doing vta compile in xilinx FPGA, the pynqdriver.cc report can
not find <vta/driver.h>
Solution:
add related path.
* Fix libvta load fail issue.
issue:
run vta on pynq board libvta.so load failed.
solution:
fixed VTA.make logic issue
Tianqi Chen [Thu, 30 Apr 2020 15:07:00 +0000 (08:07 -0700)]
[RUNTIME] Improved Packed FFI for optional. (#5478)
Allows Optional<NDArray> and module to be passed with the right type code.