code: def test_graph_executor_remote_run(host, port):
      remote_session = rpc.connect(host, port)
      target = tvm.target.Target(
          target=f"llvm -mtriple={ARCH}-apple-darwin"
      )
      device = remote_session.cpu(0)
  
      size = 100
      a = np.random.uniform(size=size).astype(DTYPE)
      b = np.random.uniform(size=size).astype(DTYPE)
      mod, params = get_add_relay_module(a, b)
      with tvm.transform.PassContext(opt_level=3):
          lib = relay.build(
              mod, target=target, target_host=target, params=params
          )
  
      path_dso = export_lib(lib)
      remote_session.upload(path_dso)
      lib = remote_session.load_module(DSO_NAME)
  
      gen_module = graph_executor.GraphModule(lib["default"](device))
  
      # Check set input
      gen_module.set_input("a", tvm.nd.array(a))
      gen_module.set_input("b", tvm.nd.array(b))
      tvm.testing.assert_allclose(gen_module.get_input(0).numpy(), a)
      tvm.testing.assert_allclose(gen_module.get_input(1).numpy(), b)
  
      # Check run
      gen_module.run()
      out = gen_module.get_output(0)
      tvm.testing.assert_allclose(out.numpy(), a + b)
  
imports: import multiprocessing
  import pytest
  import numpy
  import tvm.testing
  import tvm.relay.testing
  from tvm import te
  from tvm import rpc
  from tvm import relay, auto_scheduler
  from tvm.contrib import utils, xcode, graph_executor
  from tvm.autotvm.measure import request_remote
  from tvm.auto_scheduler.measure_record import load_records
  from tvm.auto_scheduler.measure import MeasureErrorNo
  from tvm.auto_scheduler.utils import call_func_with_timeout
  from tvm.contrib.popen_pool import PopenWorker, StatusKind
  from tvm.rpc import tracker, proxy, server_ios_launcher
label_desc: Use image node_id 22 for calling a global function with example usage: test_graph_executor_remote_run(host, port) without return types