code: def run_with_graph_executor(
      rt_mod: "Module",
      device: "Device",
      evaluator_config: "EvaluatorConfig",
      repeated_args: List["NDArray"],
  ) -> List[float]:
      """Run a Relay module with GraphExecutor
  
      Parameters
      ----------
      rt_mod : Module
          The Relay module to run.
      device : Device
          The device to run the module on.
      evaluator_config : EvaluatorConfig
          The evaluator configuration to run the module with.
      repeated_args : List[NDArray]
          The list of repeated arguments to run the module with.
  
      Returns
      -------
      results : List[float]
          The list of results.
      """
      import itertools
  
      from tvm.contrib.graph_executor import GraphModule
  
      graph_mod = GraphModule(rt_mod["default"](device))
      evaluator = graph_mod.module.time_evaluator(
          func_name="run",
          dev=device,
          number=evaluator_config.number,
          repeat=evaluator_config.repeat,
          min_repeat_ms=evaluator_config.min_repeat_ms,
          f_preproc="cache_flush_cpu_non_first_arg"
          if evaluator_config.enable_cpu_cache_flush
          else "",
      )
      repeated_costs = []
      for args in repeated_args:
          profile_result = evaluator(*args)
          repeated_costs.append(profile_result.results)
      costs = [
          float(cost)
          for cost in itertools.chain.from_iterable(repeated_costs)
      ]
      return costs
  
imports: from typing import TYPE_CHECKING, Dict, List, Optional, Union, Callable
label_desc: Use image node_id 3 for calling a global function with example usage: run_with_graph_executor(rt_mod, device, evaluator_config, repeated_args) and returns: costs