docs: public static int cudnnGetCTCLossWorkspaceSize(
          cudnnHandle handle, 
          cudnnTensorDescriptor probsDesc, /** Tensor descriptor for probabilities, the dimensions are T,N,A (T is the
                                                  timing steps, N is the mini batch size, A is the alphabet size) */
          cudnnTensorDescriptor gradientsDesc, /** Tensor descriptor for gradients, the
                                                      dimensions are T,N,A. To compute costs
                                                      only, set it to NULL */
          int[] labels, /** labels, in CPU memory */
          int[] labelLengths, /** the length of each label, in CPU memory */
          int[] inputLengths, /** the lengths of timing steps in each batch, in CPU memory */
          int algo, /** algorithm selected, supported now 0 and 1 */
          cudnnCTCLossDescriptor ctcLossDesc, 
          long[] sizeInBytes)/** pointer to the returned workspace size */
      {
          return checkResult(cudnnGetCTCLossWorkspaceSizeNative(handle, probsDesc, gradientsDesc, labels, labelLengths, inputLengths, algo, ctcLossDesc, sizeInBytes));
      }