docs: def cudnnGetConvolution2dForwardOutputDim(convDesc, inputTensorDesc, wDesc):
      """"
      Return the dimensions of the output tensor given a convolution descriptor.
  
      This function returns the dimensions of the resulting 4D tensor of a 2D
      convolution, given the convolution descriptor, the input tensor descriptor and
      the filter descriptor. This function can help to setup the output tensor and allocate
      the proper amount of memory prior to launching the actual convolution.
  
      Parameters
      ----------
      convDesc : cudnnConvolutionDescriptor
          Handle to a previously created convolution descriptor.
      inputTensorDesc: cudnnTensorDescriptor
          Handle to a previously initialized tensor descriptor.
      wDesc: cudnnFilterDescriptor
          Handle to a previously initialized filter descriptor.
  
      Returns
      -------
      n : int
          Number of output images.
      c : int
          Number of output feature maps per image.
      h : int
          Height of each output feature map.
      w : int
          Width of each output feature map.
      """
      n = ctypes.c_int()
      c = ctypes.c_int()
      h = ctypes.c_int()
      w = ctypes.c_int()
  
      status = _libcudnn.cudnnGetConvolution2dForwardOutputDim(convDesc, inputTensorDesc,
                                                   wDesc, ctypes.byref(n),
                                                   ctypes.byref(c), ctypes.byref(h),
                                                   ctypes.byref(w))
      cudnnCheckStatus(status)
  
      return n.value, c.value, h.value, w.value