Hi there!
I am following the Auto-tuning a Convolutional Network for ARM CPU document, however, the AutoTVM fails with RPC timeout error.
Steps I made:
- (host) Started RPC tracker:
$ python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190
2024-02-09 16:07:29.473 INFO bind to 0.0.0.0:9190
- (rpi) Connected to RPC tracker:
$ python -m tvm.exec.rpc_server --tracker=192.168.0.43:9190 --key=homePi --no-fork
2024-02-09 15:09:14.161 INFO bind to 0.0.0.0:9090
- (host) Check status:
$ python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190
Tracker address 0.0.0.0:9190
Server List
------------------------------
server-address key
------------------------------
192.168.0.99:9090 server:homePi # valid IP of the Raspberry
------------------------------
Queue Status
------------------------------
key total free pending
------------------------------
homePi 1 1 0
------------------------------
- (host) Start tuning with the given example code. The output is as follows:
2024-02-09 16:14:09.611 ERROR Socket error: timed out
Exception in thread Thread-2 (_check):
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "<~>/tvm/python/tvm/autotvm/measure/measure_methods.py", line 801, in _check
remote = request_remote(device_key, host, port, priority)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<~>/tvm/python/tvm/autotvm/measure/measure_methods.py", line 767, in request_remote
tracker = _rpc.connect_tracker(host, port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<~>/tvm/python/tvm/rpc/client.py", line 558, in connect_tracker
return TrackerSession((url, port))
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<~>/tvm/python/tvm/rpc/client.py", line 312, in __init__
self._connect()
File "<~>/tvm/python/tvm/rpc/client.py", line 318, in _connect
self._sock = base.connect_with_retry(self._addr)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<~>/tvm/python/tvm/rpc/base.py", line 195, in connect_with_retry
raise sock_err
File "<~>/tvm/python/tvm/rpc/base.py", line 189, in connect_with_retry
sock.connect(addr)
TimeoutError: timed out
- (rpi) Check open ports:
sudo ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 1 0.0.0.0:9090 0.0.0.0:* users:(("python",pid=1741,fd=3))
I am trying to tune a stock MobileNet model from the example code.
Could it be the problem that the two devices are on WiFi network (same connection)? Or did I miss some configuration step?