You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2021/06/01 17:10:58 UTC
[GitHub] [tvm] areusch commented on a change in pull request #8023: [AOT] Initial implementation of --unpacked-api
areusch commented on a change in pull request #8023:
URL: https://github.com/apache/tvm/pull/8023#discussion_r643315172
##########
File path: tests/python/relay/aot/test_crt_aot.py
##########
@@ -44,7 +44,8 @@
@pytest.mark.parametrize("use_calculated_workspaces", [True, False])
-def test_conv_with_params(use_calculated_workspaces):
+@pytest.mark.parametrize("target_options", ["", "--unpacked-api"])
Review comment:
it might make sense to specify --unpacked-api=0 rather than the implicit default behavior here, so that tests explicitly cover the packed-api case
##########
File path: include/tvm/runtime/module.h
##########
@@ -232,6 +232,8 @@ constexpr const char* tvm_param_prefix = "__tvm_param__";
constexpr const char* tvm_lookup_linked_param = "_lookup_linked_param";
/*! \brief The main AOT executor function */
constexpr const char* tvm_run_func_prefix = "tvm__run_func";
+/*! \brief The entrypoint function to the generated network */
Review comment:
let's at least update the comment here (and above, in the other constants) to explain the difference between `tvm_run_func_prefix`, `tvm_module_main`, and `tvm_entrypoint_name`. perhaps we should also qualify entrypoint (e.g. `tvm_unpacked_entrypoint_name`).
##########
File path: src/relay/backend/aot_executor_codegen.cc
##########
@@ -535,6 +551,8 @@ class AOTExecutorCodegen : public ExprVisitor {
TargetsMap targets_;
/*! \brief target host */
Target target_host_;
+ /*! \brief untyped operators flag */
Review comment:
could you explain this a bit more and specify polarity (e.g. true when abc thing should happen; false when other thing should happen)?
##########
File path: src/target/target_kind.cc
##########
@@ -219,6 +219,7 @@ TVM_REGISTER_TARGET_KIND("llvm", kDLCPU)
.add_attr_option<Bool>("system-lib")
.add_attr_option<String>("runtime")
.add_attr_option<Bool>("link-params", Bool(false))
+ .add_attr_option<Bool>("unpacked-api", Bool(false))
Review comment:
here i think we should not specify a default--this is why we see errors like https://ci.tlcpack.ai/blue/organizations/jenkins/tvm/detail/PR-8155/2/pipeline. These are identical to what we'll see when we migrate `unpacked-api` to a separate configuration space.
```
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/sphinx_gallery/gen_rst.py", line 480, in _memory_usage
out = func()
File "/usr/local/lib/python3.6/dist-packages/sphinx_gallery/gen_rst.py", line 465, in __call__
exec(self.code, self.globals)
File "/workspace/tutorials/get_started/auto_tuning_with_python.py", line 408, in <module>
with autotvm.apply_history_best(tuning_option["tuning_records"]):
File "/workspace/docs/../python/tvm/autotvm/task/dispatcher.py", line 201, in __init__
self.load(records)
File "/workspace/docs/../python/tvm/autotvm/task/dispatcher.py", line 229, in load
for inp, res in records:
File "/workspace/docs/../python/tvm/autotvm/record.py", line 212, in load_from_file
ret = decode(row)
File "/workspace/docs/../python/tvm/autotvm/record.py", line 157, in decode
tgt = Target(str(tgt))
File "/workspace/docs/../python/tvm/target/target.py", line 104, in __init__
self.__init_handle_by_constructor__(_ffi_api.Target, target)
File "tvm/_ffi/_cython/./object.pxi", line 126, in tvm._ffi._cy3.core.ObjectBase.__init_handle_by_constructor__
File "tvm/_ffi/_cython/./packed_func.pxi", line 279, in tvm._ffi._cy3.core.ConstructorCall
File "tvm/_ffi/_cython/./packed_func.pxi", line 257, in tvm._ffi._cy3.core.FuncCall
File "tvm/_ffi/_cython/./packed_func.pxi", line 246, in tvm._ffi._cy3.core.FuncCall3
File "tvm/_ffi/_cython/./base.pxi", line 163, in tvm._ffi._cy3.core.CALL
ValueError: Traceback (most recent call last):
5: TVMFuncCall
at /workspace/src/runtime/c_runtime_api.cc:474
4: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /workspace/include/tvm/runtime/packed_func.h:1150
3: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /usr/include/c++/5/functional:2267
2: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), void (*)(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
at /usr/include/c++/5/functional:1871
1: tvm::TargetInternal::ConstructorDispatcher(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)
at /workspace/src/target/target.cc:496
0: tvm::Target::Target(tvm::runtime::String const&)
at /workspace/src/target/target.cc:391
File "/workspace/src/target/target.cc", line 391
ValueError: Error when parsing target["unpacked-api"]: Cannot recognize 'unpacked-api'. Candidates are: link-params, system-lib, model, mfloat-abi, mcpu, tag, mattr, runtime, device, keys, libs, host, mtriple. Target creation from string failed: llvm -keys=cpu -link-params=0 -unpacked-api=0
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org