Hello,
I’m running auto scheduler to tune model on android device (devboard with cortex-a73). When I run scheduler with default argument for hardware parameters, I’m getting a lot of errors:
==================================================
No: 1536 GFLOPS: 0.00 / 0.00 results: MeasureResult(error_type:InstantiationError, error_msg:Traceback (most recent call last):
File "/usr/tvm/python/tvm/auto_scheduler/measure.py", line 619, in _local_build_worker
sch, args = task.compute_dag.apply_steps_from_state(
File "/usr/tvm/python/tvm/auto_scheduler/compute_dag.py", line 154, in ap
...
rERKS2_EE10InitVTableEvENUlRKNS_7ru
0: tvm::auto_scheduler::IndexRewriter::VisitExpr_(tvm::tir::ProducerLoadNode const*)
File "/usr/tvm/src/auto_scheduler/compute_dag.cc", line 764
InternalError: Check failed: (name_it != name_to_arg.end()) is false:
, all_cost:0.00, Tstamp:1703784638.45)
==================================================
Placeholder: p0, p1
parallel i0.0@i1.0@ (0,160)
for i0_c.1 (0,13)
for k.0 (0,250)
for i1_c.2 (0,4)
T_matmul_NT.local = ...
for i0.1 (0,13)
vectorize i1.1 (0,4)
T_matmul_NT = ...
[17:30:38] /usr/tvm/src/auto_scheduler/measure.cc:301: Warning: Too many errors happened during tuning. Switching to debug mode.
Time elapsed for measurement: 8.78 s
When I run
remote = auto_scheduler.utils.request_remote(
args.rpc_key,
host=rpc_hostname,
port=rpc_port)
dev = remote.device(str(target), 0)
# from ipdb import set_trace; set_trace()
print(dev.max_clock_rate)
print(dev.max_shared_memory_per_block)
# print(dev.max_thread_dimensions)
print(dev.max_threads_per_block)
print(dev.multi_processor_count)
print(dev.warp_size)
print("-------")
I’m getting following output(which may explain previous errors?):
None
None
None
None
None
-------
Questions:
- How do I get know, how should I set these parameters? (edit: I have found example values, so I specified them manualy for CPU: Paper tables with annotated results for Transfer Learning Across Heterogeneous Features For Efficient Tensor Program Generation | Papers With Code)
- Have I been wrongly compiled runtime/tvm_rpc for device? (edit: resnet is autoscheduled correctly, so I think runtime is correct)
- Maybe android system is wrongly compiled/setuped, so that TVM cannot read these properties? (edit: the same error on another android device, and devboard odroid c4 (with ubuntu, and with android). So I think these properties are fetched incorrectly, or they are used only by GPUs.
- I think problem is with model. This is model for audio data…