code: def dense_dsp_compute(cfg, data, weight, bias=None, out_dtype=None):
      """Defines the v7e-m DSP instructions of dense."""
      M, K = get_const_tuple(data.shape)
      N, _ = get_const_tuple(weight.shape)
  
      cfg.define_split("tile_x", M, policy="factors", num_outputs=2)
      cfg.define_split("tile_y", N, policy="factors", num_outputs=2)
      cfg.define_split("tile_k", K, policy="factors", num_outputs=2)
  
      k = te.reduce_axis((0, K), "k")
      C = te.compute(
          (M, N),
          lambda x, y: te.sum(
              data[x, k].astype(out_dtype)
              * weight[y, k].astype(out_dtype),
              axis=k,
          ),
          name="dense",
          tag="dense_dsp",
      )
  
      if bias is not None:
          C = te.compute(
              (M, N),
              lambda i, j: C[i, j] + bias[j].astype(out_dtype),
              tag=tag.BROADCAST,
          )
      return C
  
imports: from tvm import te
  from tvm.topi.utils import traverse_inline, get_const_tuple
  from .micro_kernel.gemm import intrin_gemm_MxKxN, gemm_MxKxN_impl
  from ....None import tag
label_desc: Use image node_id 1 for calling a global function with example usage: dense_dsp_compute(cfg, data, weight, bias, out_dtype) and returns: C