* method of creating of NDArray from external DLTensor was implemented
* set input without copying for DLTensor source
* code clean up
* update description and comments after review
Co-authored-by: Valery Chernov <valery.chernov@deelvin.com>
* [Runtime][PipelineExecutor]Add forwarding queue logic for set input.
When the set_input function get called, a runtime of pipeline may not
yet finish the former computation work then the new set_input call would
break the current computation logic, to avoid such issue, we add the
forwarding queue logic to guarantee the order of input data consuming.
* polish the documents.
* The patch is to simplify the implmentation of QNNParam and make it more friendly to Python 2.x.
* Empty-Commit
* fix error about boolean value of Tensor with more than one value is ambiguous.
* [Arith] Updated arith::DetectIterMap to keep extent=1 components
Previously, arith::DetectIterMap simplified the output expression by
replacing iteration variables with extent==1 with their value. This
prevented the return value from being used in
arith::InverseAffineIterMap to solve for the variable, as it no longer
existed in the returned expressions.
This commit changes arith::DetectIterMap to keep the iteration
variable even if extent==1, and adds a motivating unit test that
requires this updated behavior.
* Updated to retain default behavior of DetectIterMap
To avoid breaking existing test cases, updated to maintain the same
default behavior, but a flag to maintain trivial iterators in the
result.
* Updated FFI and Python API for DetectIterMap
* add relay.f.frontend.fm_oneflow support cnns
* support cuda
* fix mobilenetv2 and reviews
* fix: model without meta info
* support eager and yolo, add test
* fix: license
* add: tutorials
* fix: support new graph
* fix some comments
* refine
* fix concat op convert bug
* refine
* refine
* change cuda to cpu
* fix bug
* fix ci error in tvm
* fix pylint check
* delete useless file
* add skimage package in docker
* fix ci error
* fix bug
* add oneflow fronted test in ci
* merge conflict
* fix tutorial
* try to find error in ci
* revert
* merge conflict
* black oneflow
* Delete from_oneflow.py
Co-authored-by: Xiaoyu Zhang <35585791+BBuf@users.noreply.github.com>
Co-authored-by: BBuf <1182563586@qq.com>
The server IP address will be obtained from the RPC tracker, but multiple
servers must be distinguishable. To enable this, set a unique key when
starting a server, and use that key when starting a session.
* Only remove port forwarding applied in a session
to avoid affecting global adb state.
* Send SIGINT to attempt to allow remote
server to cleanup and undbind port in
deconstruction
* Only attempt to forward ports not in use by
adb or the system.
* Allows module-name as a command line argument to tvmc
* Updates microNPU graph partitioner to pass module name to PartitionGraph()
* Updates CMSIS-NN graph partitioner to pass module name to PartitionGraph()
Change-Id: I12a4a2eef2ddc7e3c4a6c0dd8fdcab009c975bac
* [Hexagon] Move aot/graph_executor interactions into launcher
Follow-up from https://github.com/apache/tvm/pull/10581, applying
similar changes to the AOT and graph executor interactions. This
moves the file management and upload/download from the unit tests into
the launcher.
* Added Session.test_executor to avoid duplication in graph/aot test.
* Resolve lint errors
* Moved link flags workaround out of session, into create_aot_shared
* Separated Session.get_*_executor and Session.get_executor_from_factory
* Updated to resolve lint error
* Make all required adjusts in the code to comply with the new version
* Upadte ci-lint to v0.71, based on tlcpackstaging/ci_lint:20220411-060305-45f3d4a52
* [CUDNN] Add cuDNN as a Relay partitioning target (BYOC)
This adds infrastructure to support offloading of Relay
patterns to cuDNN. In this initial commit, only softmax
is supported.
* Refactor common TE BYOC code into separate file
* Add test guard
* [build] Update libinfo and add lint rule
This updates `tvm.support.libinfo()` to be in-line with the current tvm options. It also adds a lint rule to ensure these stay matched up in the future as well as a script to print out the options in more detail. This should add in communication when debugging (i.e. tell someone to run `python -c 'import tvm; tvm.support.describe()` to learn everything you need about their envrionment)
* Fix pylint
Co-authored-by: driazati <driazati@users.noreply.github.com>
As discussed in https://github.com/apache/tvm/pull/10856#discussion_r840324560, add a utility under `meta_schedule/testing/utils.py` to clean up the database boilerplate. Also using `DummyDatabase` instead of `JsonDatabase` for further clean up, as suggested by @junrushao1994 .
* Add per-channel quantization to QNN add/subtract/multiply
* Add feedback
* Add feedback - round 2
* Fix for arm test
* Add params to the test
* Try again
* Try int
* Move lhs_axis and rhs_axis
* Add as an attribute
* Add quotes
* Respect dtype in Scalarize.
* Add unittest.
* Fix lint.
* Promote dtype of IntImm to match loop_var in For.
* Fix dtype mismatches.
* Lint
* Lint.
* jostle ci
* Match dtype in hybrid parser.
* [RUNTIME] Api to get number of runtime threads
Add `tvm::runtime::threading::NumThreads` and `tvm.runtime.num_threads`
as a way to get the number of threads in use by the TVM runtime.
* check if equal to hardware threads or hardware threads/2
This PR adds DFPattern support for the TRT backend without removing the existing predicate registry.
Adds and extends the following:
In tensorrt.py: Add a pattern_table for all the supported ops and consumes the pre-existing op_registry checks
Adds an additional pass as unmerge_composites.cc. This is required for the TRT backend as it expects a single primitive
function to work with, while the MergeComposite and PartitionGraph will produce a single function for each Composite
pattern.
Adds test_inline_composites.py which tests the newly introduced pass.
Both the pattern-based and predicate-based pass sequences produce syntactically equivalent IRModules.
This is to ensure backwards compatibility."
Fix typo in comment about kill method in PopenWorker class used to kill
child processes created by the worker.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
Check that the function to be profiled is actually defined.
Check that the MetricCollector used actually can time the region
requested.
Default to using the module's entry_name instead of "main".
* introduce vm compile path
* support vm in tvmc
* cleanup + lint
* add profiler + simplify vm case in tvmcpackage
* address comments + parametrize tests
Co-authored-by: Margaret Qian <mqian@octoml.ai>
* [CUBLAS] Add support for nn.dense and nn.batch_matmul
This commit includes a fix for cublas.batch_matmul
when mixed precision is being used.
* Specify args in dense
There is no way to pass kwargs dictionary from C++ code, so the previous
way never worked. Use TVM's Map instead, and pass the target architecture
version to the linker to use libraries specific to the architecture.
In this PR we introduced more fine-grained loop spliting and reordering for Rewrite-Unbound-Block post processor based on given cuda target's attribute (`max_threads_per_block`). After this PR the performance of non-reductional kernels could improve by ~20%. Regression tests are also added.
This demonstrates how to selectively extract and tune tasks from a whole relay mod, and apply the tuned schedule during the final `relay.build(...)`.
This flow is entirely different from existing tests in `test_meta_schedule_tune_relay.py` where ALL ops are extracted and auto-scheduled by MS. My test extracts only int8 `dense` op, applies a manual TIR schedule on it, and leaves int8 `batch_matmul` to be scheduled by TE.
This also serves as an example of autotvm style manual template + tensorization. The manual TIR schedule is equivalent to TE VNNI `dense` schedule in https://github.com/apache/tvm/blob/ce335c3a74185df6cc1152e53c60695d8a418d8e/python/tvm/topi/x86/dense.py#L366-L375