I am trying to use VTA on a DE10-Standard board. Everything was fine until I tried to program the board with my bitstream. VTA runtime was built successfully. Now I start the RPC server, as in the tutorial, establish a connection between my host machine and the board, reconfigure runtime. Then the server starts the
program_fpga method and hangs completely when returning from
load_vta_dll method in
vta/python/vta/exec/rpc_server.py. I have only to reset the board after it.
I thought that something was wrong with the
libvta.so library and it couldn’t be loaded. There was an undefined symbol from the
libtvm_runtime.so so I linked this library to
libvta.so. But it didn’t help. I have tried different Python versions. It helped neither.
env = vta.get_env() device_host = os.environ.get("VTA_RPC_HOST", "<board-ip>") device_port = os.environ.get("VTA_RPC_PORT", "9091") remote = rpc.connect(device_host, int(device_port)) vta.reconfig_runtime(remote) vta.program_fpga(remote, bitstream="<path-to-bitstream>/1x16_i8w8a32_15_15_18_17.rbf")
Board RPC server output:
root@DE10-Standard: tvm/apps/vta_rpc/start_rpc_server.sh INFO:RPCServer:bind to 0.0.0.0:9091 INFO:RPCServer:connection from ('<host-ip>', 53684) INFO:root:Loading VTA library: /home/root/tvm/vta/python/vta/../../../build/libvta.so
I don’t think that this happens because I use the DE10-Standard board instead of the DE10-Nano. The runtime doesn’t even start to execute platform-dependent code.
Has anyone encountered such a problem? Can it be because of using Python’s multiprocessing modules?
Can I bypass it by programming my board using Quartus toolchain and not executing
program_fpga (but I think that the server will also hang trying to load
libvta.so from some other place)?