code: def conv2d_winograd_without_weight_transform_strategy_cuda(
      attrs, inputs, out_type, target
  ):
      """conv2d_winograd_without_weight_transform cuda strategy"""
      dilation = attrs.get_int_tuple("dilation")
      groups = attrs.get_int("groups")
      layout = attrs.data_layout
      data, kernel = inputs
      stride_h, stride_w = attrs.get_int_tuple("strides")
      padding = attrs.get_int_tuple("padding")
      assert dilation == (1, 1), "Do not support dilate now"
      assert groups == 1, "Do not support arbitrary group number"
      strategy = _op.OpStrategy()
      if layout == "NCHW":
          if is_meta_schedule_enabled():
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.nn.conv2d_winograd_nchw_without_weight_transform
                  ),
                  naive_schedule,  # this implementation should never be picked by autotvm
                  name="conv2d_nchw_winograd_without_weight_transform",
                  plevel=15,
              )
          else:
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.cuda.conv2d_nchw_winograd_without_weight_transform
                  ),
                  wrap_topi_schedule(
                      topi.cuda.schedule_conv2d_nchw_winograd_without_weight_transform
                  ),
                  name="conv2d_nchw_winograd_without_weight_transform.cuda",
              )
      elif layout == "NHWC":
          N, H, W, _ = get_const_tuple(data.shape)
          alpha, _, CI, CO = get_const_tuple(kernel.shape)
          dilation_h, dilation_w = dilation
          judge_winograd_tensorcore, _, _ = judge_winograd(
              N,
              H,
              W,
              alpha,
              alpha,
              CI,
              CO,
              padding,
              stride_h,
              stride_w,
              dilation_h,
              dilation_w,
              data.dtype,
              kernel.dtype,
              pre_flag=True,
          )
          if (
              target.kind.name == "cuda"
              and nvcc.have_tensorcore(target=target)
              and judge_winograd_tensorcore
          ):
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.cuda.conv2d_nhwc_winograd_tensorcore_without_weight_transform
                  ),
                  wrap_topi_schedule(
                      topi.cuda.schedule_conv2d_nhwc_winograd_tensorcore_without_weight_transform
                  ),
                  name="conv2d_nhwc_winograd_tensorcore_without_weight_transform.cuda",
              )
          else:
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.cuda.conv2d_nhwc_winograd_direct_without_weight_transform
                  ),
                  wrap_topi_schedule(
                      topi.cuda.schedule_conv2d_nhwc_winograd_direct_without_weight_transform
                  ),
                  name="conv2d_nhwc_winograd_direct_without_weight_transform.cuda",
              )
  
          if is_auto_scheduler_enabled():
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.nn.conv2d_winograd_nhwc_without_weight_transform
                  ),
                  naive_schedule,  # this implementation should never be picked by autotvm
                  name="conv2d_nhwc_winograd_without_weight_transform",
                  plevel=15,
              )
          if is_meta_schedule_enabled():
              strategy.add_implementation(
                  wrap_compute_conv2d(
                      topi.nn.conv2d_winograd_nhwc_without_weight_transform
                  ),
                  naive_schedule,  # this implementation should never be picked by autotvm
                  name="conv2d_nhwc_winograd_without_weight_transform",
                  plevel=15,
              )
      else:
          raise RuntimeError(
              f"Unsupported conv2d_winograd_without_weight_transform layout {layout}"
          )
      return strategy
  
imports: from tvm import topi
  from tvm.auto_scheduler import is_auto_scheduler_enabled
  from tvm.contrib import nvcc
  from tvm.contrib.thrust import can_use_thrust
  from tvm.meta_schedule import is_meta_schedule_enabled
  from tvm.te import SpecializedCondition
  from ....target import Target
  from ....tir import IntImm
  from ..None import op
  from .generic import *
label_desc: Use image node_id 13 for calling a global function with example usage: conv2d_winograd_without_weight_transform_strategy_cuda(attrs, inputs, out_type, target) and returns: strategy