code: def sparse_conv2d_strategy_cpu(attrs, inputs, out_type, target):
      """sparse conv2d x86 strategy"""
      strategy = _op.OpStrategy()
      if attrs["kernel_size"][0] == 1:
          strategy.add_implementation(
              wrap_compute_sparse_conv2d(topi.nn.sparse_conv2d),
              wrap_topi_schedule(topi.generic.schedule_sparse_conv2d),
              name="sparse_conv2d.generic",
          )
      elif attrs["kernel_size"][0] == 3:
          if attrs["layout"] == "NHWC":
              strategy.add_implementation(
                  wrap_compute_sparse_conv2d(
                      topi.x86.spconv2d_3x3_nhwc
                  ),
                  wrap_topi_schedule(
                      topi.x86.schedule_spconv2d_3x3_nhwc
                  ),
                  name="conv3x3_spNHWC.x86",
              )
          elif attrs["layout"] == "NCHW":
              strategy.add_implementation(
                  wrap_compute_sparse_conv2d(
                      topi.x86.spconv2d_3x3_nchw
                  ),
                  wrap_topi_schedule(
                      topi.x86.schedule_spconv2d_3x3_nchw
                  ),
              )
      return strategy
  
imports: import logging
  import re
  from tvm import tir, topi
  from tvm.auto_scheduler import is_auto_scheduler_enabled
  from tvm.meta_schedule import is_meta_schedule_enabled
  from tvm.relay.ty import is_dynamic
  from tvm.te import SpecializedCondition
  from ..None import op
  from .generic import *
label_desc: Use image node_id 20 for calling a global function with example usage: sparse_conv2d_strategy_cpu(attrs, inputs, out_type, target) and returns: strategy