Is AutoScheduler supported on Windows?

I remember last year that AutoTvm wasn’t supported on Windows. Is the new AutoScheduler supported?


Edit: After trying to run the tutorial with resnet-50 on CPU, the tuning fails :frowning:

------------------------------  [ Measure ]
Get 3 programs to measure:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\multiprocessing\", line 105, in spawn_main
    exitcode = _main(fd)
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\multiprocessing\", line 114, in _main
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\multiprocessing\", line 225, in prepare
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\multiprocessing\", line 277, in _fixup_main_from_path
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "D:\data\miniconda\miniconda3\envs\tvm2\lib\", line 85, in _run_code
    exec(code, run_globals)
  File "D:\dev\tvm_scripts\", line 31, in <module>
  File "D:\dev\tvm\python\tvm\auto_scheduler\", line 354, in tune
  File "D:\dev\tvm\python\tvm\auto_scheduler\", line 450, in _tune_task
    self.num_measures_per_round, self.measurer
  File "D:\dev\tvm\python\tvm\auto_scheduler\", line 119, in continue_search_one_round
    return _ffi_api.SearchPolicyContinueSearchOneRound(self, num_measure, measurer)
  File "D:\dev\tvm\python\tvm\_ffi\_ctypes\", line 237, in __call__
    raise get_last_ffi_error()
  File "D:\dev\tvm\python\tvm\_ffi\", line 328, in get_last_ffi_error
    py_err_msg, err_type = c2pyerror(c_err_msg)
  File "D:\dev\tvm\python\tvm\_ffi\", line 257, in c2pyerror
    stack_trace[-1] += "\n" + line
IndexError: list index out of range

Probably not, auto scheduler uses the same multiprocessing stuff that was causing problems on Windows + autotvm.

We can run a RPC server on windows (via cpp_rpc) then cross compile in linux via a target triple x96_64-pc-windows-msvc.

On the linux side, run export_library with the .tar suffix, so the linking is done at the remote(windows)side. The windows will need clang and lld from the official site.