code: def _parse_args():
      args = argparse.ArgumentParser()
      args.add_argument(
          "--workload",
          type=str,
          required=True,
          help="The name of the workload to tune. Supported models: "
          "https://github.com/apache/tvm/blob/main/python/tvm/meta_schedule/testing/relay_workload.py#L303-L322",  # pylint: disable=line-too-long
      )
      args.add_argument(
          "--input-shape",
          type=str,
          required=True,
          help="The input shape of the workload. Example: '[1, 3, 224, 224]'",
      )
      args.add_argument(
          "--target",
          type=str,
          required=True,
          help="The target device to tune. "
          "Example: 'aws/cpu/c5.9xlarge', 'nvidia/nvidia-v100', 'nvidia/geforce-rtx-3090'",
      )
      args.add_argument(
          "--num-trials",
          type=int,
          required=True,
          help="The number of trials per kernel. Example: 800",
      )
      args.add_argument(
          "--rpc-host",
          type=str,
          required=True,
          help="The host address of the RPC tracker. Example: 192.168.6.66",
      )
      args.add_argument(
          "--rpc-port",
          type=int,
          required=True,
          help="The port of the RPC tracker. Example: 4445",
      )
      args.add_argument(
          "--rpc-key",
          type=str,
          required=True,
          help="The key of the RPC tracker. Example: '3090ti'",
      )
      args.add_argument(
          "--work-dir",
          type=str,
          required=True,
          help="The working directory to store the tuning logs. Example: '/tmp/tune_relay'",
      )
      args.add_argument(
          "--layout",
          type=str,
          default=None,
          help="The layout of the workload. Example: 'NCHW', 'NHWC'",
      )
      args.add_argument("--cache-dir", type=str, default=None)
      args.add_argument("--number", type=int, default=3)
      args.add_argument("--repeat", type=int, default=1)
      args.add_argument("--min-repeat-ms", type=int, default=100)
      args.add_argument(
          "--cpu-flush",
          type=lambda x: bool(strtobool(x)),
          help="example: True / False",
          required=True,
      )
      args.add_argument(
          "--graph-tuner",
          type=lambda x: bool(strtobool(x)),
          help="example: True / False",
          required=True,
      )
      args.add_argument(
          "--backend",
          type=str,
          choices=["graph", "vm"],
          help="example: graph / vm",
          required=True,
      )
      parsed = args.parse_args()
      parsed.target = tvm.target.Target(parsed.target)
      parsed.input_shape = json.loads(parsed.input_shape)
      parsed.rpc_config = ms.runner.RPCConfig(
          tracker_host=parsed.rpc_host,
          tracker_port=parsed.rpc_port,
          tracker_key=parsed.rpc_key,
          session_timeout_sec=600,
      )
      return parsed
  
file_path: tvm/python/tvm/autotvm/testing/tune_relay.py
imports: import argparse
  import json
  import os
  import warnings
  from distutils.util import strtobool
  import tvm
  from tvm import autotvm
  from tvm import meta_schedule
  from tvm import relay
  from tvm.autotvm.graph_tuner import DPTuner
  from tvm.autotvm.tuner import XGBTuner
  from tvm.meta_schedule.testing.custom_builder_runner import run_module_via_rpc
  from tvm.meta_schedule.testing.relay_workload import get_network
  from tvm.meta_schedule.testing.tune_utils import create_timer, generate_input_data
  from tvm.support import describe
label_desc: Use image node_id 1 for calling a global function with example usage: _parse_args() and returns: parsed