[AutoTVM] Cannot get remote devices from tracker


#1

Hello, I’m trying to autotune my CNN to run on PYNQ FPGA using this tutorial.

I get the following error when I run the code:

File "autotune.py", line 256, in <module>
    tune_and_evaluate(tuning_option)
  File "autotune.py", line 214, in tune_and_evaluate
    tune_tasks(tasks, **tuning_opt)
  File "autotune.py", line 138, in tune_tasks
    autotvm.callback.log_to_file(tmp_log_file)])
  File "/home/youn/.local/lib/python3.6/site-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/autotvm/tuner/tuner.py", line 108, in tune
    measure_batch = create_measure_batch(self.task, measure_option)
  File "/home/youn/.local/lib/python3.6/site-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/autotvm/measure/measure.py", line 252, in create_measure_batch
    attach_objects = runner.set_task(task)
  File "/home/youn/.local/lib/python3.6/site-packages/tvm-0.6.dev0-py3.6-linux-x86_64.egg/tvm/autotvm/measure/measure_methods.py", line 211, in set_task
    raise RuntimeError("Cannot get remote devices from the tracker. "
RuntimeError: Cannot get remote devices from the tracker. Please check the status of tracker by 'python -m tvm.exec.query_rpc_tracker --port [THE PORT YOU USE]' and make sure you have free devices on the queue status.
^CException ignored in: <module 'threading' from '/usr/lib/python3.6/threading.py'>
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 1294, in _shutdown
    t.join()
  File "/usr/lib/python3.6/threading.py", line 1056, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):

I’m pretty sure my FPGA is registered, for when I run

python3 -m tvm.exec.query_rpc_tracker --port 9190

I get

Tracker address localhost:9190
Server List
----------------------------
server-address  key
----------------------------
192.168.1.15:51734      server:pynq
----------------------------

Queue Status
----------------------------
key    total  free  pending
----------------------------
pynq   1      1     0
----------------------------

Just as a note, on the FPGA side I run

python3 -m vta.exec.rpc_server --tracker=192.168.1.4:9190 --key=pynq.

while the tutorial says I should run

python3 -m tvm.exec.rpc_server --tracker=192.168.1.4:9190 --key=pynq

The latter gives me this error. You should update the tutorial if it is outdated. Otherwise, any help on figuring out what’s wrong would be appreciated. Thanks!