code: def _forward_cudnn(self, x, W, b, y, input_layouts):
      x_layout, w_layout = input_layouts
      self.output_layouts = (x_layout,)
      pad = (self.ph, self.pw)
      stride = (self.sy, self.sx)
      dilation = (self.dy, self.dx)
  
      auto_tune = configuration.config.autotune
      tensor_core = configuration.config.use_cudnn_tensor_core
      cudnn_x_layout = cuda._get_cudnn_tensor_layout_x(x_layout)
      cudnn_w_layout = cuda._get_cudnn_tensor_layout_w(w_layout)
      cuda.cudnn.convolution_forward(
          x,
          W,
          b,
          y,
          pad,
          stride,
          dilation,
          self.groups,
          auto_tune=auto_tune,
          tensor_core=tensor_core,
          d_layout=cudnn_x_layout,
          w_layout=cudnn_w_layout,
      )
  
      return (y,)
  
imports: import numpy
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import configuration
  from chainer import function_node
  import chainer.functions
  from chainer import memory_layouts
  from chainer.utils import argument
  from chainer.utils import conv
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 13 for calling the Convolution2DFunction obj's underlying member method code with example usage: obj._forward_cudnn(x, W, b, y, input_layouts) and returns: y