Cannot pass test_xxx_conv2d


#1

env:
host:ubuntu18.04 in microsoft WSL,cmake3.15.3,llvm6.0.1,gcc7.4
fpga:pynq-z1
I can already build libtvm,libtvm_topi,libvta_tsim,libvta_fsim,libtvm_runtime,libnnvm_compiler.so and pass conv2d test on host with normal 6Gops

I can also pass test_program_rpc without exceptions.

Then I change vta_config.json and test integration/xxconv2d.py,however,I face one problem everytime,regardless of the version of gcc,cmake,ubuntu

> Conv2DWorkload(batch=1, height=56, width=56, in_filter=64, out_filter=64, hkernel=3, wkernel=3, hpad=1, wpad=1, hstride=1, wstride=1)
> Traceback (most recent call last):
> 
>   File "vta/tests/python/integration/test_benchmark_topi_conv2d.py", line 242, in <module>
>     test_conv2d(device="vta")
> 
>   File "vta/tests/python/integration/test_benchmark_topi_conv2d.py", line 238, in test_conv2d
>     vta.testing.run(_run)
> 
>   File "/home/liao/Software/tvm/vta/python/vta/testing/util.py", line 75, in run
>     run_func(env, remote)
> 
>   File "vta/tests/python/integration/test_benchmark_topi_conv2d.py", line 237, in _run
>     run_conv2d(env, remote, wl, target)
> 
>   File "vta/tests/python/integration/test_benchmark_topi_conv2d.py", line 197, in run_conv2d
>     cost = time_f(data_arr, kernel_arr, bias_arr, res_arr)
> 
>   File "/home/liao/Software/tvm/python/tvm/module.py", line 194, in evaluator
>     blob = feval(*args)
> 
>   File "/home/liao/Software/tvm/python/tvm/_ffi/_ctypes/function.py", line 210, in __call__
>     raise get_last_ffi_error()
> 
> tvm._ffi.base.TVMError: Traceback (most recent call last):
>   [bt] (3) /home/liao/Software/tvm/build/libtvm.so(TVMFuncCall+0x65) [0x7f1c393f5375]
>   [bt] (2) /home/liao/Software/tvm/build/libtvm.so(std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::RPCModuleNode::WrapRemote(void*)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)+0x3d) [0x7f1c394468bd]
>   [bt] (1) /home/liao/Software/tvm/build/libtvm.so(tvm::runtime::RPCSession::CallFunc(void*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*, tvm::runtime::PackedFunc const*)+0x1c6) [0x7f1c3944eed6]
>   [bt] (0) /home/liao/Software/tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x43) [0x7f1c38c5f2a3]
>   File "/home/liao/Software/tvm/src/runtime/rpc/rpc_session.cc", line 962
> TVMError: Check failed: code == RPCCode: :kReturn: code=4

I want to get help about how to fix this bug.I have tried:
1.remove cost=time_f and use namedtuple to construct a new one,the program lived thoroughly,however,I get lots xxxtest Failed
2.remove the raise of exception,then I get an exception about dtype


#2

I have tried to create a fake ‘results’ in module.py to avoid call ‘feval’ function. After that,the test program can run till finished,however,the value of ‘*_arrs’ wasnot correct.