code: def conv2d_winograd_nhwc_cuda(
      data,
      weight,
      strides,
      padding,
      dilation,
      out_dtype,
      pre_computed=False,
      auto_scheduler_rewritten_layout="",
      meta_schedule_original_shape=None,
  ):
      """Conv2D Winograd in NHWC layout.
      This is a clean version to be used by the auto-scheduler for both CPU and GPU.
      """
      tile_size = _infer_tile_size(data, weight, layout="NHWC")
      return _conv2d_winograd_nhwc_impl(
          data,
          weight,
          strides,
          padding,
          dilation,
          out_dtype,
          tile_size,
          pre_computed,
      )
  
file_path: tvm/python/tvm/topi/cuda/conv2d_winograd.py
imports: import logging
  import tvm
  from tvm import autotvm, te
  from ..None import nn
  from ..nn.conv2d import _conv2d_winograd_nchw_impl, _conv2d_winograd_nhwc_impl, conv2d_winograd_nchw, conv2d_winograd_nhwc
  from ..nn.winograd_util import winograd_transform_matrices
  from ..utils import get_const_int, get_const_tuple, traverse_inline
label_desc: Use image node_id 8 for calling a global function with example usage: conv2d_winograd_nhwc_cuda(data, weight, strides, padding, dilation, out_dtype, pre_computed, auto_scheduler_rewritten_layout, meta_schedule_original_shape) and returns: _conv2d_winograd_nhwc_impl