Hello,
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.
My script:
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)?