code: def evaluate(func, dev, N, times):
      a_np = np.random.uniform(size=(N, N)).astype(dtype)
      b_np = np.random.uniform(size=(N, N)).astype(dtype)
      a = tvm.nd.array(a_np, dev)
      b = tvm.nd.array(b_np, dev)
      c = tvm.nd.array(np.zeros((N, N), dtype=dtype), dev)
  
      time_f = func.time_evaluator(func.entry_name, dev, number=times)
      cost = time_f(a, b, c).mean
      gf = ngflops(N) / cost
      print("%g secs/op, %g GFLOPS" % (cost, gf))
      np.testing.assert_almost_equal(
          c.numpy(), a_np.dot(b_np), decimal=2
      )
  
file_path: tvm/apps/topi_recipe/gemm/android_gemm_square.py
imports: import tvm
  from tvm import te
  import os
  from tvm import rpc
  from tvm.contrib import utils, ndk
  import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: evaluate(func, dev, N, times) without return types