code: def spconv2d_3x3_nchw(cfg, data, wdat, wind, wptr, layout="NCHW"):
      """Sparse Conv2d 3x3 compute (NCHW)."""
      nsamples, chanin, imgh, imgw = [i.value for i in data.shape]
      nelems, veclen, bsrc = [i.value for i in wdat.shape]
      chanout = (wptr.shape[0].value - 1) * veclen
      assert bsrc == 1 and layout == "NCHW"
  
      cfg.add_flop(
          nsamples
          * imgh
          * imgw
          * (nelems * veclen * bsrc * 2 - chanout)
      )
      cfg.define_split("tile_hw", imgh * imgw, num_outputs=3)
      cfg.define_split("tile_ckk", chanin * 9, num_outputs=3)
  
      @partial(
          te.compute,
          (nsamples, chanin * 3 * 3, imgh * imgw),
          name="im2col",
      )
      def im2col(nsamples, ckk, imglen):
          j_h, j_w = imglen // imgw, imglen % imgw
          i_c, k_h, k_w = ckk // 9, ckk // 3 % 3, ckk % 3
          i_h, i_w = j_h + k_h - 1, j_w + k_w - 1
          return tir.if_then_else(
              tir.all(i_h >= 0, i_h < imgh, i_w >= 0, i_w < imgw),
              data[nsamples, i_c, i_h, i_w],
              0,
          )
  
      @partial(
          te.compute,
          (nsamples, chanout // veclen, veclen, bsrc, imgh * imgw),
          name="CC",
          tag="conv3x3_spNCHW",
      )
      def matmul(nsamples, f_o, f_i, bsrk, imglen):
          row_start, row_end = wptr[f_o], wptr[f_o + 1]
          elem_idx = te.reduce_axis(
              (0, row_end - row_start), name="elem_idx"
          )
          elem = row_start + elem_idx
          return te.sum(
              im2col[nsamples, wind[elem] * bsrc + bsrk, imglen]
              * wdat[elem, f_i, bsrk],
              axis=elem_idx,
          )
  
      return reshape(matmul, [nsamples, chanout, imgh, imgw])
  
file_path: tvm/python/tvm/topi/x86/sparse.py
imports: from functools import partial, reduce
  from tvm import autotvm, te, tir
  from tvm.target.x86 import get_simd_32bit_lanes
  from ..transform import reshape
  from ..utils import get_const_int, traverse_inline
label_desc: Use image node_id 4 for calling a global function with example usage: spconv2d_3x3_nchw(cfg, data, wdat, wind, wptr, layout) and returns: reshape, tir, te