code: def correlate2d(in1, in2, mode="full", boundary="fill", fillvalue=0):
      """Cross-correlate two 2-dimensional arrays.
  
      Cross correlate ``in1`` and ``in2`` with output size determined by
      ``mode``, and boundary conditions determined by ``boundary`` and
      ``fillvalue``.
  
      Args:
          in1 (cupy.ndarray): First input.
          in2 (cupy.ndarray): Second input. Should have the same number of
              dimensions as ``in1``.
          mode (str): Indicates the size of the output:
  
              - ``'full'``: output is the full discrete linear convolution \
                  (default)
              - ``'valid'``: output consists only of those elements that do \
                  not rely on the zero-padding. Either ``in1`` or ``in2`` must \
                  be at least as large as the other in every dimension.
              - ``'same'``: - output is the same size as ``in1``, centered with \
                  respect to the ``'full'`` output
  
          boundary (str): Indicates how to handle boundaries:
  
              - ``fill``: pad input arrays with fillvalue (default)
              - ``wrap``: circular boundary conditions
              - ``symm``: symmetrical boundary conditions
  
          fillvalue (scalar): Value to fill pad input arrays with. Default is 0.
  
      Returns:
          cupy.ndarray: A 2-dimensional array containing a subset of the discrete
          linear cross-correlation of ``in1`` with ``in2``.
  
      Note:
          When using ``"same"`` mode with even-length inputs, the outputs of
          ``correlate`` and ``correlate2d`` differ: There is a 1-index offset
          between them.
  
      .. seealso:: :func:`cupyx.scipy.signal.correlate`
      .. seealso:: :func:`cupyx.scipy.signal.convolve2d`
      .. seealso:: :func:`cupyx.scipy.ndimage.correlate`
      .. seealso:: :func:`scipy.signal.correlate2d`
      """
      return _correlate2d(in1, in2, mode, boundary, fillvalue, False)
  
imports: import warnings
  import cupy
  from cupy._core import internal
  from cupy.linalg import lstsq
  import cupyx.scipy.fft
  from cupyx.scipy.ndimage import _util
  from cupyx.scipy.ndimage import _filters
  from cupyx.scipy.signal import _signaltools_core
  from cupyx.scipy.signal._arraytools import const_ext, even_ext, odd_ext, axis_reverse, axis_slice, axis_assign
  from cupyx.scipy.signal._iir_utils import apply_iir, apply_iir_sos, compute_correction_factors, compute_correction_factors_sos
label_desc: Use image node_id 8 for calling a global function with example usage: correlate2d(in1, in2, mode, boundary, fillvalue) and returns: _correlate2d