Hardware params for android device and CPU

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:

  1. 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)
  2. Have I been wrongly compiled runtime/tvm_rpc for device? (edit: resnet is autoscheduled correctly, so I think runtime is correct)
  3. 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.
  4. I think problem is with model. This is model for audio data…