* [FIX,AUTOTVM] Add backtraces to tuning errors
Collects tracebacks in LocalBuilder and LocalRunner and adds them to the
error messages.
* formatting
* correctly unpack traceback and exception
* add assert
* fix?
* one remaining measureresult
* formatting
* fixed
* add conv2d transpose nhwc cudnn test
* support conv2d transpose nhwc direct offload to cudnn
* add cutlass dgrad support
* remove unused arg
* allow target none
* fix beta initiaization condition
* disable dynamic dense fp16 test since it fails on cuda 11.6
* [USMP] Add performance characteristics to PoolInfo
Scheduling algorithms that wish to optimize around
memory pools require further information about the
perfomance characteristics of those pools. This
commit adds clock frequency, bandwidth, latency and
burst length as optional fields to PoolInfo.
Change-Id: I4cf3f35324d093fb38e874f0f2e587cb84d4ba1e
* Remove unused import
Change-Id: I1e2ef885425f4361b80c2bab9261ec129e61a756
* [AUTOTVM] Use opt level 3 when extracting tasks
Autotvm was implicitly ignoring opt_level when extracting tasks because
pass opt_level is a thread local variable and extraction happens in a
new thread. Not having opt_level 3 causes alter op layout to not
fire, which in turn prevents tuning from finding all possible kernels.
* disable alter op layout
* [LLVM,TIR] Print LLVM intrinsic names instead of ids
This makes it much easy to understand what is happening with llvm
intrinsics.
* add test, version llvm
* [microNPU] Add support for nearest neighbor and bilinear upsampling
Adds support for 2x2 nearest neighbor and bilinear upsampling. In the
case of bilinear upsampling with align_corners set to true, the
upsampling size must be `2*input_size - 1` (as opposed to `2*input_size`).
Change-Id: I95d215eabfaac983629dcdedcda2b90efb8e0ddf
* rebase and add support for no-upsampling case.
Change-Id: I840d8ee3671a40c5c99f22119442c349dbed39cf
* Adds runtime to AOTExecutorFactoryModule
* Standalone CRT files are added to MLF tarball if runtime is crt
* external_dependencies info added to metadata.json for crt runtime
* microNPU demo Makefile references standalone crt files from MLF tarball
* [Fix Bug]fix the bugs of keras frontend when parsing LSTM, GRU, RNN layers.
* Reformat files with black formatter.
Co-authored-by: AndrewZhaoLuo <andrew.zhao.luo@gmail.com>
* [Runtime][PipelineExecutor] Pipeline Executor Sequential execution
In the first, adding the "get output" logic. Secondly, adding the the sequential executing
logic of pipeline executor. In the last, testing the pipeline executor interface and
checking the output data.
* Address review comments.
Co-authored-by: Cody Yu <comaniac0422@gmail.com>
* trigger build.
Co-authored-by: Cody Yu <comaniac0422@gmail.com>
Before this commit, microNPU creates PrimFunc as if
it accepts constants from the callee. This commit
changes the PrimFunc to remove the constants as an
argument to PrimFunc as they are not provided from
the main function.
* Change function constructors to WithFields
Get rid of std::moves, they were causing problems
* Fix bad rebase
* flaky
* try to trigger ci
* try again
This commit introduces BaseAddress ObjectRef to determine
base addresses in the codegen for microNPU. This is
required when multiple memory pools become available. Thus,
base addresses could not be statically determined in the
source module.
* introduce profile_all_alignments option
* add profile_all_alignment option to API
* wip
* fixed dynamic case
* black
* update gen_gemm too
* minor improvement
* fix
* all tests work
* add doc
* fixed for sm = 75 case
* fix typo
* remove unused import
* profile_all -> find_first_valid
* fix
Adding interfaces into Pipeline Executor to "run", "stop","set input",
and "get input" from the pipeline executor,
In this patch, we also implemented the "BackendRuntime" structure to
wrap the graph runtime interface in order to support pipeline executor
interface and implement data copy method. This method is used to
transfer data between two backend runtimes.
* [CMSIS-NN] Update microNPU demo to include offloading to CMSIS-NN
Change-Id: I6a3ba9db3e3cb2bd7c10383ebd52f9a1cdad74d0
* [CMSIS-NN] Update microNPU demo to include offloading to CMSIS-NN
* Addressing comments
Change-Id: I98fcdf95bf408700968827e1abd084a916b3b21c
* [CMSIS-NN] Update microNPU demo to include offloading to CMSIS-NN
* Addressing comments
* Remove build folder before running demo to address #10020
Change-Id: Ifa7ad3ff431f427f8afb8b3c9f06711b3b59ad62
* Correctly filter tvmc Targets
Fixed logic to check for >2 TVM Target to be based on none-hybrid
Targets only
Co-authored-by: Chris Sidebottom <chris.sidebottom@arm.com>
* [microNPU] Add support for requantize
Adds support for stand-alone requantize operation which is legalized to
an identity operation on the NPU.
Change-Id: Ie2450c5fc72f405eddf517593236074aa4716c3b
* fix concatenate tests failing due to not being bit exact
Since requantize is now offloaded, concatenate tests were failing
due a reference not being used.
Change-Id: I44b26b5daecfefb776ca19e6646f3690f5570f52
* test multiple requantize offload
Change-Id: I60a3283461a7a7083c05289e84f570698388077b
* address comments
Change-Id: I7196a0fa468eb7c6a96f2b8a68f3a2dcf5a5693c
* [TOPI,CUDA] Don't enable cudnn conv2d kernel if is not supported
Specifically, check that layout is not NCHW if datatype is int8.
* remove all conv2d_cudnn int8 support
* First pass on modifying Keras importer to handle TimeDistributed
* Use squeeze inside TimeDistributed, add tests
* linter fixes
* More linting
* Even more linting
* Fix unused argument annotations
* Forgot one pylint annotation
* Forgot to set up data layout in _convert_activation
* Decouple data_layout from etab
* Linting fix
* Forgot to set data_layout argument
* Missed an etab.data_format, also test_conv1d was not in the test file's main
* Rebase fixes
* Linting fix
* _convert_lambda needs a data layout argument too
* linting fix too
* Lint the test file too
* Redundant variables
* Simplify further
* Another simplification
Co-authored-by: Steven Lyubomirsky <slyubomirsky@octoml.ai>