Some questions about Windows

Thanks for sharing all of this—really solid findings. Working with AutoTVM on Windows definitely brings some unique challenges, and your notes highlight the key issues really clearly.

  1. Using 127.0.0.1 instead of 0.0.0.0 That makes sense. 0.0.0.0 can act unexpectedly on Windows, so switching to 127.0.0.1 is a smart workaround for local setups.
  2. Pickle and multiprocessing closures Yep, this is a common Windows issue since it doesn’t use fork. Moving the wrapped function to the top level is the right call—glad to see you already figured that out.
  3. Missing tar command Good tip—Cygwin works, or even Git Bash or WSL. In some cases, using Python’s built-in tarfile module could help skip the shell command entirely.
  4. Handling : in Windows paths for tar Adding --force-local is a solid workaround when paths include a drive letter. Windows really doesn’t like the colon in CLI tools unless handled this way.
  5. Backslash issues in tar commands Yeah, replacing \ with / helps when shelling out commands. You might also consider using pathlib.Path.as_posix() to keep things cleaner.
  6. Socket error 10048 Pretty typical when sockets don’t release fast enough. Adding specific handling for error 10048 is a good call.
  7. LocalRunner + cpp_rpc That’s a gotcha for a lot of people. Compiling and manually starting tvm_rpc.exe is necessary, and it’s not super obvious. Documenting this better would help a lot.
  8. Tracker/server creation in loops Definitely inefficient on Windows. Your reuse logic looks like a clean improvement—it’d be great to see something like this upstreamed.
  9. Linker error for tvm_main Seen this too. Annotating or stubbing tvm_main is a workable fix for now, but it’d be good to understand why it’s getting pulled in at all during linking.