From 8745b5b7deef380f75f48f6df12b5d485c81fcd3 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 29 Mar 2021 13:11:55 -0700 Subject: [PATCH 01/22] Rename references to 0.0.0.0 to localhost. Also change references to 127.0.0.1 to localhost so that all references are consistent. 0.0.0.0 is not the same as localhost. --- apps/android_rpc/README.md | 2 +- apps/cpp_rpc/README.md | 4 ++-- apps/cpp_rpc/main.cc | 10 +++++----- apps/cpp_rpc/rpc_server.cc | 6 +++--- apps/cpp_rpc/rpc_server.h | 2 +- apps/ios_rpc/README.md | 2 +- apps/sgx/README.md | 2 +- apps/sgx/src/main.rs | 2 +- docs/install/docker.rst | 2 +- docs/vta/install.rst | 2 +- golang/README.md | 2 +- python/tvm/auto_scheduler/measure.py | 2 +- python/tvm/autotvm/graph_tuner/base_graph_tuner.py | 2 +- python/tvm/autotvm/measure/measure_methods.py | 4 ++-- python/tvm/exec/measure_peak.py | 4 ++-- python/tvm/exec/microtvm_debug_shell.py | 2 +- python/tvm/exec/rpc_server.py | 2 +- python/tvm/exec/rpc_tracker.py | 2 +- python/tvm/micro/session.py | 2 +- src/support/socket.h | 2 +- tests/micro/test_runtime_micro_on_arm.py | 4 ++-- tests/micro/zephyr/test_zephyr.py | 2 +- tutorials/auto_scheduler/tune_network_arm.py | 8 ++++---- tutorials/auto_scheduler/tune_network_mali.py | 14 +++++++------- tutorials/autotvm/tune_relay_arm.py | 10 +++++----- tutorials/autotvm/tune_relay_cuda.py | 10 +++++----- tutorials/autotvm/tune_relay_mobile_gpu.py | 10 +++++----- tutorials/frontend/deploy_model_on_android.py | 10 +++++----- tutorials/frontend/deploy_model_on_rasp.py | 4 ++-- tutorials/get_started/cross_compilation_and_rpc.py | 4 ++-- vta/python/vta/exec/rpc_server.py | 2 +- vta/python/vta/testing/utils.py | 2 +- vta/tutorials/autotvm/tune_relay_vta.py | 8 ++++---- 33 files changed, 73 insertions(+), 73 deletions(-) diff --git a/apps/android_rpc/README.md b/apps/android_rpc/README.md index c5e21ecbbc12..c87ebdde6353 100644 --- a/apps/android_rpc/README.md +++ b/apps/android_rpc/README.md @@ -150,7 +150,7 @@ Then checkout [android\_rpc/tests/android\_rpc\_test.py](https://github.com/apac ```bash # Specify the RPC tracker -export TVM_TRACKER_HOST=0.0.0.0 +export TVM_TRACKER_HOST=localhost export TVM_TRACKER_PORT=[PORT] # Specify the standalone Android C++ compiler export TVM_NDK_CC=/opt/android-toolchain-arm64/bin/aarch64-linux-android-g++ diff --git a/apps/cpp_rpc/README.md b/apps/cpp_rpc/README.md index d073fca81921..4cee3acb22b7 100644 --- a/apps/cpp_rpc/README.md +++ b/apps/cpp_rpc/README.md @@ -61,7 +61,7 @@ This folder contains a simple recipe to make RPC server in c++. ``` Command line usage server - Start the server ---host - The hostname of the server, Default=0.0.0.0 +--host - The hostname of the server, Default=localhost --port - The port of the RPC, Default=9090 --port-end - The end search port of the RPC, Default=9199 --tracker - The RPC tracker address in host:port format e.g. 10.1.1.2:9190 Default="" @@ -69,7 +69,7 @@ Command line usage --custom-addr - Custom IP Address to Report to RPC Tracker. Default="" --silent - Whether to run in silent mode. Default=False Example - ./tvm_rpc server --host=0.0.0.0 --port=9000 --port-end=9090 --tracker=127.0.0.1:9190 --key=rasp + ./tvm_rpc server --host=localhost --port=9000 --port-end=9090 --tracker=localhost:9190 --key=rasp ``` ## Note diff --git a/apps/cpp_rpc/main.cc b/apps/cpp_rpc/main.cc index 0663c378819e..05b179d7af41 100644 --- a/apps/cpp_rpc/main.cc +++ b/apps/cpp_rpc/main.cc @@ -49,7 +49,7 @@ using namespace tvm::support; static const string kUsage = "Command line usage\n" " server - Start the server\n" - "--host - The hostname of the server, Default=0.0.0.0\n" + "--host - The hostname of the server, Default=localhost\n" "--port - The port of the RPC, Default=9090\n" "--port-end - The end search port of the RPC, Default=9099\n" "--tracker - The RPC tracker address in host:port format e.g. 10.1.1.2:9190 Default=\"\"\n" @@ -59,13 +59,13 @@ static const string kUsage = "--silent - Whether to run in silent mode. Default=False\n" "\n" " Example\n" - " ./tvm_rpc server --host=0.0.0.0 --port=9000 --port-end=9090 " - " --tracker=127.0.0.1:9190 --key=rasp" + " ./tvm_rpc server --host=localhost --port=9000 --port-end=9090 " + " --tracker=localhost:9190 --key=rasp" "\n"; /*! * \brief RpcServerArgs. - * \arg host The hostname of the server, Default=0.0.0.0 + * \arg host The hostname of the server, Default=localhost * \arg port The port of the RPC, Default=9090 * \arg port_end The end search port of the RPC, Default=9099 * \arg tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" @@ -75,7 +75,7 @@ static const string kUsage = * \arg silent Whether run in silent mode. Default=False */ struct RpcServerArgs { - string host = "0.0.0.0"; + string host = "localhost"; int port = 9090; int port_end = 9099; string tracker; diff --git a/apps/cpp_rpc/rpc_server.cc b/apps/cpp_rpc/rpc_server.cc index 52b5da965b4c..b588d23832e9 100644 --- a/apps/cpp_rpc/rpc_server.cc +++ b/apps/cpp_rpc/rpc_server.cc @@ -85,7 +85,7 @@ static std::string getNextString(std::stringstream* iss) { /*! * \brief RPCServer RPC Server class. - * \param host The hostname of the server, Default=0.0.0.0 + * \param host The hostname of the server, Default=localhost * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" @@ -142,7 +142,7 @@ class RPCServer { TrackerClient tracker(tracker_addr_, key_, custom_addr_); while (true) { support::TCPSocket conn; - support::SockAddr addr("0.0.0.0", 0); + support::SockAddr addr("localhost", 0); std::string opts; try { // step 1: setup tracker and report to tracker @@ -364,7 +364,7 @@ void ServerLoopFromChild(SOCKET socket) { /*! * \brief RPCServerCreate Creates the RPC Server. - * \param host The hostname of the server, Default=0.0.0.0 + * \param host The hostname of the server, Default=localhost * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker_addr The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 diff --git a/apps/cpp_rpc/rpc_server.h b/apps/cpp_rpc/rpc_server.h index e4565d095b2e..137c06dae053 100644 --- a/apps/cpp_rpc/rpc_server.h +++ b/apps/cpp_rpc/rpc_server.h @@ -42,7 +42,7 @@ void ServerLoopFromChild(SOCKET socket); /*! * \brief RPCServerCreate Creates the RPC Server. - * \param host The hostname of the server, Default=0.0.0.0 + * \param host The hostname of the server, Default=localhost * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" diff --git a/apps/ios_rpc/README.md b/apps/ios_rpc/README.md index 3c70a86f5d74..bf0bfdaf0fa4 100644 --- a/apps/ios_rpc/README.md +++ b/apps/ios_rpc/README.md @@ -28,7 +28,7 @@ Start the RPC proxy by running in a terminal: On success, you should see something like this: - INFO:root:RPCProxy: client port bind to 0.0.0.0:9090 + INFO:root:RPCProxy: client port bind to localhost:9090 INFO:root:RPCProxy: Websock port bind to 8888 IP-address of this machine will be used to initialize ```TVM_IOS_RPC_PROXY_HOST``` diff --git a/apps/sgx/README.md b/apps/sgx/README.md index 6be52583ab52..2491d3cbf49f 100644 --- a/apps/sgx/README.md +++ b/apps/sgx/README.md @@ -21,4 +21,4 @@ 2. `rustup component add llvm-tools-preview` to get `llvm-ar` and `llvm-objcopy` 3. `pip install numpy decorator psutil` 4. `cargo run` to start the enclave TCP server -5. Send a 28x28 "image" to the enclave model server using `head -c $((28*28*4)) /dev/urandom | nc 127.0.0.1 4242 | python read_results.py` +5. Send a 28x28 "image" to the enclave model server using `head -c $((28*28*4)) /dev/urandom | nc localhost 4242 | python read_results.py` diff --git a/apps/sgx/src/main.rs b/apps/sgx/src/main.rs index 16dd9a9c8b75..2a5c214bef9c 100644 --- a/apps/sgx/src/main.rs +++ b/apps/sgx/src/main.rs @@ -35,7 +35,7 @@ fn main() { let mut exec = tvm_runtime::GraphExecutor::new(graph, &syslib).unwrap(); exec.load_params(params); - let listener = std::net::TcpListener::bind("127.0.0.1:4242").unwrap(); + let listener = std::net::TcpListener::bind("localhost:4242").unwrap(); for stream in listener.incoming() { let mut stream = stream.unwrap(); if let Err(_) = diff --git a/docs/install/docker.rst b/docs/install/docker.rst index 768cad2057f8..85e95106d47b 100644 --- a/docs/install/docker.rst +++ b/docs/install/docker.rst @@ -58,7 +58,7 @@ a jupyter notebook on macOS. You can change the binding IP address by .. code:: bash - jupyter notebook --ip=0.0.0.0 + jupyter notebook --ip=localhost Note that on macOS, because we use bridge network, jupyter notebook will be reportedly running at an URL like ``http://{container_hostname}:8888/?token=...``. You should replace the ``container_hostname`` diff --git a/docs/vta/install.rst b/docs/vta/install.rst index 2248975b61b1..ab8a72761908 100644 --- a/docs/vta/install.rst +++ b/docs/vta/install.rst @@ -167,7 +167,7 @@ You should see the following being displayed when starting the RPC server. In or .. code:: bash - INFO:root:RPCServer: bind to 0.0.0.0:9091 + INFO:root:RPCServer: bind to localhost:9091 Tips regarding the Pynq RPC Server: diff --git a/golang/README.md b/golang/README.md index ee3ea8cc2e98..a36138b90870 100644 --- a/golang/README.md +++ b/golang/README.md @@ -110,7 +110,7 @@ A html version documentation can be accessed by running below command after buil ```bash godoc -http=:6060 -goroot=./gopath ``` -After above command try http://127.0.0.1:6060 from any browser. +After above command try http://localhost:6060 from any browser. Also please refer to the sample applications under sample folder. diff --git a/python/tvm/auto_scheduler/measure.py b/python/tvm/auto_scheduler/measure.py index e77721496386..ef44712e8d96 100644 --- a/python/tvm/auto_scheduler/measure.py +++ b/python/tvm/auto_scheduler/measure.py @@ -552,7 +552,7 @@ def __init__( if dev.exist: cuda_arch = "sm_" + "".join(dev.compute_version.split(".")) set_cuda_target_arch(cuda_arch) - host = "0.0.0.0" + host = "localhost" self.tracker = Tracker(host, port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % self.tracker.port self.server = Server( diff --git a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py index b307130780a7..2dddeaa23461 100644 --- a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py +++ b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py @@ -393,7 +393,7 @@ def benchmark_layout_transform( device_key : str, optional Remote device key which can be queried by - python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 + python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 host : str, optional IP address used to create RPC tracker on host machine. diff --git a/python/tvm/autotvm/measure/measure_methods.py b/python/tvm/autotvm/measure/measure_methods.py index aa072cfd5de2..c5dbc7ecb194 100644 --- a/python/tvm/autotvm/measure/measure_methods.py +++ b/python/tvm/autotvm/measure/measure_methods.py @@ -400,10 +400,10 @@ def set_task(self, task): from ...rpc.server import Server self.task = task - tracker = Tracker("0.0.0.0", port=9000, port_end=10000, silent=True) + tracker = Tracker("localhost", port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % tracker.port server = Server( - "0.0.0.0", + "localhost", port=9000, port_end=10000, key=device_key, diff --git a/python/tvm/exec/measure_peak.py b/python/tvm/exec/measure_peak.py index d8840fadd802..5b650a890afe 100644 --- a/python/tvm/exec/measure_peak.py +++ b/python/tvm/exec/measure_peak.py @@ -17,7 +17,7 @@ """measure bandwidth and compute peak e.g. -python3 -m tvm.exec.measure_peak --target cuda --rpc-host 0.0.0.0 --rpc-port 9090 +python3 -m tvm.exec.measure_peak --target cuda --rpc-host localhost --rpc-port 9090 python3 -m tvm.exec.measure_peak --target opencl --target-host "llvm -mtriple=aarch64-linux-gnu" \ --rpc-host $TVM_OPENCL_DEVICE_HOST --rpc-port 9090 """ @@ -37,7 +37,7 @@ def main(): "--target-host", type=str, default=None, help="The host code compilation target" ) parser.add_argument( - "--rpc-host", type=str, default="0.0.0.0", help="the hostname of the server" + "--rpc-host", type=str, default="localhost", help="the hostname of the server" ) parser.add_argument("--rpc-port", type=int, default=9090, help="The port of the RPC") diff --git a/python/tvm/exec/microtvm_debug_shell.py b/python/tvm/exec/microtvm_debug_shell.py index 576c07e7fe9e..fe1d4eea0b80 100644 --- a/python/tvm/exec/microtvm_debug_shell.py +++ b/python/tvm/exec/microtvm_debug_shell.py @@ -46,7 +46,7 @@ def parse_args(): """Parse command line arguments to this script.""" parser = argparse.ArgumentParser(description="microTVM debug-tool runner") - parser.add_argument("--host", default="0.0.0.0", help="hostname to listen on") + parser.add_argument("--host", default="localhost", help="hostname to listen on") parser.add_argument("--port", type=int, default=9090, help="hostname to listen on") parser.add_argument( "--impl", diff --git a/python/tvm/exec/rpc_server.py b/python/tvm/exec/rpc_server.py index 6b3e93edd223..8ce373d41bbe 100644 --- a/python/tvm/exec/rpc_server.py +++ b/python/tvm/exec/rpc_server.py @@ -54,7 +54,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") + parser.add_argument("--host", type=str, default="localhost", help="the hostname of the server") parser.add_argument("--port", type=int, default=9090, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/exec/rpc_tracker.py b/python/tvm/exec/rpc_tracker.py index 4a1a964338ba..8618ae909232 100644 --- a/python/tvm/exec/rpc_tracker.py +++ b/python/tvm/exec/rpc_tracker.py @@ -33,7 +33,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the tracker") + parser.add_argument("--host", type=str, default="localhost", help="the hostname of the tracker") parser.add_argument("--port", type=int, default=9190, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/micro/session.py b/python/tvm/micro/session.py index 78bf03379939..427dac807351 100644 --- a/python/tvm/micro/session.py +++ b/python/tvm/micro/session.py @@ -53,7 +53,7 @@ class Session: .. code-block:: python c_mod = ... # some module generated with "c" as the target - dev_config = micro.device.arm.stm32f746xx.default_config('127.0.0.1', 6666) + dev_config = micro.device.arm.stm32f746xx.default_config('localhost', 6666) with tvm.micro.Session(dev_config) as sess: micro_mod = sess.create_micro_mod(c_mod) """ diff --git a/src/support/socket.h b/src/support/socket.h index 11060ae8aae1..eec75438bc9d 100644 --- a/src/support/socket.h +++ b/src/support/socket.h @@ -119,7 +119,7 @@ struct SockAddr { std::string port = url.substr(sep + 1, url.length() - 1); ICHECK(ValidateIP(host)) << "Url address is not valid " << url; if (host == "localhost") { - host = "127.0.0.1"; + host = "localhost"; } this->Set(host.c_str(), std::stoi(port)); } diff --git a/tests/micro/test_runtime_micro_on_arm.py b/tests/micro/test_runtime_micro_on_arm.py index 7d19d9510062..7045d6e1327a 100644 --- a/tests/micro/test_runtime_micro_on_arm.py +++ b/tests/micro/test_runtime_micro_on_arm.py @@ -30,8 +30,8 @@ # Ex : openocd -f board/stm32f7discovery.cfg # Be sure to have the ST CMSIS library downloaded, installed and # Ex : export CMSIS_ST_PATH="/home/yourid/st/STM32Cube_FW_F7_V1.16.0/Drivers/CMSIS" -DEV_CONFIG_A = micro.device.arm.stm32f746xx.generate_config("127.0.0.1", 6666) -DEV_CONFIG_B = micro.device.arm.stm32f746xx.generate_config("127.0.0.1", 6666) +DEV_CONFIG_A = micro.device.arm.stm32f746xx.generate_config("localhost", 6666) +DEV_CONFIG_B = micro.device.arm.stm32f746xx.generate_config("localhost", 6666) TARGET = "micro_dev" diff --git a/tests/micro/zephyr/test_zephyr.py b/tests/micro/zephyr/test_zephyr.py index d75e1b607b8d..d78db87ae770 100644 --- a/tests/micro/zephyr/test_zephyr.py +++ b/tests/micro/zephyr/test_zephyr.py @@ -93,7 +93,7 @@ def _make_session(model, target, zephyr_board, west_cmd, mod): flasher_kw = {} if DEBUG: - flasher_kw["debug_rpc_session"] = tvm.rpc.connect("127.0.0.1", 9090) + flasher_kw["debug_rpc_session"] = tvm.rpc.connect("localhost", 9090) session_kw = { "flasher": compiler.flasher(**flasher_kw), diff --git a/tutorials/auto_scheduler/tune_network_arm.py b/tutorials/auto_scheduler/tune_network_arm.py index 46d95c38eab4..454a19eac76e 100644 --- a/tutorials/auto_scheduler/tune_network_arm.py +++ b/tutorials/auto_scheduler/tune_network_arm.py @@ -25,7 +25,7 @@ best performance. This is a tutorial on how to tune a whole neural network for ARM CPU with the auto-scheduler via RPC. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -164,13 +164,13 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32", use_sparse=Fal # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 ################################################################# # Register Devices to RPC Tracker @@ -198,7 +198,7 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32", use_sparse=Fal # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 4B with 64bit OS, and 2 rk3399, # the output can be diff --git a/tutorials/auto_scheduler/tune_network_mali.py b/tutorials/auto_scheduler/tune_network_mali.py index 35751fa11f17..7d4537d307f3 100644 --- a/tutorials/auto_scheduler/tune_network_mali.py +++ b/tutorials/auto_scheduler/tune_network_mali.py @@ -23,7 +23,7 @@ best performance. This is a tutorial on how to tune a whole neural network for mali GPU with the auto-scheduler. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -180,9 +180,9 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32"): # .. code-block:: python # # from tvm.auto_scheduler.utils import request_remote -# remote = request_remote(device_key, "0.0.0.0", 9190) -# dev = remote.cl() -# max_shared_memory_per_block = dev.max_shared_memory_per_block +# remote = request_remote(device_key, "localhost", 9190) +# ctx = remote.cl() +# max_shared_memory_per_block = ctx.max_shared_memory_per_block # # There is no explicit local memory limition # # so we can use INT32_MAX to disalbe the check on local_memory. # max_local_memory_per_block = 2147483647 # INT32_MAX @@ -228,7 +228,7 @@ def tune_and_evaluate(): num_measure_trials=200, # change this to 20000 to achieve the best performance builder=auto_scheduler.LocalBuilder(build_func="ndk" if use_ndk else "default"), runner=auto_scheduler.RPCRunner( - device_key, host="0.0.0.0", port=9190, repeat=3, timeout=50 + device_key, host="localhost", port=9190, repeat=3, timeout=50 ), measure_callbacks=[auto_scheduler.RecordToFile(log_file)], ) @@ -247,8 +247,8 @@ def tune_and_evaluate(): print("=============== Request Remote ===============") from tvm.auto_scheduler.utils import request_remote - remote = request_remote(device_key, "0.0.0.0", 9190) - dev = remote.cl() + remote = request_remote(device_key, "localhost", 9190) + ctx = remote.cl() from tvm.contrib import utils, ndk temp = utils.tempdir() diff --git a/tutorials/autotvm/tune_relay_arm.py b/tutorials/autotvm/tune_relay_arm.py index 9223eb30cd9d..0d42c4630dd6 100644 --- a/tutorials/autotvm/tune_relay_arm.py +++ b/tutorials/autotvm/tune_relay_arm.py @@ -139,13 +139,13 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 ################################################################# # Register Devices to RPC Tracker @@ -173,7 +173,7 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 3B and 2 rk3399, # the output can be @@ -224,7 +224,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="0.0.0.0", + host="localhost", port=9190, number=5, timeout=10, @@ -343,7 +343,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "localhost", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/autotvm/tune_relay_cuda.py b/tutorials/autotvm/tune_relay_cuda.py index 50485c4d7ff2..0c775efe4174 100644 --- a/tutorials/autotvm/tune_relay_cuda.py +++ b/tutorials/autotvm/tune_relay_cuda.py @@ -329,13 +329,13 @@ def tune_and_evaluate(tuning_opt): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 # # Then open another new terminal for the RPC server. We need to start one dedicated server # for each device. We use a string key to distinguish the types of devices. @@ -345,13 +345,13 @@ def tune_and_evaluate(tuning_opt): # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --tracker=0.0.0.0:9190 --key=1080ti +# python -m tvm.exec.rpc_server --tracker=localhost:9190 --key=1080ti # # After registering devices, we can confirm it by querying rpc_tracker # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have four 1080ti, two titanx and one gfx900, the output can be # @@ -378,7 +378,7 @@ def tune_and_evaluate(tuning_opt): builder=autotvm.LocalBuilder(timeout=10), runner=autotvm.RPCRunner( "1080ti", # change the device key to your key - "0.0.0.0", + "localhost", 9190, number=20, repeat=3, diff --git a/tutorials/autotvm/tune_relay_mobile_gpu.py b/tutorials/autotvm/tune_relay_mobile_gpu.py index 2b109873c750..2970e9d3f4eb 100644 --- a/tutorials/autotvm/tune_relay_mobile_gpu.py +++ b/tutorials/autotvm/tune_relay_mobile_gpu.py @@ -141,13 +141,13 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 ################################################################# # Register Devices to RPC Tracker @@ -175,7 +175,7 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 3B and 2 rk3399, # the output can be @@ -225,7 +225,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="0.0.0.0", + host="localhost", port=9190, number=10, timeout=5, @@ -340,7 +340,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "localhost", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/frontend/deploy_model_on_android.py b/tutorials/frontend/deploy_model_on_android.py index 158280fe9447..b41581800955 100644 --- a/tutorials/frontend/deploy_model_on_android.py +++ b/tutorials/frontend/deploy_model_on_android.py @@ -93,13 +93,13 @@ # # .. code-block:: bash # -# python3 -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python3 -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 ################################################################# # Register Android device to RPC Tracker @@ -156,7 +156,7 @@ # # .. code-block:: bash # -# python3 -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python3 -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have 1 Android device. # the output can be @@ -175,7 +175,7 @@ # # .. code-block:: bash # -# export TVM_TRACKER_HOST=0.0.0.0 +# export TVM_TRACKER_HOST=localhost # export TVM_TRACKER_PORT=9190 # # .. code-block:: bash @@ -289,7 +289,7 @@ def transform_image(image): # With RPC, you can deploy the model remotely from your host machine # to the remote android device. -tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "localhost") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) key = "android" diff --git a/tutorials/frontend/deploy_model_on_rasp.py b/tutorials/frontend/deploy_model_on_rasp.py index a59665f62f1c..854c9f44edd5 100644 --- a/tutorials/frontend/deploy_model_on_rasp.py +++ b/tutorials/frontend/deploy_model_on_rasp.py @@ -80,14 +80,14 @@ # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090 +# python -m tvm.exec.rpc_server --host localhost --port=9090 # # If you see the line below, it means the RPC server started # successfully on your device. # # .. code-block:: bash # -# INFO:root:RPCServer: bind to 0.0.0.0:9090 +# INFO:root:RPCServer: bind to localhost:9090 # ###################################################################### diff --git a/tutorials/get_started/cross_compilation_and_rpc.py b/tutorials/get_started/cross_compilation_and_rpc.py index 3c23c4956262..d0c457c3c7ba 100644 --- a/tutorials/get_started/cross_compilation_and_rpc.py +++ b/tutorials/get_started/cross_compilation_and_rpc.py @@ -72,14 +72,14 @@ # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090 +# python -m tvm.exec.rpc_server --host localhost --port=9090 # # If you see the line below, it means the RPC server started # successfully on your device. # # .. code-block:: bash # -# INFO:root:RPCServer: bind to 0.0.0.0:9090 +# INFO:root:RPCServer: bind to localhost:9090 # ###################################################################### diff --git a/vta/python/vta/exec/rpc_server.py b/vta/python/vta/exec/rpc_server.py index cd519137bce7..4bc0994296c3 100644 --- a/vta/python/vta/exec/rpc_server.py +++ b/vta/python/vta/exec/rpc_server.py @@ -127,7 +127,7 @@ def reconfig_runtime(cfg_json): def main(): """Main funciton""" parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") + parser.add_argument("--host", type=str, default="localhost", help="the hostname of the server") parser.add_argument("--port", type=int, default=9091, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/vta/python/vta/testing/utils.py b/vta/python/vta/testing/utils.py index f163359667f1..612269317ca4 100644 --- a/vta/python/vta/testing/utils.py +++ b/vta/python/vta/testing/utils.py @@ -42,7 +42,7 @@ def run(run_func): # the port it's listening to, e.g. 9090 local_rpc = int(os.environ.get("VTA_LOCAL_SIM_RPC", "0")) if local_rpc: - remote = rpc.connect("127.0.0.1", local_rpc) + remote = rpc.connect("localhost", local_rpc) run_func(env, remote) else: # Make sure simulation library exists diff --git a/vta/tutorials/autotvm/tune_relay_vta.py b/vta/tutorials/autotvm/tune_relay_vta.py index 7deb7408479a..047bd00a8fc5 100644 --- a/vta/tutorials/autotvm/tune_relay_vta.py +++ b/vta/tutorials/autotvm/tune_relay_vta.py @@ -129,13 +129,13 @@ def compile_network(env, target, model, start_pack, stop_pack): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 # # The expected output is: # # .. code-block:: bash # -# INFO:RPCTracker:bind to 0.0.0.0:9190 +# INFO:RPCTracker:bind to localhost:9190 ################################################################# # Register devices to RPC Tracker @@ -156,7 +156,7 @@ def compile_network(env, target, model, start_pack, stop_pack): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 # # For example, if we have 6 Pynq boards and 11 Raspberry Pi 3B, # the output can be @@ -180,7 +180,7 @@ def compile_network(env, target, model, start_pack, stop_pack): # Here we use an Pynq-Z1 board as an example. # Tracker host and port can be set by your environment -tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "localhost") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file From fb91b409283a979e773c0ad23af84995d08dda94 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 29 Mar 2021 13:22:07 -0700 Subject: [PATCH 02/22] Fix merge error --- tutorials/auto_scheduler/tune_network_mali.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/auto_scheduler/tune_network_mali.py b/tutorials/auto_scheduler/tune_network_mali.py index 7d4537d307f3..87ef2ac83903 100644 --- a/tutorials/auto_scheduler/tune_network_mali.py +++ b/tutorials/auto_scheduler/tune_network_mali.py @@ -181,8 +181,8 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32"): # # from tvm.auto_scheduler.utils import request_remote # remote = request_remote(device_key, "localhost", 9190) -# ctx = remote.cl() -# max_shared_memory_per_block = ctx.max_shared_memory_per_block +# dev = remote.cl() +# max_shared_memory_per_block = dev.max_shared_memory_per_block # # There is no explicit local memory limition # # so we can use INT32_MAX to disalbe the check on local_memory. # max_local_memory_per_block = 2147483647 # INT32_MAX From 9bf88d1fcc6ee5cd793f5d3636d0abb5422e9857 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 29 Mar 2021 13:23:52 -0700 Subject: [PATCH 03/22] Fix merge error --- tutorials/auto_scheduler/tune_network_mali.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/auto_scheduler/tune_network_mali.py b/tutorials/auto_scheduler/tune_network_mali.py index 87ef2ac83903..2f6126d76516 100644 --- a/tutorials/auto_scheduler/tune_network_mali.py +++ b/tutorials/auto_scheduler/tune_network_mali.py @@ -248,7 +248,7 @@ def tune_and_evaluate(): from tvm.auto_scheduler.utils import request_remote remote = request_remote(device_key, "localhost", 9190) - ctx = remote.cl() + dev = remote.cl() from tvm.contrib import utils, ndk temp = utils.tempdir() From 1308a5c852c1c0a4a1a6152917a9745924b3c474 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 7 Apr 2021 09:26:45 -0700 Subject: [PATCH 04/22] Address host address issues in rpc test --- python/tvm/rpc/proxy.py | 2 +- python/tvm/rpc/server.py | 2 +- python/tvm/rpc/tracker.py | 6 +- tests/python/unittest/test_runtime_rpc.py | 79 ++++++++++++----------- 4 files changed, 46 insertions(+), 43 deletions(-) diff --git a/python/tvm/rpc/proxy.py b/python/tvm/rpc/proxy.py index 7e02bd77c491..748e143efb54 100644 --- a/python/tvm/rpc/proxy.py +++ b/python/tvm/rpc/proxy.py @@ -512,7 +512,7 @@ def __init__( self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48]: + if sock_err.errno in [98, 48, 10098, 10048]: continue raise sock_err if not self.port: diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index 3fd6996034f7..7da48da5a450 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -423,7 +423,7 @@ class Server(object): def __init__( self, - host, + host="0.0.0.0", port=9091, port_end=9199, is_proxy=False, diff --git a/python/tvm/rpc/tracker.py b/python/tvm/rpc/tracker.py index e1c366e99b0d..bcdf92ba3cb6 100644 --- a/python/tvm/rpc/tracker.py +++ b/python/tvm/rpc/tracker.py @@ -386,7 +386,7 @@ class Tracker(object): Whether run in silent mode """ - def __init__(self, host, port=9190, port_end=9199, silent=False): + def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): if silent: logger.setLevel(logging.WARN) @@ -399,7 +399,7 @@ def __init__(self, host, port=9190, port_end=9199, silent=False): self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48]: + if sock_err.errno in [98, 48, 10098, 10048]: continue raise sock_err if not self.port: @@ -414,7 +414,7 @@ def __init__(self, host, port=9190, port_end=9199, silent=False): def _stop_tracker(self): sock = socket.socket(base.get_addr_family((self.host, self.port)), socket.SOCK_STREAM) - sock.connect((self.host, self.port)) + sock.connect(("127.0.0.1", self.port)) sock.sendall(struct.pack(">>>>>> Address host address issues in rpc test summary = client.summary() assert summary["queue_info"][device_key]["free"] == 1 @@ -443,22 +447,21 @@ def _target(host, port, device_key, timeout): @tvm.testing.requires_rpc def test_rpc_tracker_request(): # test concurrent request - tracker = Tracker("localhost", port=9000, port_end=10000) + tracker = Tracker(port=9000, port_end=10000) device_key = "test_device" server = rpc.Server( - "localhost", port=9000, port_end=10000, key=device_key, - tracker_addr=(tracker.host, tracker.port), + tracker_addr=("127.0.0.1", tracker.port), ) - client = rpc.connect_tracker(tracker.host, tracker.port) + client = rpc.connect_tracker("127.0.0.1", tracker.port) proc1 = multiprocessing.Process( - target=_target, args=(tracker.host, tracker.port, device_key, 4) + target=_target, args=("127.0.0.1", tracker.port, device_key, 4) ) proc2 = multiprocessing.Process( - target=_target, args=(tracker.host, tracker.port, device_key, 200) + target=_target, args=("127.0.0.1", tracker.port, device_key, 200) ) proc1.start() time.sleep(0.5) From e4d37b13ceceb1b08d2f522de5ae1acf5af9da83 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 7 Apr 2021 09:29:02 -0700 Subject: [PATCH 05/22] Revert "Address host address issues in rpc test" This reverts commit 67231264765fabcb5179b23c5a89d3bb2a14ae9e. --- python/tvm/rpc/proxy.py | 2 +- python/tvm/rpc/server.py | 2 +- python/tvm/rpc/tracker.py | 6 +++--- tests/python/unittest/test_runtime_rpc.py | 5 ----- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/python/tvm/rpc/proxy.py b/python/tvm/rpc/proxy.py index 748e143efb54..7e02bd77c491 100644 --- a/python/tvm/rpc/proxy.py +++ b/python/tvm/rpc/proxy.py @@ -512,7 +512,7 @@ def __init__( self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48, 10098, 10048]: + if sock_err.errno in [98, 48]: continue raise sock_err if not self.port: diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index 7da48da5a450..3fd6996034f7 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -423,7 +423,7 @@ class Server(object): def __init__( self, - host="0.0.0.0", + host, port=9091, port_end=9199, is_proxy=False, diff --git a/python/tvm/rpc/tracker.py b/python/tvm/rpc/tracker.py index bcdf92ba3cb6..e1c366e99b0d 100644 --- a/python/tvm/rpc/tracker.py +++ b/python/tvm/rpc/tracker.py @@ -386,7 +386,7 @@ class Tracker(object): Whether run in silent mode """ - def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): + def __init__(self, host, port=9190, port_end=9199, silent=False): if silent: logger.setLevel(logging.WARN) @@ -399,7 +399,7 @@ def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48, 10098, 10048]: + if sock_err.errno in [98, 48]: continue raise sock_err if not self.port: @@ -414,7 +414,7 @@ def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): def _stop_tracker(self): sock = socket.socket(base.get_addr_family((self.host, self.port)), socket.SOCK_STREAM) - sock.connect(("127.0.0.1", self.port)) + sock.connect((self.host, self.port)) sock.sendall(struct.pack(">>>>>> Address host address issues in rpc test summary = client.summary() assert summary["queue_info"][device_key]["free"] == 1 From 8f6aee5a607cc398f702c8dffef54f4411cb3e95 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 7 Apr 2021 09:26:45 -0700 Subject: [PATCH 06/22] Address host address issues in rpc test --- python/tvm/rpc/proxy.py | 2 +- python/tvm/rpc/server.py | 2 +- python/tvm/rpc/tracker.py | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/python/tvm/rpc/proxy.py b/python/tvm/rpc/proxy.py index 7e02bd77c491..748e143efb54 100644 --- a/python/tvm/rpc/proxy.py +++ b/python/tvm/rpc/proxy.py @@ -512,7 +512,7 @@ def __init__( self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48]: + if sock_err.errno in [98, 48, 10098, 10048]: continue raise sock_err if not self.port: diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index 3fd6996034f7..7da48da5a450 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -423,7 +423,7 @@ class Server(object): def __init__( self, - host, + host="0.0.0.0", port=9091, port_end=9199, is_proxy=False, diff --git a/python/tvm/rpc/tracker.py b/python/tvm/rpc/tracker.py index e1c366e99b0d..bcdf92ba3cb6 100644 --- a/python/tvm/rpc/tracker.py +++ b/python/tvm/rpc/tracker.py @@ -386,7 +386,7 @@ class Tracker(object): Whether run in silent mode """ - def __init__(self, host, port=9190, port_end=9199, silent=False): + def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): if silent: logger.setLevel(logging.WARN) @@ -399,7 +399,7 @@ def __init__(self, host, port=9190, port_end=9199, silent=False): self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48]: + if sock_err.errno in [98, 48, 10098, 10048]: continue raise sock_err if not self.port: @@ -414,7 +414,7 @@ def __init__(self, host, port=9190, port_end=9199, silent=False): def _stop_tracker(self): sock = socket.socket(base.get_addr_family((self.host, self.port)), socket.SOCK_STREAM) - sock.connect((self.host, self.port)) + sock.connect(("127.0.0.1", self.port)) sock.sendall(struct.pack(" Date: Wed, 7 Apr 2021 08:15:40 -0700 Subject: [PATCH 07/22] Revert changes --- apps/android_rpc/README.md | 2 +- apps/cpp_rpc/README.md | 4 ++-- apps/cpp_rpc/main.cc | 10 +++++----- apps/cpp_rpc/rpc_server.cc | 6 +++--- apps/cpp_rpc/rpc_server.h | 2 +- apps/ios_rpc/README.md | 2 +- apps/sgx/README.md | 2 +- apps/sgx/src/main.rs | 2 +- docs/install/docker.rst | 2 +- docs/vta/install.rst | 2 +- golang/README.md | 2 +- python/tvm/auto_scheduler/measure.py | 2 +- python/tvm/autotvm/graph_tuner/base_graph_tuner.py | 2 +- python/tvm/autotvm/measure/measure_methods.py | 4 ++-- python/tvm/exec/measure_peak.py | 4 ++-- python/tvm/exec/microtvm_debug_shell.py | 2 +- python/tvm/exec/rpc_server.py | 2 +- python/tvm/exec/rpc_tracker.py | 2 +- python/tvm/micro/session.py | 2 +- src/support/socket.h | 2 +- tests/micro/test_runtime_micro_on_arm.py | 4 ++-- tests/micro/zephyr/test_zephyr.py | 2 +- tutorials/auto_scheduler/tune_network_arm.py | 8 ++++---- tutorials/auto_scheduler/tune_network_mali.py | 8 ++++---- tutorials/autotvm/tune_relay_arm.py | 10 +++++----- tutorials/autotvm/tune_relay_cuda.py | 10 +++++----- tutorials/autotvm/tune_relay_mobile_gpu.py | 10 +++++----- tutorials/frontend/deploy_model_on_android.py | 10 +++++----- tutorials/frontend/deploy_model_on_rasp.py | 4 ++-- tutorials/get_started/cross_compilation_and_rpc.py | 4 ++-- vta/python/vta/exec/rpc_server.py | 2 +- vta/python/vta/testing/utils.py | 2 +- vta/tutorials/autotvm/tune_relay_vta.py | 8 ++++---- 33 files changed, 70 insertions(+), 70 deletions(-) diff --git a/apps/android_rpc/README.md b/apps/android_rpc/README.md index c87ebdde6353..c5e21ecbbc12 100644 --- a/apps/android_rpc/README.md +++ b/apps/android_rpc/README.md @@ -150,7 +150,7 @@ Then checkout [android\_rpc/tests/android\_rpc\_test.py](https://github.com/apac ```bash # Specify the RPC tracker -export TVM_TRACKER_HOST=localhost +export TVM_TRACKER_HOST=0.0.0.0 export TVM_TRACKER_PORT=[PORT] # Specify the standalone Android C++ compiler export TVM_NDK_CC=/opt/android-toolchain-arm64/bin/aarch64-linux-android-g++ diff --git a/apps/cpp_rpc/README.md b/apps/cpp_rpc/README.md index 4cee3acb22b7..d073fca81921 100644 --- a/apps/cpp_rpc/README.md +++ b/apps/cpp_rpc/README.md @@ -61,7 +61,7 @@ This folder contains a simple recipe to make RPC server in c++. ``` Command line usage server - Start the server ---host - The hostname of the server, Default=localhost +--host - The hostname of the server, Default=0.0.0.0 --port - The port of the RPC, Default=9090 --port-end - The end search port of the RPC, Default=9199 --tracker - The RPC tracker address in host:port format e.g. 10.1.1.2:9190 Default="" @@ -69,7 +69,7 @@ Command line usage --custom-addr - Custom IP Address to Report to RPC Tracker. Default="" --silent - Whether to run in silent mode. Default=False Example - ./tvm_rpc server --host=localhost --port=9000 --port-end=9090 --tracker=localhost:9190 --key=rasp + ./tvm_rpc server --host=0.0.0.0 --port=9000 --port-end=9090 --tracker=127.0.0.1:9190 --key=rasp ``` ## Note diff --git a/apps/cpp_rpc/main.cc b/apps/cpp_rpc/main.cc index 05b179d7af41..0663c378819e 100644 --- a/apps/cpp_rpc/main.cc +++ b/apps/cpp_rpc/main.cc @@ -49,7 +49,7 @@ using namespace tvm::support; static const string kUsage = "Command line usage\n" " server - Start the server\n" - "--host - The hostname of the server, Default=localhost\n" + "--host - The hostname of the server, Default=0.0.0.0\n" "--port - The port of the RPC, Default=9090\n" "--port-end - The end search port of the RPC, Default=9099\n" "--tracker - The RPC tracker address in host:port format e.g. 10.1.1.2:9190 Default=\"\"\n" @@ -59,13 +59,13 @@ static const string kUsage = "--silent - Whether to run in silent mode. Default=False\n" "\n" " Example\n" - " ./tvm_rpc server --host=localhost --port=9000 --port-end=9090 " - " --tracker=localhost:9190 --key=rasp" + " ./tvm_rpc server --host=0.0.0.0 --port=9000 --port-end=9090 " + " --tracker=127.0.0.1:9190 --key=rasp" "\n"; /*! * \brief RpcServerArgs. - * \arg host The hostname of the server, Default=localhost + * \arg host The hostname of the server, Default=0.0.0.0 * \arg port The port of the RPC, Default=9090 * \arg port_end The end search port of the RPC, Default=9099 * \arg tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" @@ -75,7 +75,7 @@ static const string kUsage = * \arg silent Whether run in silent mode. Default=False */ struct RpcServerArgs { - string host = "localhost"; + string host = "0.0.0.0"; int port = 9090; int port_end = 9099; string tracker; diff --git a/apps/cpp_rpc/rpc_server.cc b/apps/cpp_rpc/rpc_server.cc index b588d23832e9..52b5da965b4c 100644 --- a/apps/cpp_rpc/rpc_server.cc +++ b/apps/cpp_rpc/rpc_server.cc @@ -85,7 +85,7 @@ static std::string getNextString(std::stringstream* iss) { /*! * \brief RPCServer RPC Server class. - * \param host The hostname of the server, Default=localhost + * \param host The hostname of the server, Default=0.0.0.0 * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" @@ -142,7 +142,7 @@ class RPCServer { TrackerClient tracker(tracker_addr_, key_, custom_addr_); while (true) { support::TCPSocket conn; - support::SockAddr addr("localhost", 0); + support::SockAddr addr("0.0.0.0", 0); std::string opts; try { // step 1: setup tracker and report to tracker @@ -364,7 +364,7 @@ void ServerLoopFromChild(SOCKET socket) { /*! * \brief RPCServerCreate Creates the RPC Server. - * \param host The hostname of the server, Default=localhost + * \param host The hostname of the server, Default=0.0.0.0 * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker_addr The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 diff --git a/apps/cpp_rpc/rpc_server.h b/apps/cpp_rpc/rpc_server.h index 137c06dae053..e4565d095b2e 100644 --- a/apps/cpp_rpc/rpc_server.h +++ b/apps/cpp_rpc/rpc_server.h @@ -42,7 +42,7 @@ void ServerLoopFromChild(SOCKET socket); /*! * \brief RPCServerCreate Creates the RPC Server. - * \param host The hostname of the server, Default=localhost + * \param host The hostname of the server, Default=0.0.0.0 * \param port The port of the RPC, Default=9090 * \param port_end The end search port of the RPC, Default=9099 * \param tracker The address of RPC tracker in host:port format e.g. 10.77.1.234:9190 Default="" diff --git a/apps/ios_rpc/README.md b/apps/ios_rpc/README.md index bf0bfdaf0fa4..3c70a86f5d74 100644 --- a/apps/ios_rpc/README.md +++ b/apps/ios_rpc/README.md @@ -28,7 +28,7 @@ Start the RPC proxy by running in a terminal: On success, you should see something like this: - INFO:root:RPCProxy: client port bind to localhost:9090 + INFO:root:RPCProxy: client port bind to 0.0.0.0:9090 INFO:root:RPCProxy: Websock port bind to 8888 IP-address of this machine will be used to initialize ```TVM_IOS_RPC_PROXY_HOST``` diff --git a/apps/sgx/README.md b/apps/sgx/README.md index 2491d3cbf49f..6be52583ab52 100644 --- a/apps/sgx/README.md +++ b/apps/sgx/README.md @@ -21,4 +21,4 @@ 2. `rustup component add llvm-tools-preview` to get `llvm-ar` and `llvm-objcopy` 3. `pip install numpy decorator psutil` 4. `cargo run` to start the enclave TCP server -5. Send a 28x28 "image" to the enclave model server using `head -c $((28*28*4)) /dev/urandom | nc localhost 4242 | python read_results.py` +5. Send a 28x28 "image" to the enclave model server using `head -c $((28*28*4)) /dev/urandom | nc 127.0.0.1 4242 | python read_results.py` diff --git a/apps/sgx/src/main.rs b/apps/sgx/src/main.rs index 2a5c214bef9c..16dd9a9c8b75 100644 --- a/apps/sgx/src/main.rs +++ b/apps/sgx/src/main.rs @@ -35,7 +35,7 @@ fn main() { let mut exec = tvm_runtime::GraphExecutor::new(graph, &syslib).unwrap(); exec.load_params(params); - let listener = std::net::TcpListener::bind("localhost:4242").unwrap(); + let listener = std::net::TcpListener::bind("127.0.0.1:4242").unwrap(); for stream in listener.incoming() { let mut stream = stream.unwrap(); if let Err(_) = diff --git a/docs/install/docker.rst b/docs/install/docker.rst index 85e95106d47b..768cad2057f8 100644 --- a/docs/install/docker.rst +++ b/docs/install/docker.rst @@ -58,7 +58,7 @@ a jupyter notebook on macOS. You can change the binding IP address by .. code:: bash - jupyter notebook --ip=localhost + jupyter notebook --ip=0.0.0.0 Note that on macOS, because we use bridge network, jupyter notebook will be reportedly running at an URL like ``http://{container_hostname}:8888/?token=...``. You should replace the ``container_hostname`` diff --git a/docs/vta/install.rst b/docs/vta/install.rst index ab8a72761908..2248975b61b1 100644 --- a/docs/vta/install.rst +++ b/docs/vta/install.rst @@ -167,7 +167,7 @@ You should see the following being displayed when starting the RPC server. In or .. code:: bash - INFO:root:RPCServer: bind to localhost:9091 + INFO:root:RPCServer: bind to 0.0.0.0:9091 Tips regarding the Pynq RPC Server: diff --git a/golang/README.md b/golang/README.md index a36138b90870..ee3ea8cc2e98 100644 --- a/golang/README.md +++ b/golang/README.md @@ -110,7 +110,7 @@ A html version documentation can be accessed by running below command after buil ```bash godoc -http=:6060 -goroot=./gopath ``` -After above command try http://localhost:6060 from any browser. +After above command try http://127.0.0.1:6060 from any browser. Also please refer to the sample applications under sample folder. diff --git a/python/tvm/auto_scheduler/measure.py b/python/tvm/auto_scheduler/measure.py index ef44712e8d96..e77721496386 100644 --- a/python/tvm/auto_scheduler/measure.py +++ b/python/tvm/auto_scheduler/measure.py @@ -552,7 +552,7 @@ def __init__( if dev.exist: cuda_arch = "sm_" + "".join(dev.compute_version.split(".")) set_cuda_target_arch(cuda_arch) - host = "localhost" + host = "0.0.0.0" self.tracker = Tracker(host, port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % self.tracker.port self.server = Server( diff --git a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py index 2dddeaa23461..b307130780a7 100644 --- a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py +++ b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py @@ -393,7 +393,7 @@ def benchmark_layout_transform( device_key : str, optional Remote device key which can be queried by - python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 + python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 host : str, optional IP address used to create RPC tracker on host machine. diff --git a/python/tvm/autotvm/measure/measure_methods.py b/python/tvm/autotvm/measure/measure_methods.py index c5dbc7ecb194..aa072cfd5de2 100644 --- a/python/tvm/autotvm/measure/measure_methods.py +++ b/python/tvm/autotvm/measure/measure_methods.py @@ -400,10 +400,10 @@ def set_task(self, task): from ...rpc.server import Server self.task = task - tracker = Tracker("localhost", port=9000, port_end=10000, silent=True) + tracker = Tracker("0.0.0.0", port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % tracker.port server = Server( - "localhost", + "0.0.0.0", port=9000, port_end=10000, key=device_key, diff --git a/python/tvm/exec/measure_peak.py b/python/tvm/exec/measure_peak.py index 5b650a890afe..d8840fadd802 100644 --- a/python/tvm/exec/measure_peak.py +++ b/python/tvm/exec/measure_peak.py @@ -17,7 +17,7 @@ """measure bandwidth and compute peak e.g. -python3 -m tvm.exec.measure_peak --target cuda --rpc-host localhost --rpc-port 9090 +python3 -m tvm.exec.measure_peak --target cuda --rpc-host 0.0.0.0 --rpc-port 9090 python3 -m tvm.exec.measure_peak --target opencl --target-host "llvm -mtriple=aarch64-linux-gnu" \ --rpc-host $TVM_OPENCL_DEVICE_HOST --rpc-port 9090 """ @@ -37,7 +37,7 @@ def main(): "--target-host", type=str, default=None, help="The host code compilation target" ) parser.add_argument( - "--rpc-host", type=str, default="localhost", help="the hostname of the server" + "--rpc-host", type=str, default="0.0.0.0", help="the hostname of the server" ) parser.add_argument("--rpc-port", type=int, default=9090, help="The port of the RPC") diff --git a/python/tvm/exec/microtvm_debug_shell.py b/python/tvm/exec/microtvm_debug_shell.py index fe1d4eea0b80..576c07e7fe9e 100644 --- a/python/tvm/exec/microtvm_debug_shell.py +++ b/python/tvm/exec/microtvm_debug_shell.py @@ -46,7 +46,7 @@ def parse_args(): """Parse command line arguments to this script.""" parser = argparse.ArgumentParser(description="microTVM debug-tool runner") - parser.add_argument("--host", default="localhost", help="hostname to listen on") + parser.add_argument("--host", default="0.0.0.0", help="hostname to listen on") parser.add_argument("--port", type=int, default=9090, help="hostname to listen on") parser.add_argument( "--impl", diff --git a/python/tvm/exec/rpc_server.py b/python/tvm/exec/rpc_server.py index 8ce373d41bbe..6b3e93edd223 100644 --- a/python/tvm/exec/rpc_server.py +++ b/python/tvm/exec/rpc_server.py @@ -54,7 +54,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="localhost", help="the hostname of the server") + parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") parser.add_argument("--port", type=int, default=9090, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/exec/rpc_tracker.py b/python/tvm/exec/rpc_tracker.py index 8618ae909232..4a1a964338ba 100644 --- a/python/tvm/exec/rpc_tracker.py +++ b/python/tvm/exec/rpc_tracker.py @@ -33,7 +33,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="localhost", help="the hostname of the tracker") + parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the tracker") parser.add_argument("--port", type=int, default=9190, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/micro/session.py b/python/tvm/micro/session.py index 427dac807351..78bf03379939 100644 --- a/python/tvm/micro/session.py +++ b/python/tvm/micro/session.py @@ -53,7 +53,7 @@ class Session: .. code-block:: python c_mod = ... # some module generated with "c" as the target - dev_config = micro.device.arm.stm32f746xx.default_config('localhost', 6666) + dev_config = micro.device.arm.stm32f746xx.default_config('127.0.0.1', 6666) with tvm.micro.Session(dev_config) as sess: micro_mod = sess.create_micro_mod(c_mod) """ diff --git a/src/support/socket.h b/src/support/socket.h index eec75438bc9d..11060ae8aae1 100644 --- a/src/support/socket.h +++ b/src/support/socket.h @@ -119,7 +119,7 @@ struct SockAddr { std::string port = url.substr(sep + 1, url.length() - 1); ICHECK(ValidateIP(host)) << "Url address is not valid " << url; if (host == "localhost") { - host = "localhost"; + host = "127.0.0.1"; } this->Set(host.c_str(), std::stoi(port)); } diff --git a/tests/micro/test_runtime_micro_on_arm.py b/tests/micro/test_runtime_micro_on_arm.py index 7045d6e1327a..7d19d9510062 100644 --- a/tests/micro/test_runtime_micro_on_arm.py +++ b/tests/micro/test_runtime_micro_on_arm.py @@ -30,8 +30,8 @@ # Ex : openocd -f board/stm32f7discovery.cfg # Be sure to have the ST CMSIS library downloaded, installed and # Ex : export CMSIS_ST_PATH="/home/yourid/st/STM32Cube_FW_F7_V1.16.0/Drivers/CMSIS" -DEV_CONFIG_A = micro.device.arm.stm32f746xx.generate_config("localhost", 6666) -DEV_CONFIG_B = micro.device.arm.stm32f746xx.generate_config("localhost", 6666) +DEV_CONFIG_A = micro.device.arm.stm32f746xx.generate_config("127.0.0.1", 6666) +DEV_CONFIG_B = micro.device.arm.stm32f746xx.generate_config("127.0.0.1", 6666) TARGET = "micro_dev" diff --git a/tests/micro/zephyr/test_zephyr.py b/tests/micro/zephyr/test_zephyr.py index d78db87ae770..d75e1b607b8d 100644 --- a/tests/micro/zephyr/test_zephyr.py +++ b/tests/micro/zephyr/test_zephyr.py @@ -93,7 +93,7 @@ def _make_session(model, target, zephyr_board, west_cmd, mod): flasher_kw = {} if DEBUG: - flasher_kw["debug_rpc_session"] = tvm.rpc.connect("localhost", 9090) + flasher_kw["debug_rpc_session"] = tvm.rpc.connect("127.0.0.1", 9090) session_kw = { "flasher": compiler.flasher(**flasher_kw), diff --git a/tutorials/auto_scheduler/tune_network_arm.py b/tutorials/auto_scheduler/tune_network_arm.py index 454a19eac76e..46d95c38eab4 100644 --- a/tutorials/auto_scheduler/tune_network_arm.py +++ b/tutorials/auto_scheduler/tune_network_arm.py @@ -25,7 +25,7 @@ best performance. This is a tutorial on how to tune a whole neural network for ARM CPU with the auto-scheduler via RPC. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -164,13 +164,13 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32", use_sparse=Fal # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 ################################################################# # Register Devices to RPC Tracker @@ -198,7 +198,7 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32", use_sparse=Fal # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 4B with 64bit OS, and 2 rk3399, # the output can be diff --git a/tutorials/auto_scheduler/tune_network_mali.py b/tutorials/auto_scheduler/tune_network_mali.py index 2f6126d76516..35751fa11f17 100644 --- a/tutorials/auto_scheduler/tune_network_mali.py +++ b/tutorials/auto_scheduler/tune_network_mali.py @@ -23,7 +23,7 @@ best performance. This is a tutorial on how to tune a whole neural network for mali GPU with the auto-scheduler. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -180,7 +180,7 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32"): # .. code-block:: python # # from tvm.auto_scheduler.utils import request_remote -# remote = request_remote(device_key, "localhost", 9190) +# remote = request_remote(device_key, "0.0.0.0", 9190) # dev = remote.cl() # max_shared_memory_per_block = dev.max_shared_memory_per_block # # There is no explicit local memory limition @@ -228,7 +228,7 @@ def tune_and_evaluate(): num_measure_trials=200, # change this to 20000 to achieve the best performance builder=auto_scheduler.LocalBuilder(build_func="ndk" if use_ndk else "default"), runner=auto_scheduler.RPCRunner( - device_key, host="localhost", port=9190, repeat=3, timeout=50 + device_key, host="0.0.0.0", port=9190, repeat=3, timeout=50 ), measure_callbacks=[auto_scheduler.RecordToFile(log_file)], ) @@ -247,7 +247,7 @@ def tune_and_evaluate(): print("=============== Request Remote ===============") from tvm.auto_scheduler.utils import request_remote - remote = request_remote(device_key, "localhost", 9190) + remote = request_remote(device_key, "0.0.0.0", 9190) dev = remote.cl() from tvm.contrib import utils, ndk diff --git a/tutorials/autotvm/tune_relay_arm.py b/tutorials/autotvm/tune_relay_arm.py index 0d42c4630dd6..9223eb30cd9d 100644 --- a/tutorials/autotvm/tune_relay_arm.py +++ b/tutorials/autotvm/tune_relay_arm.py @@ -139,13 +139,13 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 ################################################################# # Register Devices to RPC Tracker @@ -173,7 +173,7 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 3B and 2 rk3399, # the output can be @@ -224,7 +224,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="localhost", + host="0.0.0.0", port=9190, number=5, timeout=10, @@ -343,7 +343,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "localhost", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/autotvm/tune_relay_cuda.py b/tutorials/autotvm/tune_relay_cuda.py index 0c775efe4174..50485c4d7ff2 100644 --- a/tutorials/autotvm/tune_relay_cuda.py +++ b/tutorials/autotvm/tune_relay_cuda.py @@ -329,13 +329,13 @@ def tune_and_evaluate(tuning_opt): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 # # Then open another new terminal for the RPC server. We need to start one dedicated server # for each device. We use a string key to distinguish the types of devices. @@ -345,13 +345,13 @@ def tune_and_evaluate(tuning_opt): # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --tracker=localhost:9190 --key=1080ti +# python -m tvm.exec.rpc_server --tracker=0.0.0.0:9190 --key=1080ti # # After registering devices, we can confirm it by querying rpc_tracker # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have four 1080ti, two titanx and one gfx900, the output can be # @@ -378,7 +378,7 @@ def tune_and_evaluate(tuning_opt): builder=autotvm.LocalBuilder(timeout=10), runner=autotvm.RPCRunner( "1080ti", # change the device key to your key - "localhost", + "0.0.0.0", 9190, number=20, repeat=3, diff --git a/tutorials/autotvm/tune_relay_mobile_gpu.py b/tutorials/autotvm/tune_relay_mobile_gpu.py index 2970e9d3f4eb..2b109873c750 100644 --- a/tutorials/autotvm/tune_relay_mobile_gpu.py +++ b/tutorials/autotvm/tune_relay_mobile_gpu.py @@ -141,13 +141,13 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 ################################################################# # Register Devices to RPC Tracker @@ -175,7 +175,7 @@ def get_network(name, batch_size): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have 2 Huawei mate10 pro, 11 Raspberry Pi 3B and 2 rk3399, # the output can be @@ -225,7 +225,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="localhost", + host="0.0.0.0", port=9190, number=10, timeout=5, @@ -340,7 +340,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "localhost", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/frontend/deploy_model_on_android.py b/tutorials/frontend/deploy_model_on_android.py index b41581800955..158280fe9447 100644 --- a/tutorials/frontend/deploy_model_on_android.py +++ b/tutorials/frontend/deploy_model_on_android.py @@ -93,13 +93,13 @@ # # .. code-block:: bash # -# python3 -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python3 -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 ################################################################# # Register Android device to RPC Tracker @@ -156,7 +156,7 @@ # # .. code-block:: bash # -# python3 -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python3 -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have 1 Android device. # the output can be @@ -175,7 +175,7 @@ # # .. code-block:: bash # -# export TVM_TRACKER_HOST=localhost +# export TVM_TRACKER_HOST=0.0.0.0 # export TVM_TRACKER_PORT=9190 # # .. code-block:: bash @@ -289,7 +289,7 @@ def transform_image(image): # With RPC, you can deploy the model remotely from your host machine # to the remote android device. -tracker_host = os.environ.get("TVM_TRACKER_HOST", "localhost") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) key = "android" diff --git a/tutorials/frontend/deploy_model_on_rasp.py b/tutorials/frontend/deploy_model_on_rasp.py index 854c9f44edd5..a59665f62f1c 100644 --- a/tutorials/frontend/deploy_model_on_rasp.py +++ b/tutorials/frontend/deploy_model_on_rasp.py @@ -80,14 +80,14 @@ # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --host localhost --port=9090 +# python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090 # # If you see the line below, it means the RPC server started # successfully on your device. # # .. code-block:: bash # -# INFO:root:RPCServer: bind to localhost:9090 +# INFO:root:RPCServer: bind to 0.0.0.0:9090 # ###################################################################### diff --git a/tutorials/get_started/cross_compilation_and_rpc.py b/tutorials/get_started/cross_compilation_and_rpc.py index d0c457c3c7ba..3c23c4956262 100644 --- a/tutorials/get_started/cross_compilation_and_rpc.py +++ b/tutorials/get_started/cross_compilation_and_rpc.py @@ -72,14 +72,14 @@ # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --host localhost --port=9090 +# python -m tvm.exec.rpc_server --host 0.0.0.0 --port=9090 # # If you see the line below, it means the RPC server started # successfully on your device. # # .. code-block:: bash # -# INFO:root:RPCServer: bind to localhost:9090 +# INFO:root:RPCServer: bind to 0.0.0.0:9090 # ###################################################################### diff --git a/vta/python/vta/exec/rpc_server.py b/vta/python/vta/exec/rpc_server.py index 4bc0994296c3..cd519137bce7 100644 --- a/vta/python/vta/exec/rpc_server.py +++ b/vta/python/vta/exec/rpc_server.py @@ -127,7 +127,7 @@ def reconfig_runtime(cfg_json): def main(): """Main funciton""" parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="localhost", help="the hostname of the server") + parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") parser.add_argument("--port", type=int, default=9091, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/vta/python/vta/testing/utils.py b/vta/python/vta/testing/utils.py index 612269317ca4..f163359667f1 100644 --- a/vta/python/vta/testing/utils.py +++ b/vta/python/vta/testing/utils.py @@ -42,7 +42,7 @@ def run(run_func): # the port it's listening to, e.g. 9090 local_rpc = int(os.environ.get("VTA_LOCAL_SIM_RPC", "0")) if local_rpc: - remote = rpc.connect("localhost", local_rpc) + remote = rpc.connect("127.0.0.1", local_rpc) run_func(env, remote) else: # Make sure simulation library exists diff --git a/vta/tutorials/autotvm/tune_relay_vta.py b/vta/tutorials/autotvm/tune_relay_vta.py index 047bd00a8fc5..7deb7408479a 100644 --- a/vta/tutorials/autotvm/tune_relay_vta.py +++ b/vta/tutorials/autotvm/tune_relay_vta.py @@ -129,13 +129,13 @@ def compile_network(env, target, model, start_pack, stop_pack): # # .. code-block:: bash # -# python -m tvm.exec.rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.rpc_tracker --host=0.0.0.0 --port=9190 # # The expected output is: # # .. code-block:: bash # -# INFO:RPCTracker:bind to localhost:9190 +# INFO:RPCTracker:bind to 0.0.0.0:9190 ################################################################# # Register devices to RPC Tracker @@ -156,7 +156,7 @@ def compile_network(env, target, model, start_pack, stop_pack): # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=localhost --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 # # For example, if we have 6 Pynq boards and 11 Raspberry Pi 3B, # the output can be @@ -180,7 +180,7 @@ def compile_network(env, target, model, start_pack, stop_pack): # Here we use an Pynq-Z1 board as an example. # Tracker host and port can be set by your environment -tracker_host = os.environ.get("TVM_TRACKER_HOST", "localhost") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file From f3f86ad2465a423e002a15d545786a1ed531c30b Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 7 Apr 2021 10:41:37 -0700 Subject: [PATCH 08/22] Address address issues --- python/tvm/auto_scheduler/measure.py | 8 +++----- python/tvm/autotvm/measure/measure_methods.py | 7 +++---- python/tvm/exec/measure_peak.py | 6 +++--- python/tvm/exec/rpc_server.py | 4 +++- python/tvm/exec/rpc_tracker.py | 4 +++- python/tvm/rpc/tracker.py | 2 +- tests/python/unittest/test_runtime_rpc.py | 4 +--- tutorials/auto_scheduler/tune_network_arm.py | 4 ++-- tutorials/auto_scheduler/tune_network_mali.py | 10 +++++----- tutorials/autotvm/tune_relay_arm.py | 4 ++-- tutorials/autotvm/tune_relay_cuda.py | 6 +++--- tutorials/autotvm/tune_relay_mobile_gpu.py | 4 ++-- tutorials/frontend/deploy_model_on_android.py | 2 +- vta/python/vta/exec/rpc_server.py | 4 +++- vta/tutorials/autotvm/tune_relay_vta.py | 2 +- 15 files changed, 36 insertions(+), 35 deletions(-) diff --git a/python/tvm/auto_scheduler/measure.py b/python/tvm/auto_scheduler/measure.py index e77721496386..55a91148bc94 100644 --- a/python/tvm/auto_scheduler/measure.py +++ b/python/tvm/auto_scheduler/measure.py @@ -552,20 +552,18 @@ def __init__( if dev.exist: cuda_arch = "sm_" + "".join(dev.compute_version.split(".")) set_cuda_target_arch(cuda_arch) - host = "0.0.0.0" - self.tracker = Tracker(host, port=9000, port_end=10000, silent=True) + self.tracker = Tracker(port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % self.tracker.port self.server = Server( - host, port=self.tracker.port, port_end=10000, key=device_key, silent=True, - tracker_addr=(self.tracker.host, self.tracker.port), + tracker_addr=("127.0.0.1", self.tracker.port), ) self.runner = RPCRunner( device_key, - host, + "127.0.0.1", self.tracker.port, priority, n_parallel, diff --git a/python/tvm/autotvm/measure/measure_methods.py b/python/tvm/autotvm/measure/measure_methods.py index aa072cfd5de2..88a4a6aa2e16 100644 --- a/python/tvm/autotvm/measure/measure_methods.py +++ b/python/tvm/autotvm/measure/measure_methods.py @@ -400,18 +400,17 @@ def set_task(self, task): from ...rpc.server import Server self.task = task - tracker = Tracker("0.0.0.0", port=9000, port_end=10000, silent=True) + tracker = Tracker(port=9000, port_end=10000, silent=True) device_key = "$local$device$%d" % tracker.port server = Server( - "0.0.0.0", port=9000, port_end=10000, key=device_key, silent=True, - tracker_addr=(tracker.host, tracker.port), + tracker_addr=("127.0.0.1", tracker.port), ) self.key = device_key - self.host = tracker.host + self.host = "127.0.0.1" self.port = tracker.port super(LocalRunner, self).set_task(task) diff --git a/python/tvm/exec/measure_peak.py b/python/tvm/exec/measure_peak.py index d8840fadd802..6db61080eaf7 100644 --- a/python/tvm/exec/measure_peak.py +++ b/python/tvm/exec/measure_peak.py @@ -17,7 +17,7 @@ """measure bandwidth and compute peak e.g. -python3 -m tvm.exec.measure_peak --target cuda --rpc-host 0.0.0.0 --rpc-port 9090 +python3 -m tvm.exec.measure_peak --target cuda --rpc-host 127.0.0.1 --rpc-port 9090 python3 -m tvm.exec.measure_peak --target opencl --target-host "llvm -mtriple=aarch64-linux-gnu" \ --rpc-host $TVM_OPENCL_DEVICE_HOST --rpc-port 9090 """ @@ -30,14 +30,14 @@ def main(): - """Main funciton""" + """Main function""" parser = argparse.ArgumentParser() parser.add_argument("--target", type=str, default="llvm", help="The build target") parser.add_argument( "--target-host", type=str, default=None, help="The host code compilation target" ) parser.add_argument( - "--rpc-host", type=str, default="0.0.0.0", help="the hostname of the server" + "--rpc-host", type=str, default="127.0.0.1", help="the hostname of the server" ) parser.add_argument("--rpc-port", type=int, default=9090, help="The port of the RPC") diff --git a/python/tvm/exec/rpc_server.py b/python/tvm/exec/rpc_server.py index 6b3e93edd223..ceab65c5c427 100644 --- a/python/tvm/exec/rpc_server.py +++ b/python/tvm/exec/rpc_server.py @@ -54,7 +54,9 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") + parser.add_argument( + "--host", type=str, default="0.0.0.0", help="The host IP address the tracker binds to" + ) parser.add_argument("--port", type=int, default=9090, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/exec/rpc_tracker.py b/python/tvm/exec/rpc_tracker.py index 4a1a964338ba..05809e044fec 100644 --- a/python/tvm/exec/rpc_tracker.py +++ b/python/tvm/exec/rpc_tracker.py @@ -33,7 +33,9 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the tracker") + parser.add_argument( + "--host", type=str, default="0.0.0.0", help="The host IP address the tracker binds to" + ) parser.add_argument("--port", type=int, default=9190, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/python/tvm/rpc/tracker.py b/python/tvm/rpc/tracker.py index bcdf92ba3cb6..8e05edcacfc3 100644 --- a/python/tvm/rpc/tracker.py +++ b/python/tvm/rpc/tracker.py @@ -367,7 +367,7 @@ def _tracker_server(listen_sock, stop_key): class Tracker(object): - """Start RPC tracker on a seperate process. + """Start RPC tracker on a separate process. Python implementation based on multi-processing. diff --git a/tests/python/unittest/test_runtime_rpc.py b/tests/python/unittest/test_runtime_rpc.py index bb23918b6856..0a9d5ae29ba1 100644 --- a/tests/python/unittest/test_runtime_rpc.py +++ b/tests/python/unittest/test_runtime_rpc.py @@ -452,9 +452,7 @@ def test_rpc_tracker_request(): ) client = rpc.connect_tracker("127.0.0.1", tracker.port) - proc1 = multiprocessing.Process( - target=_target, args=("127.0.0.1", tracker.port, device_key, 4) - ) + proc1 = multiprocessing.Process(target=_target, args=("127.0.0.1", tracker.port, device_key, 4)) proc2 = multiprocessing.Process( target=_target, args=("127.0.0.1", tracker.port, device_key, 200) ) diff --git a/tutorials/auto_scheduler/tune_network_arm.py b/tutorials/auto_scheduler/tune_network_arm.py index 46d95c38eab4..d6d8097769af 100644 --- a/tutorials/auto_scheduler/tune_network_arm.py +++ b/tutorials/auto_scheduler/tune_network_arm.py @@ -25,7 +25,7 @@ best performance. This is a tutorial on how to tune a whole neural network for ARM CPU with the auto-scheduler via RPC. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -234,7 +234,7 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32", use_sparse=Fal # Also replace this with the device key, rpc host and rpc port in your tracker device_key = "rasp4b-64" -rpc_host = "0.0.0.0" +rpc_host = "127.0.0.1" rpc_port = 9191 # Set this to True if you use ndk tools for cross compiling diff --git a/tutorials/auto_scheduler/tune_network_mali.py b/tutorials/auto_scheduler/tune_network_mali.py index 35751fa11f17..8275f96806b8 100644 --- a/tutorials/auto_scheduler/tune_network_mali.py +++ b/tutorials/auto_scheduler/tune_network_mali.py @@ -23,7 +23,7 @@ best performance. This is a tutorial on how to tune a whole neural network for mali GPU with the auto-scheduler. -To auto-tune a neural network, we partition the network into small subgraphs and +To auto-tune a neural network, we partition the network into small subgraphs and tune them independently. Each subgraph is treated as one search task. A task scheduler slices the time and dynamically allocates time resources to these tasks. The task scheduler predicts the impact of each task on the end-to-end @@ -180,11 +180,11 @@ def get_network(name, batch_size, layout="NHWC", dtype="float32"): # .. code-block:: python # # from tvm.auto_scheduler.utils import request_remote -# remote = request_remote(device_key, "0.0.0.0", 9190) +# remote = request_remote(device_key, "127.0.0.1", 9190) # dev = remote.cl() # max_shared_memory_per_block = dev.max_shared_memory_per_block # # There is no explicit local memory limition -# # so we can use INT32_MAX to disalbe the check on local_memory. +# # so we can use INT32_MAX to disable the check on local_memory. # max_local_memory_per_block = 2147483647 # INT32_MAX # max_threads_per_block = dev.max_threads_per_block # max_vthread_extent = int(dev.warp_size / 4) if int(dev.warp_size / 4) > 1 else dev.warp_size @@ -228,7 +228,7 @@ def tune_and_evaluate(): num_measure_trials=200, # change this to 20000 to achieve the best performance builder=auto_scheduler.LocalBuilder(build_func="ndk" if use_ndk else "default"), runner=auto_scheduler.RPCRunner( - device_key, host="0.0.0.0", port=9190, repeat=3, timeout=50 + device_key, host="127.0.0.1", port=9190, repeat=3, timeout=50 ), measure_callbacks=[auto_scheduler.RecordToFile(log_file)], ) @@ -247,7 +247,7 @@ def tune_and_evaluate(): print("=============== Request Remote ===============") from tvm.auto_scheduler.utils import request_remote - remote = request_remote(device_key, "0.0.0.0", 9190) + remote = request_remote(device_key, "127.0.0.1", 9190) dev = remote.cl() from tvm.contrib import utils, ndk diff --git a/tutorials/autotvm/tune_relay_arm.py b/tutorials/autotvm/tune_relay_arm.py index 9223eb30cd9d..68d263b6f29a 100644 --- a/tutorials/autotvm/tune_relay_arm.py +++ b/tutorials/autotvm/tune_relay_arm.py @@ -224,7 +224,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="0.0.0.0", + host="127.0.0.1", port=9190, number=5, timeout=10, @@ -343,7 +343,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "127.0.0.1", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/autotvm/tune_relay_cuda.py b/tutorials/autotvm/tune_relay_cuda.py index 50485c4d7ff2..65991cc83454 100644 --- a/tutorials/autotvm/tune_relay_cuda.py +++ b/tutorials/autotvm/tune_relay_cuda.py @@ -345,13 +345,13 @@ def tune_and_evaluate(tuning_opt): # # .. code-block:: bash # -# python -m tvm.exec.rpc_server --tracker=0.0.0.0:9190 --key=1080ti +# python -m tvm.exec.rpc_server --tracker=127.0.0.1:9190 --key=1080ti # # After registering devices, we can confirm it by querying rpc_tracker # # .. code-block:: bash # -# python -m tvm.exec.query_rpc_tracker --host=0.0.0.0 --port=9190 +# python -m tvm.exec.query_rpc_tracker --host=127.0.0.1 --port=9190 # # For example, if we have four 1080ti, two titanx and one gfx900, the output can be # @@ -378,7 +378,7 @@ def tune_and_evaluate(tuning_opt): builder=autotvm.LocalBuilder(timeout=10), runner=autotvm.RPCRunner( "1080ti", # change the device key to your key - "0.0.0.0", + "127.0.0.1", 9190, number=20, repeat=3, diff --git a/tutorials/autotvm/tune_relay_mobile_gpu.py b/tutorials/autotvm/tune_relay_mobile_gpu.py index 2b109873c750..790c2ff2c2b9 100644 --- a/tutorials/autotvm/tune_relay_mobile_gpu.py +++ b/tutorials/autotvm/tune_relay_mobile_gpu.py @@ -225,7 +225,7 @@ def get_network(name, batch_size): builder=autotvm.LocalBuilder(build_func="ndk" if use_android else "default"), runner=autotvm.RPCRunner( device_key, - host="0.0.0.0", + host="127.0.0.1", port=9190, number=10, timeout=5, @@ -340,7 +340,7 @@ def tune_and_evaluate(tuning_opt): # upload module to device print("Upload...") - remote = autotvm.measure.request_remote(device_key, "0.0.0.0", 9190, timeout=10000) + remote = autotvm.measure.request_remote(device_key, "127.0.0.1", 9190, timeout=10000) remote.upload(tmp.relpath(filename)) rlib = remote.load_module(filename) diff --git a/tutorials/frontend/deploy_model_on_android.py b/tutorials/frontend/deploy_model_on_android.py index 158280fe9447..864e81328c99 100644 --- a/tutorials/frontend/deploy_model_on_android.py +++ b/tutorials/frontend/deploy_model_on_android.py @@ -289,7 +289,7 @@ def transform_image(image): # With RPC, you can deploy the model remotely from your host machine # to the remote android device. -tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "127.0.0.1") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) key = "android" diff --git a/vta/python/vta/exec/rpc_server.py b/vta/python/vta/exec/rpc_server.py index cd519137bce7..b7a9c79392d2 100644 --- a/vta/python/vta/exec/rpc_server.py +++ b/vta/python/vta/exec/rpc_server.py @@ -127,7 +127,9 @@ def reconfig_runtime(cfg_json): def main(): """Main funciton""" parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="0.0.0.0", help="the hostname of the server") + parser.add_argument( + "--host", type=str, default="0.0.0.0", help="The host IP address the server binds to" + ) parser.add_argument("--port", type=int, default=9091, help="The port of the RPC") parser.add_argument("--port-end", type=int, default=9199, help="The end search port of the RPC") parser.add_argument( diff --git a/vta/tutorials/autotvm/tune_relay_vta.py b/vta/tutorials/autotvm/tune_relay_vta.py index 7deb7408479a..38633b01d976 100644 --- a/vta/tutorials/autotvm/tune_relay_vta.py +++ b/vta/tutorials/autotvm/tune_relay_vta.py @@ -180,7 +180,7 @@ def compile_network(env, target, model, start_pack, stop_pack): # Here we use an Pynq-Z1 board as an example. # Tracker host and port can be set by your environment -tracker_host = os.environ.get("TVM_TRACKER_HOST", "0.0.0.0") +tracker_host = os.environ.get("TVM_TRACKER_HOST", "127.0.0.1") tracker_port = int(os.environ.get("TVM_TRACKER_PORT", 9190)) # Load VTA parameters from the 3rdparty/vta-hw/config/vta_config.json file From 830a2781cf951aa9ba5f52972d2b15186a8dc34c Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 7 Apr 2021 13:12:32 -0700 Subject: [PATCH 09/22] Rename localhost to 127.0.0.1 for connections --- apps/benchmark/arm_cpu_imagenet_bench.py | 2 +- apps/benchmark/mobile_gpu_imagenet_bench.py | 2 +- docs/deploy/arm_compute_lib.rst | 2 +- jvm/README.md | 2 +- .../org/apache/tvm/contrib/GraphExecutorTest.java | 2 +- .../src/test/java/org/apache/tvm/rpc/RPCTest.java | 4 ++-- jvm/core/src/test/scripts/test_rpc_proxy_server.py | 2 +- python/tvm/autotvm/database.py | 2 +- python/tvm/autotvm/graph_tuner/base_graph_tuner.py | 2 +- python/tvm/exec/query_rpc_tracker.py | 2 +- python/tvm/exec/rpc_proxy.py | 2 +- src/support/socket.h | 4 ++-- .../contrib/test_arm_compute_lib/infrastructure.py | 2 +- .../contrib/test_arm_compute_lib/test_config.json | 2 +- tests/python/contrib/test_bnns/infrastructure.py | 2 +- tests/python/contrib/test_coreml_runtime.py | 2 +- tests/python/contrib/test_edgetpu_runtime.py | 2 +- tests/python/contrib/test_random.py | 2 +- tests/python/contrib/test_rpc_tracker.py | 14 +++++++------- tests/python/contrib/test_tflite_runtime.py | 2 +- tests/python/unittest/test_runtime_graph.py | 2 +- tests/python/unittest/test_runtime_graph_debug.py | 2 +- .../test_runtime_module_based_interface.py | 2 +- web/tests/python/webgpu_rpc_test.py | 2 +- web/tests/python/websock_rpc_test.py | 2 +- 25 files changed, 33 insertions(+), 33 deletions(-) diff --git a/apps/benchmark/arm_cpu_imagenet_bench.py b/apps/benchmark/arm_cpu_imagenet_bench.py index 656735ec6c05..30607f79f5fb 100644 --- a/apps/benchmark/arm_cpu_imagenet_bench.py +++ b/apps/benchmark/arm_cpu_imagenet_bench.py @@ -98,7 +98,7 @@ def evaluate_network(network, target, target_host, repeat): help="The model of the test device. If your device is not listed in " "the choices list, pick the most similar one as argument.", ) - parser.add_argument("--host", type=str, default="localhost") + parser.add_argument("--host", type=str, default="127.0.0.1") parser.add_argument("--port", type=int, default=9190) parser.add_argument("--rpc-key", type=str, required=True) parser.add_argument("--repeat", type=int, default=10) diff --git a/apps/benchmark/mobile_gpu_imagenet_bench.py b/apps/benchmark/mobile_gpu_imagenet_bench.py index 4eff259875ca..01d1f13c08b3 100644 --- a/apps/benchmark/mobile_gpu_imagenet_bench.py +++ b/apps/benchmark/mobile_gpu_imagenet_bench.py @@ -98,7 +98,7 @@ def evaluate_network(network, target, target_host, dtype, repeat): help="The model of the test device. If your device is not listed in " "the choices list, pick the most similar one as argument.", ) - parser.add_argument("--host", type=str, default="localhost") + parser.add_argument("--host", type=str, default="127.0.0.1") parser.add_argument("--port", type=int, default=9190) parser.add_argument("--rpc-key", type=str, required=True) parser.add_argument("--repeat", type=int, default=30) diff --git a/docs/deploy/arm_compute_lib.rst b/docs/deploy/arm_compute_lib.rst index 4e43682a240a..1abc31bbb422 100644 --- a/docs/deploy/arm_compute_lib.rst +++ b/docs/deploy/arm_compute_lib.rst @@ -178,7 +178,7 @@ An example configuration for `test_config.json`: { "connection_type": "local", - "host": "localhost", + "host": "127.0.0.1", "port": 9090, "target": "llvm -mtriple=aarch64-linux-gnu -mattr=+neon", "device_key": "", diff --git a/jvm/README.md b/jvm/README.md index 6e71adf65683..a481756ff48d 100644 --- a/jvm/README.md +++ b/jvm/README.md @@ -164,7 +164,7 @@ server.start(); This will open a socket and wait for remote requests. You can use Java, Python, or any other frontend to make an RPC call. Here's an example for calling remote function `test.rpc.strcat` in Java. ```java -RPCSession client = Client.connect("localhost", port.value); +RPCSession client = Client.connect("127.0.0.1", port.value); Function func = client.getFunction("test.rpc.strcat"); String result = func.call("abc", 11L).asString(); ``` diff --git a/jvm/core/src/test/java/org/apache/tvm/contrib/GraphExecutorTest.java b/jvm/core/src/test/java/org/apache/tvm/contrib/GraphExecutorTest.java index 0a5fa9a67e3a..f79253e487e1 100644 --- a/jvm/core/src/test/java/org/apache/tvm/contrib/GraphExecutorTest.java +++ b/jvm/core/src/test/java/org/apache/tvm/contrib/GraphExecutorTest.java @@ -86,7 +86,7 @@ public void test_add_one_remote() throws IOException { Server server = null; try { server = TestUtils.startServer(port); - RPCSession remote = Client.connect("localhost", port.value); + RPCSession remote = Client.connect("127.0.0.1", port.value); Device dev = remote.cpu(); remote.upload(new File(libPath)); diff --git a/jvm/core/src/test/java/org/apache/tvm/rpc/RPCTest.java b/jvm/core/src/test/java/org/apache/tvm/rpc/RPCTest.java index 07181642fbeb..641633def8a0 100644 --- a/jvm/core/src/test/java/org/apache/tvm/rpc/RPCTest.java +++ b/jvm/core/src/test/java/org/apache/tvm/rpc/RPCTest.java @@ -47,7 +47,7 @@ public void test_addone() { Server server = null; try { server = TestUtils.startServer(port); - RPCSession client = Client.connect("localhost", port.value); + RPCSession client = Client.connect("127.0.0.1", port.value); Function func = client.getFunction("test.rpc.addone"); assertEquals(11L, func.call(10).asLong()); } finally { @@ -73,7 +73,7 @@ public void test_strcat() { Server server = null; try { server = TestUtils.startServer(port); - RPCSession client = Client.connect("localhost", port.value); + RPCSession client = Client.connect("127.0.0.1", port.value); Function func = client.getFunction("test.rpc.strcat"); assertEquals("abc:11", func.call("abc", 11L).asString()); } finally { diff --git a/jvm/core/src/test/scripts/test_rpc_proxy_server.py b/jvm/core/src/test/scripts/test_rpc_proxy_server.py index d3e23e1ae672..664b65da42da 100644 --- a/jvm/core/src/test/scripts/test_rpc_proxy_server.py +++ b/jvm/core/src/test/scripts/test_rpc_proxy_server.py @@ -19,7 +19,7 @@ def start_proxy_server(port, timeout): - prox = proxy.Proxy("localhost", port=port, port_end=port + 1) + prox = proxy.Proxy("127.0.0.1", port=port, port_end=port + 1) if timeout > 0: import time diff --git a/python/tvm/autotvm/database.py b/python/tvm/autotvm/database.py index 6bb02e85a5bf..4c4ed649236f 100644 --- a/python/tvm/autotvm/database.py +++ b/python/tvm/autotvm/database.py @@ -111,7 +111,7 @@ def __init__(self, db_index=REDIS_PROD): import redis if db_index == RedisDatabase.REDIS_TEST: - host = "localhost" + host = "127.0.0.1" else: host = os.environ.get("TVM_FLEET_HOST") self.db = redis.StrictRedis(host=host, port=6379, db=db_index) diff --git a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py index b307130780a7..780e6c9a7477 100644 --- a/python/tvm/autotvm/graph_tuner/base_graph_tuner.py +++ b/python/tvm/autotvm/graph_tuner/base_graph_tuner.py @@ -368,7 +368,7 @@ def benchmark_layout_transform( timeout=10, use_rpc=False, device_key=None, - host="localhost", + host="127.0.0.1", port=9190, n_parallel=1, build_func="default", diff --git a/python/tvm/exec/query_rpc_tracker.py b/python/tvm/exec/query_rpc_tracker.py index 360325189dd4..febd093dbd9b 100644 --- a/python/tvm/exec/query_rpc_tracker.py +++ b/python/tvm/exec/query_rpc_tracker.py @@ -33,7 +33,7 @@ def main(): # default to local host or environment variable if not args.host: - args.host = os.environ.get("TVM_TRACKER_HOST", "localhost") + args.host = os.environ.get("TVM_TRACKER_HOST", "127.0.0.1") if not args.port: args.port = int(os.environ.get("TVM_TRACKER_PORT", "9190")) diff --git a/python/tvm/exec/rpc_proxy.py b/python/tvm/exec/rpc_proxy.py index bf315fdb9087..3aa93e66ea0a 100644 --- a/python/tvm/exec/rpc_proxy.py +++ b/python/tvm/exec/rpc_proxy.py @@ -69,7 +69,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--host", type=str, default="localhost", help="the hostname of the server") + parser.add_argument("--host", type=str, default="127.0.0.1", help="the hostname of the server") parser.add_argument("--port", type=int, default=9090, help="The port of the RPC") parser.add_argument( "--web-port", type=int, default=8888, help="The port of the http/websocket server" diff --git a/src/support/socket.h b/src/support/socket.h index 11060ae8aae1..1dca0076fe93 100644 --- a/src/support/socket.h +++ b/src/support/socket.h @@ -85,7 +85,7 @@ inline std::string GetHostName() { * \return result of operation. */ inline bool ValidateIP(std::string ip) { - if (ip == "localhost") { + if (ip == "127.0.0.1") { return true; } struct sockaddr_in sa_ipv4; @@ -118,7 +118,7 @@ struct SockAddr { std::string host = url.substr(2, sep - 3); std::string port = url.substr(sep + 1, url.length() - 1); ICHECK(ValidateIP(host)) << "Url address is not valid " << url; - if (host == "localhost") { + if (host == "127.0.0.1") { host = "127.0.0.1"; } this->Set(host.c_str(), std::stoi(port)); diff --git a/tests/python/contrib/test_arm_compute_lib/infrastructure.py b/tests/python/contrib/test_arm_compute_lib/infrastructure.py index 35f345cea78a..7e05194a5621 100644 --- a/tests/python/contrib/test_arm_compute_lib/infrastructure.py +++ b/tests/python/contrib/test_arm_compute_lib/infrastructure.py @@ -69,7 +69,7 @@ class Device: """ connection_type = "local" - host = "localhost" + host = "127.0.0.1" port = 9090 target = "llvm -mtriple=aarch64-linux-gnu -mattr=+neon" device_key = "" diff --git a/tests/python/contrib/test_arm_compute_lib/test_config.json b/tests/python/contrib/test_arm_compute_lib/test_config.json index c8168ae8d255..5c75e659af77 100644 --- a/tests/python/contrib/test_arm_compute_lib/test_config.json +++ b/tests/python/contrib/test_arm_compute_lib/test_config.json @@ -1,6 +1,6 @@ { "connection_type": "local", - "host": "localhost", + "host": "127.0.0.1", "port": 9090, "target": "llvm -mtriple=aarch64-linux-gnu -mattr=+neon", "device_key": "", diff --git a/tests/python/contrib/test_bnns/infrastructure.py b/tests/python/contrib/test_bnns/infrastructure.py index d046ee9ad0dd..ebdf815aafb3 100644 --- a/tests/python/contrib/test_bnns/infrastructure.py +++ b/tests/python/contrib/test_bnns/infrastructure.py @@ -67,7 +67,7 @@ class Device: """ connection_type = "local" - host = "localhost" + host = "127.0.0.1" port = 9090 target = "llvm" device_key = "" diff --git a/tests/python/contrib/test_coreml_runtime.py b/tests/python/contrib/test_coreml_runtime.py index 447b412595c3..4a2ce487e65d 100644 --- a/tests/python/contrib/test_coreml_runtime.py +++ b/tests/python/contrib/test_coreml_runtime.py @@ -23,7 +23,7 @@ import pytest import os -proxy_host = os.environ.get("TVM_IOS_RPC_PROXY_HOST", "localhost") +proxy_host = os.environ.get("TVM_IOS_RPC_PROXY_HOST", "127.0.0.1") proxy_port = os.environ.get("TVM_IOS_RPC_PROXY_PORT", 9090) destination = os.environ.get("TVM_IOS_RPC_DESTINATION", "") key = "iphone" diff --git a/tests/python/contrib/test_edgetpu_runtime.py b/tests/python/contrib/test_edgetpu_runtime.py index a3a01604bed1..0af2cf2ad288 100644 --- a/tests/python/contrib/test_edgetpu_runtime.py +++ b/tests/python/contrib/test_edgetpu_runtime.py @@ -65,7 +65,7 @@ def check_remote(target_edgetpu=False): tflite_output = interpreter.get_tensor(output_details[0]["index"]) # inference via remote tvm tflite runtime - server = rpc.Server("localhost") + server = rpc.Server("127.0.0.1") remote = rpc.connect(server.host, server.port) dev = remote.cpu(0) diff --git a/tests/python/contrib/test_random.py b/tests/python/contrib/test_random.py index 0740521b5fa5..7ecfccdd5396 100644 --- a/tests/python/contrib/test_random.py +++ b/tests/python/contrib/test_random.py @@ -120,7 +120,7 @@ def test_rpc(dtype): if not tvm.testing.device_enabled("rpc") or not tvm.runtime.enabled("llvm"): return np_ones = np.ones((512, 512), dtype=dtype) - server = rpc.Server("localhost") + server = rpc.Server("127.0.0.1") remote = rpc.connect(server.host, server.port) value = tvm.nd.empty(np_ones.shape, np_ones.dtype, remote.cpu()) random_fill = remote.get_function("tvm.contrib.random.random_fill") diff --git a/tests/python/contrib/test_rpc_tracker.py b/tests/python/contrib/test_rpc_tracker.py index 83cc52fc27a9..105d1aa7b03f 100644 --- a/tests/python/contrib/test_rpc_tracker.py +++ b/tests/python/contrib/test_rpc_tracker.py @@ -37,18 +37,18 @@ def _put(tclient, value): base.sendjson(tclient._sock, value) base.recvjson(tclient._sock) - tserver = tracker.Tracker("localhost", 8888) - tproxy = proxy.Proxy("localhost", 8881, tracker_addr=("localhost", tserver.port)) - tclient = rpc.connect_tracker("localhost", tserver.port) + tserver = tracker.Tracker("127.0.0.1", 8888) + tproxy = proxy.Proxy("127.0.0.1", 8881, tracker_addr=("127.0.0.1", tserver.port)) + tclient = rpc.connect_tracker("127.0.0.1", tserver.port) server0 = rpc.Server( - "localhost", port=9099, tracker_addr=("localhost", tserver.port), key="abc" + "127.0.0.1", port=9099, tracker_addr=("127.0.0.1", tserver.port), key="abc" ) server1 = rpc.Server( - "localhost", port=9099, tracker_addr=("localhost", tserver.port), key="xyz" + "127.0.0.1", port=9099, tracker_addr=("127.0.0.1", tserver.port), key="xyz" ) - server2 = rpc.Server("localhost", tproxy.port, is_proxy=True, key="xyz") - server3 = rpc.Server("localhost", tproxy.port, is_proxy=True, key="xyz1") + server2 = rpc.Server("127.0.0.1", tproxy.port, is_proxy=True, key="xyz") + server3 = rpc.Server("127.0.0.1", tproxy.port, is_proxy=True, key="xyz1") # Fault tolerence to un-handled requested value _put(tclient, [TrackerCode.REQUEST, "abc", "", 1]) diff --git a/tests/python/contrib/test_tflite_runtime.py b/tests/python/contrib/test_tflite_runtime.py index 222dcd469401..f3369ac428f6 100644 --- a/tests/python/contrib/test_tflite_runtime.py +++ b/tests/python/contrib/test_tflite_runtime.py @@ -128,7 +128,7 @@ def test_remote(): tflite_output = interpreter.get_tensor(output_details[0]["index"]) # inference via remote tvm tflite runtime - server = rpc.Server("localhost") + server = rpc.Server("127.0.0.1") remote = rpc.connect(server.host, server.port) a = remote.upload(tflite_model_path) diff --git a/tests/python/unittest/test_runtime_graph.py b/tests/python/unittest/test_runtime_graph.py index 5f0c7837d4f5..aac7e497f38f 100644 --- a/tests/python/unittest/test_runtime_graph.py +++ b/tests/python/unittest/test_runtime_graph.py @@ -67,7 +67,7 @@ def check_verify(): def check_remote(): mlib = tvm.build(s, [A, B], "llvm", name="myadd") - server = rpc.Server("localhost") + server = rpc.Server("127.0.0.1") remote = rpc.connect(server.host, server.port) temp = utils.tempdir() dev = remote.cpu(0) diff --git a/tests/python/unittest/test_runtime_graph_debug.py b/tests/python/unittest/test_runtime_graph_debug.py index 6cab75d9b9fc..b7df33c2a66e 100644 --- a/tests/python/unittest/test_runtime_graph_debug.py +++ b/tests/python/unittest/test_runtime_graph_debug.py @@ -162,7 +162,7 @@ def split_debug_line(i): def check_remote(): mlib = tvm.build(s, [A, B], "llvm", name="myadd") - server = rpc.Server("localhost") + server = rpc.Server("127.0.0.1") remote = rpc.connect(server.host, server.port) temp = utils.tempdir() dev = remote.cpu(0) diff --git a/tests/python/unittest/test_runtime_module_based_interface.py b/tests/python/unittest/test_runtime_module_based_interface.py index 9658ce1b2c1e..9e396a1e923b 100644 --- a/tests/python/unittest/test_runtime_module_based_interface.py +++ b/tests/python/unittest/test_runtime_module_based_interface.py @@ -262,7 +262,7 @@ def verify_rpc_gpu_export(obj_format): from tvm import rpc - server = rpc.Server("localhost", port=9094) + server = rpc.Server("127.0.0.1", use_popen=True, port=9094) remote = rpc.connect(server.host, server.port) remote.upload(path_lib) loaded_lib = remote.load_module(path_lib) diff --git a/web/tests/python/webgpu_rpc_test.py b/web/tests/python/webgpu_rpc_test.py index 80e358b56498..e26937038fa2 100644 --- a/web/tests/python/webgpu_rpc_test.py +++ b/web/tests/python/webgpu_rpc_test.py @@ -26,7 +26,7 @@ from tvm.contrib import utils, emcc import numpy as np -proxy_host = "localhost" +proxy_host = "127.0.0.1" proxy_port = 9090 diff --git a/web/tests/python/websock_rpc_test.py b/web/tests/python/websock_rpc_test.py index 9c1876a182e3..84a0c9f134d5 100644 --- a/web/tests/python/websock_rpc_test.py +++ b/web/tests/python/websock_rpc_test.py @@ -26,7 +26,7 @@ from tvm.contrib import utils, emcc import numpy as np -proxy_host = "localhost" +proxy_host = "127.0.0.1" proxy_port = 9090 From 4d941b7c7d77760778056674b6ce12e9f3c362c8 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Thu, 8 Apr 2021 12:40:52 -0700 Subject: [PATCH 10/22] Fix unit test for windows --- src/support/ffi_testing.cc | 19 +++++++++++++++++++ tests/python/unittest/test_runtime_rpc.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/support/ffi_testing.cc b/src/support/ffi_testing.cc index bac888a81aea..4943f3b80443 100644 --- a/src/support/ffi_testing.cc +++ b/src/support/ffi_testing.cc @@ -81,6 +81,25 @@ TVM_REGISTER_GLOBAL("testing.device_test").set_body([](TVMArgs args, TVMRetValue *ret = dev; }); +TVM_REGISTER_GLOBAL("rpc.test.addone").set_body([](TVMArgs args, TVMRetValue* ret) { + int x = args[0]; + *ret = x + 1; +}); + +TVM_REGISTER_GLOBAL("rpc.test.strcat").set_body([](TVMArgs args, TVMRetValue* ret) { + std::stringstream ss; + std::string s1 = args[0]; + int i1 = args[1]; + ss << s1 << ":" << i1; + std::string str = ss.str(); + *ret = str; +}); + +TVM_REGISTER_GLOBAL("rpc.test.except").set_body([](TVMArgs args, TVMRetValue* ret) { + std::string name = args[0]; + throw tvm::Error(name); +}); + // in src/api_test.cc void ErrorTest(int x, int y) { // raise ValueError diff --git a/tests/python/unittest/test_runtime_rpc.py b/tests/python/unittest/test_runtime_rpc.py index 0a9d5ae29ba1..0a60a368bbeb 100644 --- a/tests/python/unittest/test_runtime_rpc.py +++ b/tests/python/unittest/test_runtime_rpc.py @@ -93,7 +93,7 @@ def test_rpc_simple(): assert f1(10) == 11 f3 = client.get_function("rpc.test.except") - with pytest.raises(tvm.error.RPCError): + with pytest.raises(tvm._ffi.base.TVMError): f3("abc") f2 = client.get_function("rpc.test.strcat") From ec7b8228bc1439cb41cb127683e462d945547876 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Tue, 13 Apr 2021 14:46:25 -0700 Subject: [PATCH 11/22] Change RPCError a RuntimeError to a TVMError --- python/tvm/error.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/tvm/error.py b/python/tvm/error.py index 5502fe8e071e..9755270ec3ba 100644 --- a/python/tvm/error.py +++ b/python/tvm/error.py @@ -63,7 +63,7 @@ def __init__(self, msg): @register_error -class RPCError(RuntimeError): +class RPCError(TVMError): """Error thrown by the remote server handling the RPC call.""" From 1369c9f5301fe9e079f645b8ca69a915d18614e5 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 14 Apr 2021 09:59:38 -0700 Subject: [PATCH 12/22] Use errno symbols that work on linux and windows --- python/tvm/rpc/server.py | 1 + python/tvm/rpc/tracker.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index 7da48da5a450..c89d5d52c6f5 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -35,6 +35,7 @@ import multiprocessing import time import tvm._ffi +import errno from tvm._ffi.base import py_str from tvm._ffi.libinfo import find_lib_path diff --git a/python/tvm/rpc/tracker.py b/python/tvm/rpc/tracker.py index 8e05edcacfc3..9dc4139f97ca 100644 --- a/python/tvm/rpc/tracker.py +++ b/python/tvm/rpc/tracker.py @@ -399,7 +399,7 @@ def __init__(self, host="0.0.0.0", port=9190, port_end=9199, silent=False): self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48, 10098, 10048]: + if sock_err.errno in [errno.EADDRINUSE]: continue raise sock_err if not self.port: From ff7637bd8fe7cb157a1568ae41860f2bae2c0bb8 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 14 Apr 2021 10:04:28 -0700 Subject: [PATCH 13/22] Use errno symbols that work on linux and windows --- python/tvm/rpc/proxy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/tvm/rpc/proxy.py b/python/tvm/rpc/proxy.py index 748e143efb54..e5ec73db51b9 100644 --- a/python/tvm/rpc/proxy.py +++ b/python/tvm/rpc/proxy.py @@ -512,7 +512,7 @@ def __init__( self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48, 10098, 10048]: + if sock_err.errno in [errno.EADDRINUSE]: continue raise sock_err if not self.port: From 2b031267057b1e059e34ccec982bbea0933bc908 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 14 Apr 2021 10:11:32 -0700 Subject: [PATCH 14/22] Address review comments --- src/support/socket.h | 4 ++-- tests/python/unittest/test_runtime_rpc.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/support/socket.h b/src/support/socket.h index 1dca0076fe93..11060ae8aae1 100644 --- a/src/support/socket.h +++ b/src/support/socket.h @@ -85,7 +85,7 @@ inline std::string GetHostName() { * \return result of operation. */ inline bool ValidateIP(std::string ip) { - if (ip == "127.0.0.1") { + if (ip == "localhost") { return true; } struct sockaddr_in sa_ipv4; @@ -118,7 +118,7 @@ struct SockAddr { std::string host = url.substr(2, sep - 3); std::string port = url.substr(sep + 1, url.length() - 1); ICHECK(ValidateIP(host)) << "Url address is not valid " << url; - if (host == "127.0.0.1") { + if (host == "localhost") { host = "127.0.0.1"; } this->Set(host.c_str(), std::stoi(port)); diff --git a/tests/python/unittest/test_runtime_rpc.py b/tests/python/unittest/test_runtime_rpc.py index 0a60a368bbeb..1c07fea62dda 100644 --- a/tests/python/unittest/test_runtime_rpc.py +++ b/tests/python/unittest/test_runtime_rpc.py @@ -45,6 +45,7 @@ # run individual functions. Somewhere along the way, the imports are being # lost, so the server ends up not registering the functions. pytestmark = pytest.mark.skipif( + # Windows does not support fork so we can enable Windows for testing sys.platform.startswith("win") == False and multiprocessing.get_start_method() != "fork", reason=( "pytest + multiprocessing spawn method causes tvm.register_func to " From 0a4ed6eeddc16bf3faff2ac8dadca073844c0f3d Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 14 Apr 2021 11:36:48 -0700 Subject: [PATCH 15/22] fix lint error --- python/tvm/rpc/server.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index c89d5d52c6f5..73c8694167a2 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -36,6 +36,7 @@ import time import tvm._ffi import errno +import tvm._ffi from tvm._ffi.base import py_str from tvm._ffi.libinfo import find_lib_path From bed5f6de6b7fc7dadddce1cf954ce2dbc28868b2 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 26 Apr 2021 09:48:14 -0700 Subject: [PATCH 16/22] Fix merge errors --- python/tvm/rpc/server.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/tvm/rpc/server.py b/python/tvm/rpc/server.py index 73c8694167a2..bfde74febcb5 100644 --- a/python/tvm/rpc/server.py +++ b/python/tvm/rpc/server.py @@ -34,7 +34,6 @@ import threading import multiprocessing import time -import tvm._ffi import errno import tvm._ffi @@ -335,7 +334,7 @@ def __init__( self.port = my_port break except socket.error as sock_err: - if sock_err.errno in [98, 48]: + if sock_err.errno in [errno.EADDRINUSE]: continue raise sock_err if not self.port: From 725009b81b173a3e4afb3d32fb93d19891587716 Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 26 Apr 2021 10:25:49 -0700 Subject: [PATCH 17/22] Remove redundant register --- src/support/ffi_testing.cc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/support/ffi_testing.cc b/src/support/ffi_testing.cc index 4943f3b80443..51b982220ad6 100644 --- a/src/support/ffi_testing.cc +++ b/src/support/ffi_testing.cc @@ -81,11 +81,6 @@ TVM_REGISTER_GLOBAL("testing.device_test").set_body([](TVMArgs args, TVMRetValue *ret = dev; }); -TVM_REGISTER_GLOBAL("rpc.test.addone").set_body([](TVMArgs args, TVMRetValue* ret) { - int x = args[0]; - *ret = x + 1; -}); - TVM_REGISTER_GLOBAL("rpc.test.strcat").set_body([](TVMArgs args, TVMRetValue* ret) { std::stringstream ss; std::string s1 = args[0]; From 812159f700ffa91af4ee7d69a4cdd55ec488db2a Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Mon, 26 Apr 2021 10:53:40 -0700 Subject: [PATCH 18/22] Remove redundant register --- src/support/ffi_testing.cc | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/support/ffi_testing.cc b/src/support/ffi_testing.cc index 51b982220ad6..bac888a81aea 100644 --- a/src/support/ffi_testing.cc +++ b/src/support/ffi_testing.cc @@ -81,20 +81,6 @@ TVM_REGISTER_GLOBAL("testing.device_test").set_body([](TVMArgs args, TVMRetValue *ret = dev; }); -TVM_REGISTER_GLOBAL("rpc.test.strcat").set_body([](TVMArgs args, TVMRetValue* ret) { - std::stringstream ss; - std::string s1 = args[0]; - int i1 = args[1]; - ss << s1 << ":" << i1; - std::string str = ss.str(); - *ret = str; -}); - -TVM_REGISTER_GLOBAL("rpc.test.except").set_body([](TVMArgs args, TVMRetValue* ret) { - std::string name = args[0]; - throw tvm::Error(name); -}); - // in src/api_test.cc void ErrorTest(int x, int y) { // raise ValueError From 7563b0280374fede7f9a8a86a6b1fb00ef82d0fd Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Tue, 27 Apr 2021 13:35:26 -0700 Subject: [PATCH 19/22] Fix broken test --- tests/python/unittest/test_runtime_rpc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python/unittest/test_runtime_rpc.py b/tests/python/unittest/test_runtime_rpc.py index 1c07fea62dda..1fb8446a1d4b 100644 --- a/tests/python/unittest/test_runtime_rpc.py +++ b/tests/python/unittest/test_runtime_rpc.py @@ -321,7 +321,7 @@ def check_remote_link_cl(remote): def test_rpc_return_func(): server = rpc.Server(key="x1") client = rpc.connect("127.0.0.1", server.port, key="x1") - f1 = client.get_function("rpc.test.remote_func") + f1 = client.get_function("rpc.test.add_to_lhs") fadd = f1(10) assert fadd(12) == 22 From 5bc819b12d2975fdee0d1d41cd187497c88a120d Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 28 Apr 2021 09:14:32 -0700 Subject: [PATCH 20/22] Fix CI failure --- tests/python/unittest/test_runtime_module_based_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/python/unittest/test_runtime_module_based_interface.py b/tests/python/unittest/test_runtime_module_based_interface.py index 9e396a1e923b..f6e1f5eaf230 100644 --- a/tests/python/unittest/test_runtime_module_based_interface.py +++ b/tests/python/unittest/test_runtime_module_based_interface.py @@ -262,7 +262,7 @@ def verify_rpc_gpu_export(obj_format): from tvm import rpc - server = rpc.Server("127.0.0.1", use_popen=True, port=9094) + server = rpc.Server("127.0.0.1", port=9094) remote = rpc.connect(server.host, server.port) remote.upload(path_lib) loaded_lib = remote.load_module(path_lib) From 0804917d130f067e0ba8bdfbf223f975d82cbb9a Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Wed, 28 Apr 2021 13:28:08 -0700 Subject: [PATCH 21/22] empty From e890622bdad397e15e8d2a9e62c9ff22b2bbfeee Mon Sep 17 00:00:00 2001 From: Robert Kimball Date: Thu, 29 Apr 2021 08:36:42 -0700 Subject: [PATCH 22/22] empty