code: def depthwise_conv2d_nhwc_dsp_schedule(_cfg, outs):
      """Schedule function for v7e-m DSP instructions of conv2d."""
      schedule = te.create_schedule([x.op for x in outs])
  
      def _callback(operator):
          if "depthwise_conv2d_nhwc" not in operator.tag:
              return
  
          # extract tensors
          output = operator.output(0)
          padded_data = output.op.input_tensors[0]
          reshaped_kernel = output.op.input_tensors[1]
          in_dtype = padded_data.dtype
  
          _, padded_h, padded_w, channels = padded_data.shape
          _, kernel_h, kernel_w, _ = reshaped_kernel.shape
          suffix = "".join(random.choices(string.ascii_uppercase, k=8))
  
          b_ax, y_ax, x_ax, c_ax = schedule[output].op.axis
          ky_ax, kx_ax = schedule[output].op.reduce_axis
          simd_lanes = num_simd_lanes_per_word(in_dtype)
          c_ax_o, c_ax_i = schedule[output].split(
              c_ax, factor=simd_lanes
          )
          schedule[output].reorder(
              b_ax, c_ax_o, y_ax, x_ax, ky_ax, kx_ax, c_ax_i
          )
  
          multi_channel_convolve = intrin_multi_channel_convolve(
              in_dtype,
              padded_h,
              padded_w,
              channels,
              kernel_h,
              kernel_w,
              suffix,
          )
          schedule[output].tensorize(ky_ax, multi_channel_convolve)
          schedule[output].pragma(
              b_ax,
              "import_c",
              multi_channel_convolve_impl(
                  in_dtype,
                  padded_h,
                  padded_w,
                  channels,
                  kernel_h,
                  kernel_w,
                  suffix,
              ),
          )
  
      traverse_inline(schedule, outs[-1].op, _callback)
      return schedule
  
file_path: tvm/python/tvm/topi/arm_cpu/mprofile/dsp/depthwise_conv2d.py
imports: import random
  import string
  from tvm import te, topi
  from tvm.topi.utils import traverse_inline
  from tvm.topi.nn.pad import pad
  from .micro_kernel.multi_channel_convolve import intrin_multi_channel_convolve, multi_channel_convolve_impl
  from .micro_kernel.common import num_simd_lanes_per_word
label_desc: Use image node_id 2 for calling a global function with example usage: depthwise_conv2d_nhwc_dsp_schedule(_cfg, outs) and returns: schedule