tvmc tune appears to have broken between 0.12.0 and 0.13.0.
Produce an autotuner json file (which worked in 0.12.0).
[Task 1/25] Current/Best: 0.00/ 0.00 GFLOPS | Progress: (0/40) | 0.00 sException in thread Thread-1:
Traceback (most recent call last):
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/Users/gmeeker/src/tvm_0.13.0/python/tvm/rpc/server.py", line 272, in _listen_loop
_serving(conn, addr, opts, load_library)
File "/Users/gmeeker/src/tvm_0.13.0/python/tvm/rpc/server.py", line 143, in _serving
server_proc.start()
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/context.py", line 284, in _Popen
return Popen(process_obj)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 32, in __init__
super().__init__(process_obj)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/popen_fork.py", line 19, in __init__
self._launch(process_obj)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/popen_spawn_posix.py", line 47, in _launch
reduction.dump(process_obj, fp)
File "/usr/local/Cellar/python@3.8/3.8.18/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object '_serving.<locals>._serve_loop'
tvmc tune appears to have broken between 0.12.0 and 0.13.0.
Expected behavior
Produce an autotuner json file (which worked in 0.12.0).
Actual behavior
This looks similar to #8363 and #8347 although those are older than 0.12.0 which is working on macOS.
Environment
macOS 13.5.2
Python 3.8.18
TVM 0.13.0 or current head of main branch
Steps to reproduce
Compiled using brew per install from source instructions:
https://tvm.apache.org/docs/install/from_source.html
Run
tvmc tune --target "llvm" --output resnet50-v2-7-autotuner_records.json resnet50-v2-7.onnxas described here:https://tvm.apache.org/docs/tutorial/tvmc_command_line_driver.html
Triage