code: def _pack_data(cfg, data, kernel):
      n, _, ih, iw = get_const_tuple(data.shape)
      oc, ic, kh, kw = get_const_tuple(kernel.shape)
      ic_bn, oc_bn = cfg["tile_ic"].size[-1], cfg["tile_oc"].size[-1]
  
      ic_chunk = ic // ic_bn
      oc_chunk = oc // oc_bn
  
      # Handle dynamic shape to pass tuning dispatch.
      if isinstance(n, tvm.tir.Any):
          n = tvm.te.size_var("n")
      if isinstance(ih, tvm.tir.Any):
          ih = tvm.te.size_var("ih")
      if isinstance(iw, tvm.tir.Any):
          iw = tvm.te.size_var("iw")
      if isinstance(ic, tvm.tir.Any):
          raise RuntimeError(
              "Dynamic input channel is not supported for conv2d."
          )
  
      data = te.compute(
          (n, ic_chunk, ih, iw, ic_bn),
          lambda bs, c, h, w, vc: data[bs, c * ic_bn + vc, h, w],
          name="data_vec",
      )
  
      kernel = te.compute(
          (oc_chunk, ic_chunk, kh, kw, ic_bn, oc_bn),
          lambda occ, icc, k_h, k_w, icb, ocb: kernel[
              occ * oc_bn + ocb, icc * ic_bn + icb, k_h, k_w
          ],
          name="kernel_vec",
      )
  
      return data, kernel
  
imports: import logging
  import tvm
  from tvm import te
  from tvm import autotvm
  from tvm.contrib import dnnl
  from ..None import nn
  from ..generic import schedule_extern
  from ..nn.conv2d import conv2d_infer_layout, _get_workload
  from ..nn.conv2d import unpack_NCHWc_to_nchw
  from ..nn.depthwise_conv2d import _get_workload
  from ..nn.utils import get_pad_tuple
  from ..utils import get_const_tuple, traverse_inline
  from .None import conv2d_avx_1x1, conv2d_avx_common
label_desc: Use image node_id 6 for calling a global function with example usage: _pack_data(cfg, data, kernel) and returns: data,  kernel