Handle the VTA timeout

Dear all,

I Have made some modification to the VTA and deployed it on ZCU104. They are cases where the VTA times out. My requirement is avoid this timeout and program the fpga and redeploy the classification again without throwing the error. I have to send timer() in deploy classification about the timeout condition.

Here is the error :slight_smile: Traceback (most recent call last): File “vta/tutorials/frontend/deploy_classification.py”, line 326, in tcost = timer() File “/home/harish/tvm/python/tvm/runtime/module.py”, line 292, in evaluator blob = feval(args) File “/home/harish/tvm/python/tvm/_ffi/_ctypes/packed_func.py”, line 237, in call raise get_last_ffi_error() tvm.error.RPCError: Traceback (most recent call last): 11: TVMFuncCall at /home/harish/tvm/src/runtime/c_runtime_api.cc:474 10: tvm::runtime::PackedFunc::CallPacked(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue) const at /home/harish/tvm/include/tvm/runtime/packed_func.h:1151 9: std::function<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)>::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const at /usr/include/c++/7/bits/std_function.h:706 8: _M_invoke at /usr/include/c++/7/bits/std_function.h:316 7: operator() at /home/harish/tvm/src/runtime/rpc/rpc_module.cc:280 6: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const at /home/harish/tvm/src/runtime/rpc/rpc_module.cc:128 5: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:1020 4: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:808 3: tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:652 2: tvm::runtime::RPCEndpoint::EventHandler::HandleNextEvent(bool, bool, std::function<void (tvm::runtime::TVMArgs)>) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:136 1: tvm::runtime::RPCEndpoint::EventHandler::HandleProcessPacket(std::function<void (tvm::runtime::TVMArgs)>) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:316 0: tvm::runtime::RPCEndpoint::EventHandler::HandleReturn(tvm::runtime::RPCCode, std::function<void (tvm::runtime::TVMArgs)>) at /home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc:377 16: TVMFuncCall 15: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#2}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 14: tvm::runtime::RPCServerLoop(int) 13: tvm::runtime::RPCEndpoint::ServerLoop() 12: tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>) 11: tvm::runtime::RPCEndpoint::EventHandler::HandleNextEvent(bool, bool, std::function<void (tvm::runtime::TVMArgs)>) 10: tvm::runtime::RPCEndpoint::EventHandler::HandleProcessPacket(std::function<void (tvm::runtime::TVMArgs)>) 9: tvm::runtime::RPCSession::AsyncCallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::RPCCode, tvm::runtime::TVMArgs)>) 8: tvm::runtime::LocalSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&) 7: _ZNSt17_Function_handlerIFvN3tvm7runtime7TVMArgsEPNS 6: tvm::runtime::WrapTimeEvaluator(tvm::runtime::PackedFunc, DLDevice, int, int, int, tvm::runtime::PackedFunc)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) 5: tvm::runtime::GraphExecutor::Run() 4: std::_Function_handler<void (), tvm::runtime::GraphExecutor::CreateTVMOp(tvm::runtime::TVMOpParam const&, std::vector<DLTensor, std::allocator > const&)::{lambda()#3}>::_M_invoke(std::_Any_data const&) 3: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::WrapPackedFunc(int ()(TVMValue, int*, int, TVMValue*, int*, void*), tvm::runtime::ObjectPtrtvm::runtime::Object const&)::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&) 2: 0x0000007f847f0a5b 1: 0x0000007f847f15d7 0: 0x0000007f849e263f File “/home/harish/tvm/src/runtime/rpc/rpc_endpoint.cc”, line 377 RPCError: Error caught from RPC call: [15:01:58] /home/xilinx/tvm/vta/runtime/runtime.cc:1135: Check failed: timeout == 0 (1 vs. 0) :

Kindly suggest me.

kind regards, Harish