code: def test_time_evalutor_with_preproc(f_preproc: str):
      mod = tvm.IRModule.from_expr(
          matmul.with_attr("global_symbol", "main")
      )
      sch = tvm.tir.Schedule(mod)
      blk = sch.get_block("matmul")
      i, j, k = sch.get_loops(blk)
      sch.bind(i, "blockIdx.x")
      sch.bind(j, "threadIdx.x")
      f = tvm.build(sch.mod["main"], target="cuda")
      dev = tvm.cuda(0)
      evaluator = f.time_evaluator(
          f.entry_name, dev, repeat=1000, number=1, f_preproc=f_preproc
      )
  
      a = tvm.nd.array(
          np.random.rand(128, 128).astype("float32"), device=dev
      )
      b = tvm.nd.array(
          np.random.rand(128, 128).astype("float32"), device=dev
      )
      c = tvm.nd.array(
          np.zeros((128, 128)).astype("float32"), device=dev
      )
      args = [a, b, c]
      print(
          "Evaluator (f_preproc={}):\t{:.5f}ms".format(
              f_preproc, evaluator(*args).mean * 1000
          )
      )
  
file_path: tvm/tests/python/runtime/test_evaluator_with_preproc.py
imports: import tvm
  from tvm import te
  from tvm.script import tir
  import tvm.testing
  import numpy
  import pytest
label_desc: Use image node_id 2 for calling a global function with example usage: test_time_evalutor_with_preproc(f_preproc) without return types