Skip to content

Commit f1bf20a

Browse files
authored
[RPC] Fix tuning on macOS and Windows (#15771) (#16357)
* [RPC] Fix tuning on macOS and Windows (#15771) Fix regression in (#15187) when multiprocessing start method is not 'fork', which prevented tuning from working. This affects macOS and Windows. Also in python 3.14 the default start method will be 'spawn'. * [RPC] clean up _serve_loop function
1 parent ae8d398 commit f1bf20a

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

python/tvm/rpc/server.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ def download_linked_module(file_name):
119119
return temp
120120

121121

122+
def _serve_loop(sock, load_library, work_path):
123+
_server_env(load_library, work_path)
124+
_ffi_api.ServerLoop(sock.fileno())
125+
126+
122127
def _parse_server_opt(opts):
123128
# parse client options
124129
ret = {}
@@ -135,11 +140,7 @@ def _serving(sock, addr, opts, load_library):
135140
os.chdir(work_path.path) # Avoiding file name conflict between sessions.
136141
logger.info(f"start serving at {work_path.path}")
137142

138-
def _serve_loop():
139-
_server_env(load_library, work_path)
140-
_ffi_api.ServerLoop(sock.fileno())
141-
142-
server_proc = multiprocessing.Process(target=_serve_loop)
143+
server_proc = multiprocessing.Process(target=_serve_loop, args=(sock, load_library, work_path))
143144
server_proc.start()
144145
server_proc.join(opts.get("timeout", None)) # Wait until finish or timeout.
145146

0 commit comments

Comments
 (0)