code: def test_tvm_dot():
      # benchmark
      for i in list(range(1000, 1100, 4)):
          m = i
          k = i
          n = i
          print("{} * {} X {} * {}".format(m, k, k, n))
          a = mx.nd.random.uniform(shape=(m, k), dtype="float32")
          b = mx.nd.random.uniform(shape=(k, n), dtype="float32")
          cost = measure_cost(2, mx.nd.contrib.tvm_dot, a, b)
          print("dispatch cost: {} ms".format(cost * 1000))
          a = mx.nd.random.uniform(shape=(m, k), dtype="float32")
          b = mx.nd.random.uniform(shape=(k, n), dtype="float32")
          cost = measure_cost(2, mx.nd.contrib.tvm_dot_fallback, a, b)
          print("fallback cost: {} ms".format(cost * 1000))
          a = mx.nd.random.uniform(shape=(m, k), dtype="float32")
          b = mx.nd.random.uniform(shape=(k, n), dtype="float32")
          cost = measure_cost(2, mx.nd.dot, a, b)
          print("dot cost: {} ms".format(cost * 1000))
  
imports: import time
  import mxnet
  import numpy
  from mxnet import np, npx
label_desc: Use image node_id 2 for calling a global function with example usage: test_tvm_dot() without return types