* Introduce Model Library Format export format.
* This function produces a stable on-disk representation of TVM's
compiler output.
* It's intended just for use with the C runtime for microTVM right
now. It could be expanded for other use cases.
* This PR implements the Model Library Format RFC, which ultimately
is intended to support the Project Generator API (RFC
forthcoming).
* There may be some changes to the format without revving the version
number until downstream consumers are known. The Project Generator
API is the first such known downstream consumer.
* There are no plans currently to support generating old Model
Library Format from TVM. The version number is intended as a
compatibility check between the generator and downstream consumers.
* [Relay] Fix relay op strategy for cuda dense int8
* Remove uint8 && Add autotvm task extraction test for relay graph that contains dense op (int8 * int8 -> int32)
* Reformat the code of test case
* properly return and unflatten outputs from GraphExecutor
* lint
* cleaner approach, not sure what I was thinking before
* remove unused import
* forgot copyto cpu
* make solution even cleaner using iterator
* Rewrite the Rust Module API and change some imports causing crashes.
This commit also updates the docs to remove outdated information.
* Renable Python test and remove warnings
* Python test still flaky
* Fix broken module test
* Fix broken test
* Reset test file
* [RUNTIME] Move Map into runtime
This allows us to use Map to store parameters needed at runtime.
* node.{Array|Map} -> runtime.{Array|Map}
* missed some renames
* add while node
* update visitors
* binary search lowering works
* llvm codegen working
* cuda codegen working
* nms updated to use while loop
* add missing upper bound check too
* add mandelbrot test
* add gpu mandel
commit ee2363bf8131830cf0fb112890befd6be6a03f36
Author: Masahiro Masuda <masahi129@gmail.com>
Date: Fri Jan 29 11:44:02 2021 +0900
enable extern lib offload for nvptx
* rename test
* run black
* add doc
* add collatz test
* add while + vectorize test
* simplify bin search
* Add special case visit method to storage_access.cc
* disallow while loop inside vectorized loop
* disallow trivial condition since we do not have break
* error out in CoprocSync for now
* error out LiftAttrScope for now
* add placeholder to inject_vpthread
* refactor to use MakeAttach
* handle WhileNode in InplaceOpVerifier
* error out in InjectVirtualThread
* try handle WhileNode in StoragePlanRewriter
* remove WhileNode visitor from storage rewrite
* add while loop storage rewrite test
* update tests
* move test_vectorize_while_fail to test_tir_transform_vectorize.py
* basic pass profiler prototype
* allow enable/disable of pass profiling
* lint
* add example pass profiler usage as test
* render pass profiles to String instead of stdout
* Initial commit of the unique operator
Add unit tests for unique operator
* Add tensorflow unique op
* Refactor unique to use sort-based algorithm
* Change relay.unique test to run only on cpu
* Change topi.unique test to run only on cpu
* Change range to parallel for parallelizable loops
* Add return_counts option for relay.unique and topi.unique, add pytorch frontend
* Fix pylint
* Patch pytorch frontend
* Initial support of topi.cuda.unique
* Refactor to use ir_builder directly
* Modularize adjacent difference
* Refactor to simplify
* Fix typo
* Combine _unique and _unique_with_counts
* Reuse indices_ptr to remove arange_ptr
Co-authored-by: Yanming Wang <yanmwang@amazon.com>
* Introduce code_loader to AutoTVM.
* Prepares for autotuning with microTVM, and provides extension hook
for VTA.
* add vta hook
* git-black
* pylint
* Add missing import
* Fix import problem
* add missing import
* rename code_loader to module_loader
* rename remote_kw to remote_kwargs
* black format
* Fix stack overflow when partially-__init__ Node raises exception.
* If a Node subclass raises an exception and ctypes is in use before
__init_handle_by_constructor__ is called (or self.handle is
otherwise set), a Python stack overflow could result. This is
because the unset handle slot causes self.handle accesses to
fallback on the getattr(self, 'handle') method, invoking
NodeGetAttr.
* Then I believe this causes an infinite loop.
* The fix is to make Node.__getattr__ raise AttributeError for all
attributes in __slots__, then make __del__ tolerant to missing
self.handle.
* I don't believe cython is affected because it implements a
descriptor to access its underlying chandle and that shouldn't be unset.
* black format
* actually use handle instead of self.handle