Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.bytedeco.javacpp.cudnn Maven / Gradle / Ivy
// Targeted by JavaCPP version 1.4.1: DO NOT EDIT THIS FILE
package org.bytedeco.javacpp;
import java.nio.*;
import org.bytedeco.javacpp.*;
import org.bytedeco.javacpp.annotation.*;
import static org.bytedeco.javacpp.cuda.*;
public class cudnn extends org.bytedeco.javacpp.presets.cudnn {
static { Loader.load(); }
// Parsed from
/*
* Copyright 1993-2015 NVIDIA Corporation. All rights reserved.
*
* NOTICE TO LICENSEE:
*
* This source code and/or documentation ("Licensed Deliverables") are
* subject to NVIDIA intellectual property rights under U.S. and
* international Copyright laws.
*
* These Licensed Deliverables contained herein is PROPRIETARY and
* CONFIDENTIAL to NVIDIA and is being provided under the terms and
* conditions of a form of NVIDIA software license agreement by and
* between NVIDIA and Licensee ("License Agreement") or electronically
* accepted by Licensee. Notwithstanding any terms or conditions to
* the contrary in the License Agreement, reproduction or disclosure
* of the Licensed Deliverables to any third party without the express
* written consent of NVIDIA is prohibited.
*
* NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
* LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
* SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
* PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
* NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
* DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
* NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
* NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
* LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
* SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
* DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THESE LICENSED DELIVERABLES.
*
* U.S. Government End Users. These Licensed Deliverables are a
* "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
* 1995), consisting of "commercial computer software" and "commercial
* computer software documentation" as such terms are used in 48
* C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
* only as a commercial end item. Consistent with 48 C.F.R.12.212 and
* 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
* U.S. Government End Users acquire the Licensed Deliverables with
* only those rights set forth herein.
*
* Any use of the Licensed Deliverables in individual and commercial
* software must include, in the user documentation and internal
* comments to the code, the above Disclaimer and U.S. Government End
* Users Notice.
*/
/* cudnn : Neural Networks Library
*/
// #if !defined(CUDNN_H_)
// #define CUDNN_H_
public static final int CUDNN_MAJOR = 7;
public static final int CUDNN_MINOR = 1;
public static final int CUDNN_PATCHLEVEL = 2;
public static final int CUDNN_VERSION = (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL);
// #include "driver_types.h"
// #include
// #ifndef CUDNNWINAPI
// #ifdef _WIN32
// #define CUDNNWINAPI __stdcall
// #else
// #define CUDNNWINAPI
// #endif
// #endif
// #if defined (__cplusplus)
// #endif
@Opaque public static class cudnnContext extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnContext() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnContext(Pointer p) { super(p); }
}
public static native @Cast("size_t") long cudnnGetVersion();
/* Returns CUDA Runtime version statically linked against cudnn */
public static native @Cast("size_t") long cudnnGetCudartVersion();
/*
* CUDNN return codes
*/
/** enum cudnnStatus_t */
public static final int
CUDNN_STATUS_SUCCESS = 0,
CUDNN_STATUS_NOT_INITIALIZED = 1,
CUDNN_STATUS_ALLOC_FAILED = 2,
CUDNN_STATUS_BAD_PARAM = 3,
CUDNN_STATUS_INTERNAL_ERROR = 4,
CUDNN_STATUS_INVALID_VALUE = 5,
CUDNN_STATUS_ARCH_MISMATCH = 6,
CUDNN_STATUS_MAPPING_ERROR = 7,
CUDNN_STATUS_EXECUTION_FAILED = 8,
CUDNN_STATUS_NOT_SUPPORTED = 9,
CUDNN_STATUS_LICENSE_ERROR = 10,
CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING = 11,
CUDNN_STATUS_RUNTIME_IN_PROGRESS = 12,
CUDNN_STATUS_RUNTIME_FP_OVERFLOW = 13;
/* human-readable error messages */
public static native @Cast("const char*") BytePointer cudnnGetErrorString(@Cast("cudnnStatus_t") int status);
/* Forward definition in this version only */
@Opaque public static class cudnnRuntimeTag_t extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnRuntimeTag_t() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnRuntimeTag_t(Pointer p) { super(p); }
}
/** enum cudnnErrQueryMode_t */
public static final int
CUDNN_ERRQUERY_RAWCODE = 0,
CUDNN_ERRQUERY_NONBLOCKING = 1,
CUDNN_ERRQUERY_BLOCKING = 2;
public static native @Cast("cudnnStatus_t") int cudnnQueryRuntimeError(
cudnnContext handle,
@Cast("cudnnStatus_t*") IntPointer rstatus,
@Cast("cudnnErrQueryMode_t") int mode,
cudnnRuntimeTag_t tag );
public static native @Cast("cudnnStatus_t") int cudnnQueryRuntimeError(
cudnnContext handle,
@Cast("cudnnStatus_t*") IntBuffer rstatus,
@Cast("cudnnErrQueryMode_t") int mode,
cudnnRuntimeTag_t tag );
public static native @Cast("cudnnStatus_t") int cudnnQueryRuntimeError(
cudnnContext handle,
@Cast("cudnnStatus_t*") int[] rstatus,
@Cast("cudnnErrQueryMode_t") int mode,
cudnnRuntimeTag_t tag );
// #ifndef __LIBRARY_TYPES_H__
/** enum libraryPropertyType_t */
public static final int
MAJOR_VERSION = 0,
MINOR_VERSION = 1,
PATCH_LEVEL = 2;
// #endif
public static native @Cast("cudnnStatus_t") int cudnnGetProperty(@Cast("libraryPropertyType") int type, IntPointer value);
public static native @Cast("cudnnStatus_t") int cudnnGetProperty(@Cast("libraryPropertyType") int type, IntBuffer value);
public static native @Cast("cudnnStatus_t") int cudnnGetProperty(@Cast("libraryPropertyType") int type, int[] value);
public static native @Cast("cudnnStatus_t") int cudnnCreate(@ByPtrPtr cudnnContext handle);
public static native @Cast("cudnnStatus_t") int cudnnDestroy(cudnnContext handle);
public static native @Cast("cudnnStatus_t") int cudnnSetStream(cudnnContext handle, CUstream_st streamId);
public static native @Cast("cudnnStatus_t") int cudnnGetStream(cudnnContext handle, @ByPtrPtr CUstream_st streamId);
/* Data structures to represent Image/Filter and the Neural Network Layer */
@Opaque public static class cudnnTensorStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnTensorStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnTensorStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnConvolutionStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnConvolutionStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnConvolutionStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnPoolingStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnPoolingStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnPoolingStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnFilterStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnFilterStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnFilterStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnLRNStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnLRNStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnLRNStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnActivationStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnActivationStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnActivationStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnSpatialTransformerStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnSpatialTransformerStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnSpatialTransformerStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnOpTensorStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnOpTensorStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnOpTensorStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnReduceTensorStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnReduceTensorStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnReduceTensorStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnCTCLossStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnCTCLossStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnCTCLossStruct(Pointer p) { super(p); }
}
/*
* CUDNN data type
*/
/** enum cudnnDataType_t */
public static final int
CUDNN_DATA_FLOAT = 0,
CUDNN_DATA_DOUBLE = 1,
CUDNN_DATA_HALF = 2,
CUDNN_DATA_INT8 = 3,
CUDNN_DATA_INT32 = 4,
CUDNN_DATA_INT8x4 = 5,
CUDNN_DATA_UINT8 = 6,
CUDNN_DATA_UINT8x4 = 7;
/*
* CUDNN math type
*/
/** enum cudnnMathType_t */
public static final int
CUDNN_DEFAULT_MATH = 0,
CUDNN_TENSOR_OP_MATH = 1;
/*
* CUDNN propagate Nan
*/
/** enum cudnnNanPropagation_t */
public static final int
CUDNN_NOT_PROPAGATE_NAN = 0,
CUDNN_PROPAGATE_NAN = 1;
/*
* CUDNN Determinism
*/
/** enum cudnnDeterminism_t */
public static final int
CUDNN_NON_DETERMINISTIC = 0,
CUDNN_DETERMINISTIC = 1;
/* Maximum supported number of tensor dimensions */
public static final int CUDNN_DIM_MAX = 8;
/* Create an instance of a generic Tensor descriptor */
public static native @Cast("cudnnStatus_t") int cudnnCreateTensorDescriptor(
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct tensorDesc );
public static native @Cast("cudnnStatus_t") int cudnnCreateTensorDescriptor(
@Cast("cudnnTensorStruct**") PointerPointer tensorDesc );
/** enum cudnnTensorFormat_t */
public static final int
CUDNN_TENSOR_NCHW = 0, /* row major (wStride = 1, hStride = w) */
CUDNN_TENSOR_NHWC = 1, /* feature maps interleaved ( cStride = 1 )*/
CUDNN_TENSOR_NCHW_VECT_C = 2; /* each image point is vector of element of C : the length of the vector is carried by the data type*/
public static native @Cast("cudnnStatus_t") int cudnnSetTensor4dDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnTensorFormat_t") int format,
@Cast("cudnnDataType_t") int dataType,
int n,
int c,
int h,
int w ); /* width of input section */
public static native @Cast("cudnnStatus_t") int cudnnSetTensor4dDescriptorEx(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t") int dataType,
int n,
int c,
int h,
int w,
int nStride,
int cStride,
int hStride,
int wStride );
public static native @Cast("cudnnStatus_t") int cudnnGetTensor4dDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t*") IntPointer dataType,
IntPointer n,
IntPointer c,
IntPointer h,
IntPointer w,
IntPointer nStride,
IntPointer cStride,
IntPointer hStride,
IntPointer wStride );
public static native @Cast("cudnnStatus_t") int cudnnGetTensor4dDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t*") IntBuffer dataType,
IntBuffer n,
IntBuffer c,
IntBuffer h,
IntBuffer w,
IntBuffer nStride,
IntBuffer cStride,
IntBuffer hStride,
IntBuffer wStride );
public static native @Cast("cudnnStatus_t") int cudnnGetTensor4dDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t*") int[] dataType,
int[] n,
int[] c,
int[] h,
int[] w,
int[] nStride,
int[] cStride,
int[] hStride,
int[] wStride );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntPointer dimA,
@Const IntPointer strideA );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntBuffer dimA,
@Const IntBuffer strideA );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const int[] dimA,
@Const int[] strideA );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptorEx(
cudnnTensorStruct tensorDesc,
@Cast("cudnnTensorFormat_t") int format,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntPointer dimA );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptorEx(
cudnnTensorStruct tensorDesc,
@Cast("cudnnTensorFormat_t") int format,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntBuffer dimA );
public static native @Cast("cudnnStatus_t") int cudnnSetTensorNdDescriptorEx(
cudnnTensorStruct tensorDesc,
@Cast("cudnnTensorFormat_t") int format,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const int[] dimA );
public static native @Cast("cudnnStatus_t") int cudnnGetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") IntPointer dataType,
IntPointer nbDims,
IntPointer dimA,
IntPointer strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") IntBuffer dataType,
IntBuffer nbDims,
IntBuffer dimA,
IntBuffer strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetTensorNdDescriptor(
cudnnTensorStruct tensorDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") int[] dataType,
int[] nbDims,
int[] dimA,
int[] strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetTensorSizeInBytes(
cudnnTensorStruct tensorDesc,
@Cast("size_t*") SizeTPointer size);
/* PixelOffset( n, c, h, w ) = n *input_stride + c * feature_stride + h * h_stride + w * w_stride
1)Example of all images in row major order one batch of features after the other (with an optional padding on row)
input_stride : c x h x h_stride
feature_stride : h x h_stride
h_stride : >= w ( h_stride = w if no padding)
w_stride : 1
2)Example of all images in row major with features maps interleaved
input_stride : c x h x h_stride
feature_stride : 1
h_stride : w x c
w_stride : c
3)Example of all images in column major order one batch of features after the other (with optional padding on column)
input_stride : c x w x w_stride
feature_stride : w x w_stride
h_stride : 1
w_stride : >= h
*/
/* Destroy an instance of Tensor4d descriptor */
public static native @Cast("cudnnStatus_t") int cudnnDestroyTensorDescriptor(
cudnnTensorStruct tensorDesc );
/* Tensor layout conversion helper (y = alpha * x + beta * y) */
public static native @Cast("cudnnStatus_t") int cudnnTransformTensor(
cudnnContext handle,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* Tensor Bias addition : C = alpha * A + beta * C */
public static native @Cast("cudnnStatus_t") int cudnnAddTensor(
cudnnContext handle,
@Const Pointer alpha,
cudnnTensorStruct aDesc,
@Const Pointer A,
@Const Pointer beta,
cudnnTensorStruct cDesc,
Pointer C );
/*
* CUDNN OpTensor op type
*/
/** enum cudnnOpTensorOp_t */
public static final int
CUDNN_OP_TENSOR_ADD = 0,
CUDNN_OP_TENSOR_MUL = 1,
CUDNN_OP_TENSOR_MIN = 2,
CUDNN_OP_TENSOR_MAX = 3,
CUDNN_OP_TENSOR_SQRT = 4,
CUDNN_OP_TENSOR_NOT = 5;
public static native @Cast("cudnnStatus_t") int cudnnCreateOpTensorDescriptor(
@ByPtrPtr cudnnOpTensorStruct opTensorDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetOpTensorDescriptor(
cudnnOpTensorStruct opTensorDesc,
@Cast("cudnnOpTensorOp_t") int opTensorOp,
@Cast("cudnnDataType_t") int opTensorCompType,
@Cast("cudnnNanPropagation_t") int opTensorNanOpt );
public static native @Cast("cudnnStatus_t") int cudnnGetOpTensorDescriptor(
cudnnOpTensorStruct opTensorDesc,
@Cast("cudnnOpTensorOp_t*") IntPointer opTensorOp,
@Cast("cudnnDataType_t*") IntPointer opTensorCompType,
@Cast("cudnnNanPropagation_t*") IntPointer opTensorNanOpt );
public static native @Cast("cudnnStatus_t") int cudnnGetOpTensorDescriptor(
cudnnOpTensorStruct opTensorDesc,
@Cast("cudnnOpTensorOp_t*") IntBuffer opTensorOp,
@Cast("cudnnDataType_t*") IntBuffer opTensorCompType,
@Cast("cudnnNanPropagation_t*") IntBuffer opTensorNanOpt );
public static native @Cast("cudnnStatus_t") int cudnnGetOpTensorDescriptor(
cudnnOpTensorStruct opTensorDesc,
@Cast("cudnnOpTensorOp_t*") int[] opTensorOp,
@Cast("cudnnDataType_t*") int[] opTensorCompType,
@Cast("cudnnNanPropagation_t*") int[] opTensorNanOpt );
public static native @Cast("cudnnStatus_t") int cudnnDestroyOpTensorDescriptor(
cudnnOpTensorStruct opTensorDesc );
/* Tensor operation : C = op( alpha1 * A, alpha2 * B ) + beta * C */
/* B tensor is ignored for CUDNN_OP_TENSOR_SQRT, CUDNN_OP_TENSOR_NOT. */
public static native @Cast("cudnnStatus_t") int cudnnOpTensor(
cudnnContext handle,
cudnnOpTensorStruct opTensorDesc,
@Const Pointer alpha1,
cudnnTensorStruct aDesc,
@Const Pointer A,
@Const Pointer alpha2,
cudnnTensorStruct bDesc,
@Const Pointer B,
@Const Pointer beta,
cudnnTensorStruct cDesc,
Pointer C );
/*
* CUDNN ReduceTensor op type
*/
/** enum cudnnReduceTensorOp_t */
public static final int
CUDNN_REDUCE_TENSOR_ADD = 0,
CUDNN_REDUCE_TENSOR_MUL = 1,
CUDNN_REDUCE_TENSOR_MIN = 2,
CUDNN_REDUCE_TENSOR_MAX = 3,
CUDNN_REDUCE_TENSOR_AMAX = 4,
CUDNN_REDUCE_TENSOR_AVG = 5,
CUDNN_REDUCE_TENSOR_NORM1 = 6,
CUDNN_REDUCE_TENSOR_NORM2 = 7,
CUDNN_REDUCE_TENSOR_MUL_NO_ZEROS = 8;
/*
* CUDNN ReduceTensor indices type
*/
/** enum cudnnReduceTensorIndices_t */
public static final int
CUDNN_REDUCE_TENSOR_NO_INDICES = 0,
CUDNN_REDUCE_TENSOR_FLATTENED_INDICES = 1;
/*
* CUDNN tensor indices type size (all unsigned)
* Currently not supported, default is 32 bit unsigned.
*/
/** enum cudnnIndicesType_t */
public static final int
CUDNN_32BIT_INDICES = 0,
CUDNN_64BIT_INDICES = 1,
CUDNN_16BIT_INDICES = 2,
CUDNN_8BIT_INDICES = 3;
public static native @Cast("cudnnStatus_t") int cudnnCreateReduceTensorDescriptor(
@ByPtrPtr cudnnReduceTensorStruct reduceTensorDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetReduceTensorDescriptor(
cudnnReduceTensorStruct reduceTensorDesc,
@Cast("cudnnReduceTensorOp_t") int reduceTensorOp,
@Cast("cudnnDataType_t") int reduceTensorCompType,
@Cast("cudnnNanPropagation_t") int reduceTensorNanOpt,
@Cast("cudnnReduceTensorIndices_t") int reduceTensorIndices,
@Cast("cudnnIndicesType_t") int reduceTensorIndicesType );
public static native @Cast("cudnnStatus_t") int cudnnGetReduceTensorDescriptor(
cudnnReduceTensorStruct reduceTensorDesc,
@Cast("cudnnReduceTensorOp_t*") IntPointer reduceTensorOp,
@Cast("cudnnDataType_t*") IntPointer reduceTensorCompType,
@Cast("cudnnNanPropagation_t*") IntPointer reduceTensorNanOpt,
@Cast("cudnnReduceTensorIndices_t*") IntPointer reduceTensorIndices,
@Cast("cudnnIndicesType_t*") IntPointer reduceTensorIndicesType );
public static native @Cast("cudnnStatus_t") int cudnnGetReduceTensorDescriptor(
cudnnReduceTensorStruct reduceTensorDesc,
@Cast("cudnnReduceTensorOp_t*") IntBuffer reduceTensorOp,
@Cast("cudnnDataType_t*") IntBuffer reduceTensorCompType,
@Cast("cudnnNanPropagation_t*") IntBuffer reduceTensorNanOpt,
@Cast("cudnnReduceTensorIndices_t*") IntBuffer reduceTensorIndices,
@Cast("cudnnIndicesType_t*") IntBuffer reduceTensorIndicesType );
public static native @Cast("cudnnStatus_t") int cudnnGetReduceTensorDescriptor(
cudnnReduceTensorStruct reduceTensorDesc,
@Cast("cudnnReduceTensorOp_t*") int[] reduceTensorOp,
@Cast("cudnnDataType_t*") int[] reduceTensorCompType,
@Cast("cudnnNanPropagation_t*") int[] reduceTensorNanOpt,
@Cast("cudnnReduceTensorIndices_t*") int[] reduceTensorIndices,
@Cast("cudnnIndicesType_t*") int[] reduceTensorIndicesType );
public static native @Cast("cudnnStatus_t") int cudnnDestroyReduceTensorDescriptor(
cudnnReduceTensorStruct reduceTensorDesc );
/* Helper function to return the minimum size of the index space to be passed to the reduction given the input and output tensors */
public static native @Cast("cudnnStatus_t") int cudnnGetReductionIndicesSize(
cudnnContext handle,
cudnnReduceTensorStruct reduceTensorDesc,
cudnnTensorStruct aDesc,
cudnnTensorStruct cDesc,
@Cast("size_t*") SizeTPointer sizeInBytes );
/* Helper function to return the minimum size of the workspace to be passed to the reduction given the input and output tensors */
public static native @Cast("cudnnStatus_t") int cudnnGetReductionWorkspaceSize(
cudnnContext handle,
cudnnReduceTensorStruct reduceTensorDesc,
cudnnTensorStruct aDesc,
cudnnTensorStruct cDesc,
@Cast("size_t*") SizeTPointer sizeInBytes );
/* Tensor operation : C = reduce op( alpha * A ) + beta * C */
/* The NaN propagation enum applies to only the min and max reduce ops; the other reduce ops propagate NaN as usual. */
/* The indices space is ignored for reduce ops other than min or max. */
public static native @Cast("cudnnStatus_t") int cudnnReduceTensor(
cudnnContext handle,
cudnnReduceTensorStruct reduceTensorDesc,
Pointer indices,
@Cast("size_t") long indicesSizeInBytes,
Pointer workspace,
@Cast("size_t") long workspaceSizeInBytes,
@Const Pointer alpha,
cudnnTensorStruct aDesc,
@Const Pointer A,
@Const Pointer beta,
cudnnTensorStruct cDesc,
Pointer C );
/* Set all values of a tensor to a given value : y[i] = value[0] */
public static native @Cast("cudnnStatus_t") int cudnnSetTensor(
cudnnContext handle,
cudnnTensorStruct yDesc,
Pointer y,
@Const Pointer valuePtr );
/* Scale all values of a tensor by a given factor : y[i] = alpha * y[i] */
public static native @Cast("cudnnStatus_t") int cudnnScaleTensor(
cudnnContext handle,
cudnnTensorStruct yDesc,
Pointer y,
@Const Pointer alpha );
/*
* convolution mode
*/
/** enum cudnnConvolutionMode_t */
public static final int
CUDNN_CONVOLUTION = 0,
CUDNN_CROSS_CORRELATION = 1;
/* Create an instance of FilterStruct */
public static native @Cast("cudnnStatus_t") int cudnnCreateFilterDescriptor(
@ByPtrPtr cudnnFilterStruct filterDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetFilter4dDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t") int dataType,
@Cast("cudnnTensorFormat_t") int format,
int k,
int c,
int h,
int w ); /* width of each input filter */
public static native @Cast("cudnnStatus_t") int cudnnGetFilter4dDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t*") IntPointer dataType,
@Cast("cudnnTensorFormat_t*") IntPointer format,
IntPointer k,
IntPointer c,
IntPointer h,
IntPointer w );
public static native @Cast("cudnnStatus_t") int cudnnGetFilter4dDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t*") IntBuffer dataType,
@Cast("cudnnTensorFormat_t*") IntBuffer format,
IntBuffer k,
IntBuffer c,
IntBuffer h,
IntBuffer w );
public static native @Cast("cudnnStatus_t") int cudnnGetFilter4dDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t*") int[] dataType,
@Cast("cudnnTensorFormat_t*") int[] format,
int[] k,
int[] c,
int[] h,
int[] w ); /* width of each input filter */
public static native @Cast("cudnnStatus_t") int cudnnSetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t") int dataType,
@Cast("cudnnTensorFormat_t") int format,
int nbDims,
@Const IntPointer filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnSetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t") int dataType,
@Cast("cudnnTensorFormat_t") int format,
int nbDims,
@Const IntBuffer filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnSetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
@Cast("cudnnDataType_t") int dataType,
@Cast("cudnnTensorFormat_t") int format,
int nbDims,
@Const int[] filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") IntPointer dataType,
@Cast("cudnnTensorFormat_t*") IntPointer format,
IntPointer nbDims,
IntPointer filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") IntBuffer dataType,
@Cast("cudnnTensorFormat_t*") IntBuffer format,
IntBuffer nbDims,
IntBuffer filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetFilterNdDescriptor(
cudnnFilterStruct filterDesc,
int nbDimsRequested,
@Cast("cudnnDataType_t*") int[] dataType,
@Cast("cudnnTensorFormat_t*") int[] format,
int[] nbDims,
int[] filterDimA );
public static native @Cast("cudnnStatus_t") int cudnnDestroyFilterDescriptor(
cudnnFilterStruct filterDesc );
/* Create an instance of convolution descriptor */
public static native @Cast("cudnnStatus_t") int cudnnCreateConvolutionDescriptor(
@ByPtrPtr cudnnConvolutionStruct convDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolutionMathType( cudnnConvolutionStruct convDesc,
@Cast("cudnnMathType_t") int mathType );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionMathType( cudnnConvolutionStruct convDesc,
@Cast("cudnnMathType_t*") IntPointer mathType );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionMathType( cudnnConvolutionStruct convDesc,
@Cast("cudnnMathType_t*") IntBuffer mathType );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionMathType( cudnnConvolutionStruct convDesc,
@Cast("cudnnMathType_t*") int[] mathType );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolutionGroupCount( cudnnConvolutionStruct convDesc,
int groupCount );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionGroupCount( cudnnConvolutionStruct convDesc,
IntPointer groupCount );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionGroupCount( cudnnConvolutionStruct convDesc,
IntBuffer groupCount );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionGroupCount( cudnnConvolutionStruct convDesc,
int[] groupCount );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolution2dDescriptor( cudnnConvolutionStruct convDesc,
int pad_h,
int pad_w,
int u,
int v,
int dilation_h,
int dilation_w,
@Cast("cudnnConvolutionMode_t") int mode,
@Cast("cudnnDataType_t") int computeType
);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dDescriptor( cudnnConvolutionStruct convDesc,
IntPointer pad_h,
IntPointer pad_w,
IntPointer u,
IntPointer v,
IntPointer dilation_h,
IntPointer dilation_w,
@Cast("cudnnConvolutionMode_t*") IntPointer mode,
@Cast("cudnnDataType_t*") IntPointer computeType
);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dDescriptor( cudnnConvolutionStruct convDesc,
IntBuffer pad_h,
IntBuffer pad_w,
IntBuffer u,
IntBuffer v,
IntBuffer dilation_h,
IntBuffer dilation_w,
@Cast("cudnnConvolutionMode_t*") IntBuffer mode,
@Cast("cudnnDataType_t*") IntBuffer computeType
);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dDescriptor( cudnnConvolutionStruct convDesc,
int[] pad_h,
int[] pad_w,
int[] u,
int[] v,
int[] dilation_h,
int[] dilation_w,
@Cast("cudnnConvolutionMode_t*") int[] mode,
@Cast("cudnnDataType_t*") int[] computeType
);
/* Helper function to return the dimensions of the output tensor given a convolution descriptor */
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
IntPointer n,
IntPointer c,
IntPointer h,
IntPointer w );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
IntBuffer n,
IntBuffer c,
IntBuffer h,
IntBuffer w );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolution2dForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
int[] n,
int[] c,
int[] h,
int[] w );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLength,
@Const IntPointer padA,
@Const IntPointer filterStrideA,
@Const IntPointer dilationA,
@Cast("cudnnConvolutionMode_t") int mode,
@Cast("cudnnDataType_t") int computeType );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLength,
@Const IntBuffer padA,
@Const IntBuffer filterStrideA,
@Const IntBuffer dilationA,
@Cast("cudnnConvolutionMode_t") int mode,
@Cast("cudnnDataType_t") int computeType );
public static native @Cast("cudnnStatus_t") int cudnnSetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLength,
@Const int[] padA,
@Const int[] filterStrideA,
@Const int[] dilationA,
@Cast("cudnnConvolutionMode_t") int mode,
@Cast("cudnnDataType_t") int computeType ); /* convolution data type */
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLengthRequested,
IntPointer arrayLength,
IntPointer padA,
IntPointer strideA,
IntPointer dilationA,
@Cast("cudnnConvolutionMode_t*") IntPointer mode,
@Cast("cudnnDataType_t*") IntPointer computeType );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLengthRequested,
IntBuffer arrayLength,
IntBuffer padA,
IntBuffer strideA,
IntBuffer dilationA,
@Cast("cudnnConvolutionMode_t*") IntBuffer mode,
@Cast("cudnnDataType_t*") IntBuffer computeType );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdDescriptor(
cudnnConvolutionStruct convDesc,
int arrayLengthRequested,
int[] arrayLength,
int[] padA,
int[] strideA,
int[] dilationA,
@Cast("cudnnConvolutionMode_t*") int[] mode,
@Cast("cudnnDataType_t*") int[] computeType ); /* convolution data type */
/* Helper function to return the dimensions of the output tensor given a convolution descriptor */
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
int nbDims,
IntPointer tensorOuputDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
int nbDims,
IntBuffer tensorOuputDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionNdForwardOutputDim(
cudnnConvolutionStruct convDesc,
cudnnTensorStruct inputTensorDesc,
cudnnFilterStruct filterDesc,
int nbDims,
int[] tensorOuputDimA );
/* Destroy an instance of convolution descriptor */
public static native @Cast("cudnnStatus_t") int cudnnDestroyConvolutionDescriptor(
cudnnConvolutionStruct convDesc );
/* helper function to provide the convolution algo that fit best the requirement */
/** enum cudnnConvolutionFwdPreference_t */
public static final int
CUDNN_CONVOLUTION_FWD_NO_WORKSPACE = 0,
CUDNN_CONVOLUTION_FWD_PREFER_FASTEST = 1,
CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT = 2;
/** enum cudnnConvolutionFwdAlgo_t */
public static final int
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM = 0,
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM = 1,
CUDNN_CONVOLUTION_FWD_ALGO_GEMM = 2,
CUDNN_CONVOLUTION_FWD_ALGO_DIRECT = 3,
CUDNN_CONVOLUTION_FWD_ALGO_FFT = 4,
CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING = 5,
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD = 6,
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED = 7,
CUDNN_CONVOLUTION_FWD_ALGO_COUNT = 8;
public static class cudnnConvolutionFwdAlgoPerf_t extends Pointer {
static { Loader.load(); }
/** Default native constructor. */
public cudnnConvolutionFwdAlgoPerf_t() { super((Pointer)null); allocate(); }
/** Native array allocator. Access with {@link Pointer#position(long)}. */
public cudnnConvolutionFwdAlgoPerf_t(long size) { super((Pointer)null); allocateArray(size); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnConvolutionFwdAlgoPerf_t(Pointer p) { super(p); }
private native void allocate();
private native void allocateArray(long size);
@Override public cudnnConvolutionFwdAlgoPerf_t position(long position) {
return (cudnnConvolutionFwdAlgoPerf_t)super.position(position);
}
public native @Cast("cudnnConvolutionFwdAlgo_t") int algo(); public native cudnnConvolutionFwdAlgoPerf_t algo(int algo);
public native @Cast("cudnnStatus_t") int status(); public native cudnnConvolutionFwdAlgoPerf_t status(int status);
public native float time(); public native cudnnConvolutionFwdAlgoPerf_t time(float time);
public native @Cast("size_t") long memory(); public native cudnnConvolutionFwdAlgoPerf_t memory(long memory);
public native @Cast("cudnnDeterminism_t") int determinism(); public native cudnnConvolutionFwdAlgoPerf_t determinism(int determinism);
public native @Cast("cudnnMathType_t") int mathType(); public native cudnnConvolutionFwdAlgoPerf_t mathType(int mathType);
public native int reserved(int i); public native cudnnConvolutionFwdAlgoPerf_t reserved(int i, int reserved);
@MemberGetter public native IntPointer reserved();
}
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithmMaxCount( cudnnContext handle,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithmMaxCount( cudnnContext handle,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithmMaxCount( cudnnContext handle,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
Pointer y,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
Pointer y,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionForwardAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
Pointer y,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
@Cast("cudnnConvolutionFwdPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionFwdAlgo_t*") IntPointer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
@Cast("cudnnConvolutionFwdPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionFwdAlgo_t*") IntBuffer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
@Cast("cudnnConvolutionFwdPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionFwdAlgo_t*") int[] algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnFilterStruct filterDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct destDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnFilterStruct filterDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct destDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnFilterStruct filterDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct destDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionFwdAlgoPerf_t perfResults);
/*
* convolution algorithm (which requires potentially some workspace)
*/
/* Helper function to return the minimum size of the workspace to be passed to the convolution given an algo*/
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionForwardWorkspaceSize(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct yDesc,
@Cast("cudnnConvolutionFwdAlgo_t") int algo,
@Cast("size_t*") SizeTPointer sizeInBytes );
/* Convolution functions: All of the form "output = alpha * Op(inputs) + beta * output" */
/* Function to perform the forward pass for batch convolution */
public static native @Cast("cudnnStatus_t") int cudnnConvolutionForward(
cudnnContext handle,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnConvolutionStruct convDesc,
@Cast("cudnnConvolutionFwdAlgo_t") int algo,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* Fused conv/bias/activation operation : y = Act( alpha1 * conv(x) + alpha2 * z + bias ) */
public static native @Cast("cudnnStatus_t") int cudnnConvolutionBiasActivationForward(
cudnnContext handle,
@Const Pointer alpha1,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnConvolutionStruct convDesc,
@Cast("cudnnConvolutionFwdAlgo_t") int algo,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes,
@Const Pointer alpha2,
cudnnTensorStruct zDesc,
@Const Pointer z,
cudnnTensorStruct biasDesc,
@Const Pointer bias,
cudnnActivationStruct activationDesc,
cudnnTensorStruct yDesc,
Pointer y );
/* Function to compute the bias gradient for batch convolution */
public static native @Cast("cudnnStatus_t") int cudnnConvolutionBackwardBias(
cudnnContext handle,
@Const Pointer alpha,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
@Const Pointer beta,
cudnnTensorStruct dbDesc,
Pointer db );
/* helper function to provide the convolution algo that fit best the requirement */
/** enum cudnnConvolutionBwdFilterPreference_t */
public static final int
CUDNN_CONVOLUTION_BWD_FILTER_NO_WORKSPACE = 0,
CUDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST = 1,
CUDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT = 2;
/** enum cudnnConvolutionBwdFilterAlgo_t */
public static final int
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0 = 0, /* non-deterministic */
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1 = 1,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT = 2,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3 = 3, /* non-deterministic */
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD = 4, /* not implemented */
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED = 5,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING = 6,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT = 7;
public static class cudnnConvolutionBwdFilterAlgoPerf_t extends Pointer {
static { Loader.load(); }
/** Default native constructor. */
public cudnnConvolutionBwdFilterAlgoPerf_t() { super((Pointer)null); allocate(); }
/** Native array allocator. Access with {@link Pointer#position(long)}. */
public cudnnConvolutionBwdFilterAlgoPerf_t(long size) { super((Pointer)null); allocateArray(size); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnConvolutionBwdFilterAlgoPerf_t(Pointer p) { super(p); }
private native void allocate();
private native void allocateArray(long size);
@Override public cudnnConvolutionBwdFilterAlgoPerf_t position(long position) {
return (cudnnConvolutionBwdFilterAlgoPerf_t)super.position(position);
}
public native @Cast("cudnnConvolutionBwdFilterAlgo_t") int algo(); public native cudnnConvolutionBwdFilterAlgoPerf_t algo(int algo);
public native @Cast("cudnnStatus_t") int status(); public native cudnnConvolutionBwdFilterAlgoPerf_t status(int status);
public native float time(); public native cudnnConvolutionBwdFilterAlgoPerf_t time(float time);
public native @Cast("size_t") long memory(); public native cudnnConvolutionBwdFilterAlgoPerf_t memory(long memory);
public native @Cast("cudnnDeterminism_t") int determinism(); public native cudnnConvolutionBwdFilterAlgoPerf_t determinism(int determinism);
public native @Cast("cudnnMathType_t") int mathType(); public native cudnnConvolutionBwdFilterAlgoPerf_t mathType(int mathType);
public native int reserved(int i); public native cudnnConvolutionBwdFilterAlgoPerf_t reserved(int i, int reserved);
@MemberGetter public native IntPointer reserved();
}
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithmMaxCount( cudnnContext handle,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithmMaxCount( cudnnContext handle,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithmMaxCount( cudnnContext handle,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct dyDesc,
@Const Pointer y,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
Pointer dw,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct dyDesc,
@Const Pointer y,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
Pointer dw,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardFilterAlgorithmEx(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct dyDesc,
@Const Pointer y,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
Pointer dw,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
@Cast("cudnnConvolutionBwdFilterPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdFilterAlgo_t*") IntPointer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
@Cast("cudnnConvolutionBwdFilterPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdFilterAlgo_t*") IntBuffer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct dwDesc,
@Cast("cudnnConvolutionBwdFilterPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdFilterAlgo_t*") int[] algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct gradDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct gradDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterAlgorithm_v7(
cudnnContext handle,
cudnnTensorStruct srcDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct gradDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdFilterAlgoPerf_t perfResults);
/*
* convolution algorithm (which requires potentially some workspace)
*/
/* Helper function to return the minimum size of the workspace to be passed to the convolution given an algo*/
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardFilterWorkspaceSize(
cudnnContext handle,
cudnnTensorStruct xDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnFilterStruct gradDesc,
@Cast("cudnnConvolutionBwdFilterAlgo_t") int algo,
@Cast("size_t*") SizeTPointer sizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnConvolutionBackwardFilter(
cudnnContext handle,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnConvolutionStruct convDesc,
@Cast("cudnnConvolutionBwdFilterAlgo_t") int algo,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes,
@Const Pointer beta,
cudnnFilterStruct dwDesc,
Pointer dw );
/*********************************************************/
/* helper function to provide the convolution algo that fit best the requirement */
/** enum cudnnConvolutionBwdDataPreference_t */
public static final int
CUDNN_CONVOLUTION_BWD_DATA_NO_WORKSPACE = 0,
CUDNN_CONVOLUTION_BWD_DATA_PREFER_FASTEST = 1,
CUDNN_CONVOLUTION_BWD_DATA_SPECIFY_WORKSPACE_LIMIT = 2;
/** enum cudnnConvolutionBwdDataAlgo_t */
public static final int
CUDNN_CONVOLUTION_BWD_DATA_ALGO_0 = 0, /* non-deterministic */
CUDNN_CONVOLUTION_BWD_DATA_ALGO_1 = 1,
CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT = 2,
CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT_TILING = 3,
CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD = 4,
CUDNN_CONVOLUTION_BWD_DATA_ALGO_WINOGRAD_NONFUSED = 5,
CUDNN_CONVOLUTION_BWD_DATA_ALGO_COUNT = 6;
public static class cudnnConvolutionBwdDataAlgoPerf_t extends Pointer {
static { Loader.load(); }
/** Default native constructor. */
public cudnnConvolutionBwdDataAlgoPerf_t() { super((Pointer)null); allocate(); }
/** Native array allocator. Access with {@link Pointer#position(long)}. */
public cudnnConvolutionBwdDataAlgoPerf_t(long size) { super((Pointer)null); allocateArray(size); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnConvolutionBwdDataAlgoPerf_t(Pointer p) { super(p); }
private native void allocate();
private native void allocateArray(long size);
@Override public cudnnConvolutionBwdDataAlgoPerf_t position(long position) {
return (cudnnConvolutionBwdDataAlgoPerf_t)super.position(position);
}
public native @Cast("cudnnConvolutionBwdDataAlgo_t") int algo(); public native cudnnConvolutionBwdDataAlgoPerf_t algo(int algo);
public native @Cast("cudnnStatus_t") int status(); public native cudnnConvolutionBwdDataAlgoPerf_t status(int status);
public native float time(); public native cudnnConvolutionBwdDataAlgoPerf_t time(float time);
public native @Cast("size_t") long memory(); public native cudnnConvolutionBwdDataAlgoPerf_t memory(long memory);
public native @Cast("cudnnDeterminism_t") int determinism(); public native cudnnConvolutionBwdDataAlgoPerf_t determinism(int determinism);
public native @Cast("cudnnMathType_t") int mathType(); public native cudnnConvolutionBwdDataAlgoPerf_t mathType(int mathType);
public native int reserved(int i); public native cudnnConvolutionBwdDataAlgoPerf_t reserved(int i, int reserved);
@MemberGetter public native IntPointer reserved();
}
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithmMaxCount( cudnnContext handle,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithmMaxCount( cudnnContext handle,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithmMaxCount( cudnnContext handle,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithmEx(
cudnnContext handle,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
Pointer dx,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithmEx(
cudnnContext handle,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
Pointer dx,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindConvolutionBackwardDataAlgorithmEx(
cudnnContext handle,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
Pointer dx,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
@Cast("cudnnConvolutionBwdDataPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdDataAlgo_t*") IntPointer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
@Cast("cudnnConvolutionBwdDataPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdDataAlgo_t*") IntBuffer algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
@Cast("cudnnConvolutionBwdDataPreference_t") int preference,
@Cast("size_t") long memoryLimitInBytes,
@Cast("cudnnConvolutionBwdDataAlgo_t*") int[] algo );
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm_v7(
cudnnContext handle,
cudnnFilterStruct filterDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct gradDesc,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm_v7(
cudnnContext handle,
cudnnFilterStruct filterDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct gradDesc,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults);
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataAlgorithm_v7(
cudnnContext handle,
cudnnFilterStruct filterDesc,
cudnnTensorStruct diffDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct gradDesc,
int requestedAlgoCount,
int[] returnedAlgoCount,
cudnnConvolutionBwdDataAlgoPerf_t perfResults);
/* Helper function to return the minimum size of the workspace to be passed to the convolution given an algo*/
public static native @Cast("cudnnStatus_t") int cudnnGetConvolutionBackwardDataWorkspaceSize(
cudnnContext handle,
cudnnFilterStruct wDesc,
cudnnTensorStruct dyDesc,
cudnnConvolutionStruct convDesc,
cudnnTensorStruct dxDesc,
@Cast("cudnnConvolutionBwdDataAlgo_t") int algo,
@Cast("size_t*") SizeTPointer sizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnConvolutionBackwardData(
cudnnContext handle,
@Const Pointer alpha,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnConvolutionStruct convDesc,
@Cast("cudnnConvolutionBwdDataAlgo_t") int algo,
Pointer workSpace,
@Cast("size_t") long workSpaceSizeInBytes,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx );
public static native @Cast("cudnnStatus_t") int cudnnIm2Col(
cudnnContext handle,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnFilterStruct wDesc,
cudnnConvolutionStruct convDesc,
Pointer colBuffer );
/*
* softmax algorithm
*/
/** enum cudnnSoftmaxAlgorithm_t */
public static final int
CUDNN_SOFTMAX_FAST = 0, /* straightforward implementation */
CUDNN_SOFTMAX_ACCURATE = 1, /* subtract max from every point to avoid overflow */
CUDNN_SOFTMAX_LOG = 2;
/** enum cudnnSoftmaxMode_t */
public static final int
CUDNN_SOFTMAX_MODE_INSTANCE = 0, /* compute the softmax over all C, H, W for each N */
CUDNN_SOFTMAX_MODE_CHANNEL = 1; /* compute the softmax over all C for each H, W, N */
/* Softmax functions: All of the form "output = alpha * Op(inputs) + beta * output" */
/* Function to perform forward softmax */
public static native @Cast("cudnnStatus_t") int cudnnSoftmaxForward(
cudnnContext handle,
@Cast("cudnnSoftmaxAlgorithm_t") int algo,
@Cast("cudnnSoftmaxMode_t") int mode,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* Function to perform backward softmax */
public static native @Cast("cudnnStatus_t") int cudnnSoftmaxBackward(
cudnnContext handle,
@Cast("cudnnSoftmaxAlgorithm_t") int algo,
@Cast("cudnnSoftmaxMode_t") int mode,
@Const Pointer alpha,
cudnnTensorStruct yDesc,
@Const Pointer y,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx );
/*
* pooling mode
*/
/** enum cudnnPoolingMode_t */
public static final int
CUDNN_POOLING_MAX = 0,
CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING = 1, /* count for average includes padded values */
CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING = 2, /* count for average does not include padded values */
CUDNN_POOLING_MAX_DETERMINISTIC = 3;
/* Create an instance of pooling descriptor */
public static native @Cast("cudnnStatus_t") int cudnnCreatePoolingDescriptor(
@ByPtrPtr cudnnPoolingStruct poolingDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetPooling2dDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("cudnnPoolingMode_t") int mode,
@Cast("cudnnNanPropagation_t") int maxpoolingNanOpt,
int windowHeight,
int windowWidth,
int verticalPadding,
int horizontalPadding,
int verticalStride,
int horizontalStride );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("cudnnPoolingMode_t*") IntPointer mode,
@Cast("cudnnNanPropagation_t*") IntPointer maxpoolingNanOpt,
IntPointer windowHeight,
IntPointer windowWidth,
IntPointer verticalPadding,
IntPointer horizontalPadding,
IntPointer verticalStride,
IntPointer horizontalStride );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("cudnnPoolingMode_t*") IntBuffer mode,
@Cast("cudnnNanPropagation_t*") IntBuffer maxpoolingNanOpt,
IntBuffer windowHeight,
IntBuffer windowWidth,
IntBuffer verticalPadding,
IntBuffer horizontalPadding,
IntBuffer verticalStride,
IntBuffer horizontalStride );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("cudnnPoolingMode_t*") int[] mode,
@Cast("cudnnNanPropagation_t*") int[] maxpoolingNanOpt,
int[] windowHeight,
int[] windowWidth,
int[] verticalPadding,
int[] horizontalPadding,
int[] verticalStride,
int[] horizontalStride );
public static native @Cast("cudnnStatus_t") int cudnnSetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("const cudnnPoolingMode_t") int mode,
@Cast("const cudnnNanPropagation_t") int maxpoolingNanOpt,
int nbDims,
@Const IntPointer windowDimA,
@Const IntPointer paddingA,
@Const IntPointer strideA );
public static native @Cast("cudnnStatus_t") int cudnnSetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("const cudnnPoolingMode_t") int mode,
@Cast("const cudnnNanPropagation_t") int maxpoolingNanOpt,
int nbDims,
@Const IntBuffer windowDimA,
@Const IntBuffer paddingA,
@Const IntBuffer strideA );
public static native @Cast("cudnnStatus_t") int cudnnSetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
@Cast("const cudnnPoolingMode_t") int mode,
@Cast("const cudnnNanPropagation_t") int maxpoolingNanOpt,
int nbDims,
@Const int[] windowDimA,
@Const int[] paddingA,
@Const int[] strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
int nbDimsRequested,
@Cast("cudnnPoolingMode_t*") IntPointer mode,
@Cast("cudnnNanPropagation_t*") IntPointer maxpoolingNanOpt,
IntPointer nbDims,
IntPointer windowDimA,
IntPointer paddingA,
IntPointer strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
int nbDimsRequested,
@Cast("cudnnPoolingMode_t*") IntBuffer mode,
@Cast("cudnnNanPropagation_t*") IntBuffer maxpoolingNanOpt,
IntBuffer nbDims,
IntBuffer windowDimA,
IntBuffer paddingA,
IntBuffer strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdDescriptor(
cudnnPoolingStruct poolingDesc,
int nbDimsRequested,
@Cast("cudnnPoolingMode_t*") int[] mode,
@Cast("cudnnNanPropagation_t*") int[] maxpoolingNanOpt,
int[] nbDims,
int[] windowDimA,
int[] paddingA,
int[] strideA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
int nbDims,
IntPointer outputTensorDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
int nbDims,
IntBuffer outputTensorDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetPoolingNdForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
int nbDims,
int[] outputTensorDimA );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
IntPointer n,
IntPointer c,
IntPointer h,
IntPointer w );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
IntBuffer n,
IntBuffer c,
IntBuffer h,
IntBuffer w );
public static native @Cast("cudnnStatus_t") int cudnnGetPooling2dForwardOutputDim(
cudnnPoolingStruct poolingDesc,
cudnnTensorStruct inputTensorDesc,
int[] n,
int[] c,
int[] h,
int[] w );
/* Destroy an instance of pooling descriptor */
public static native @Cast("cudnnStatus_t") int cudnnDestroyPoolingDescriptor(
cudnnPoolingStruct poolingDesc );
/* Pooling functions: All of the form "output = alpha * Op(inputs) + beta * output" */
/* Function to perform forward pooling */
public static native @Cast("cudnnStatus_t") int cudnnPoolingForward(
cudnnContext handle,
cudnnPoolingStruct poolingDesc,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* Function to perform backward pooling */
public static native @Cast("cudnnStatus_t") int cudnnPoolingBackward(
cudnnContext handle,
cudnnPoolingStruct poolingDesc,
@Const Pointer alpha,
cudnnTensorStruct yDesc,
@Const Pointer y,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx );
/*
* activation mode
*/
/** enum cudnnActivationMode_t */
public static final int
CUDNN_ACTIVATION_SIGMOID = 0,
CUDNN_ACTIVATION_RELU = 1,
CUDNN_ACTIVATION_TANH = 2,
CUDNN_ACTIVATION_CLIPPED_RELU = 3,
CUDNN_ACTIVATION_ELU = 4,
CUDNN_ACTIVATION_IDENTITY = 5;
/* Activation functions: All of the form "output = alpha * Op(inputs) + beta * output" */
public static native @Cast("cudnnStatus_t") int cudnnCreateActivationDescriptor(
@ByPtrPtr cudnnActivationStruct activationDesc);
public static native @Cast("cudnnStatus_t") int cudnnSetActivationDescriptor(
cudnnActivationStruct activationDesc,
@Cast("cudnnActivationMode_t") int mode,
@Cast("cudnnNanPropagation_t") int reluNanOpt,
double coef ); /* ceiling for clipped RELU, alpha for ELU */
public static native @Cast("cudnnStatus_t") int cudnnGetActivationDescriptor(
cudnnActivationStruct activationDesc,
@Cast("cudnnActivationMode_t*") IntPointer mode,
@Cast("cudnnNanPropagation_t*") IntPointer reluNanOpt,
DoublePointer coef );
public static native @Cast("cudnnStatus_t") int cudnnGetActivationDescriptor(
cudnnActivationStruct activationDesc,
@Cast("cudnnActivationMode_t*") IntBuffer mode,
@Cast("cudnnNanPropagation_t*") IntBuffer reluNanOpt,
DoubleBuffer coef );
public static native @Cast("cudnnStatus_t") int cudnnGetActivationDescriptor(
cudnnActivationStruct activationDesc,
@Cast("cudnnActivationMode_t*") int[] mode,
@Cast("cudnnNanPropagation_t*") int[] reluNanOpt,
double[] coef ); /* ceiling for clipped RELU, alpha for ELU */
public static native @Cast("cudnnStatus_t") int cudnnDestroyActivationDescriptor(
cudnnActivationStruct activationDesc);
/* Function to perform forward activation */
public static native @Cast("cudnnStatus_t") int cudnnActivationForward(
cudnnContext handle,
cudnnActivationStruct activationDesc,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* Function to perform backward activation */
public static native @Cast("cudnnStatus_t") int cudnnActivationBackward(
cudnnContext handle,
cudnnActivationStruct activationDesc,
@Const Pointer alpha,
cudnnTensorStruct yDesc,
@Const Pointer y,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx );
/*
* Create an instance of LRN (Local Response Normalization) descriptor
* Uses lrnN=5, lrnAlpha=1e-4, lrnBeta=0.75, lrnK=2.0 as defaults from Krizhevsky'12 ImageNet paper
*/
public static native @Cast("cudnnStatus_t") int cudnnCreateLRNDescriptor(
@ByPtrPtr cudnnLRNStruct normDesc );
public static final int CUDNN_LRN_MIN_N = 1; /* minimum allowed lrnN */
public static final int CUDNN_LRN_MAX_N = 16; /* maximum allowed lrnN */
public static final double CUDNN_LRN_MIN_K = 1e-5; /* minimum allowed lrnK */
public static final double CUDNN_LRN_MIN_BETA = 0.01; /* minimum allowed lrnBeta */
/* LRN layer mode */
/** enum cudnnLRNMode_t */
public static final int
CUDNN_LRN_CROSS_CHANNEL_DIM1 = 0;/* Normalize across tensor's dimA[1] dimension */
/*
* Uses a window [center-lookBehind, center+lookAhead], where
* lookBehind = floor( (lrnN-1)/2 ), lookAhead = lrnN-lookBehind-1.
* Values of double parameters cast to tensor data type.
*/
public static native @Cast("cudnnStatus_t") int cudnnSetLRNDescriptor(
cudnnLRNStruct normDesc,
@Cast("unsigned") int lrnN,
double lrnAlpha,
double lrnBeta,
double lrnK );
/*
* Retrieve the settings currently stored in an LRN layer descriptor
* Any of the provided pointers can be NULL (no corresponding value will be returned)
*/
public static native @Cast("cudnnStatus_t") int cudnnGetLRNDescriptor(
cudnnLRNStruct normDesc,
@Cast("unsigned*") IntPointer lrnN,
DoublePointer lrnAlpha,
DoublePointer lrnBeta,
DoublePointer lrnK );
public static native @Cast("cudnnStatus_t") int cudnnGetLRNDescriptor(
cudnnLRNStruct normDesc,
@Cast("unsigned*") IntBuffer lrnN,
DoubleBuffer lrnAlpha,
DoubleBuffer lrnBeta,
DoubleBuffer lrnK );
public static native @Cast("cudnnStatus_t") int cudnnGetLRNDescriptor(
cudnnLRNStruct normDesc,
@Cast("unsigned*") int[] lrnN,
double[] lrnAlpha,
double[] lrnBeta,
double[] lrnK );
/* Destroy an instance of LRN descriptor */
public static native @Cast("cudnnStatus_t") int cudnnDestroyLRNDescriptor( cudnnLRNStruct lrnDesc );
/* LRN functions: output = alpha * normalize(x) + beta * old_y */
/* LRN cross-channel forward computation. Double parameters cast to tensor data type */
public static native @Cast("cudnnStatus_t") int cudnnLRNCrossChannelForward(
cudnnContext handle,
cudnnLRNStruct normDesc,
@Cast("cudnnLRNMode_t") int lrnMode,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
/* LRN cross-channel backward computation. Double parameters cast to tensor data type */
public static native @Cast("cudnnStatus_t") int cudnnLRNCrossChannelBackward(
cudnnContext handle,
cudnnLRNStruct normDesc,
@Cast("cudnnLRNMode_t") int lrnMode,
@Const Pointer alpha,
cudnnTensorStruct yDesc,
@Const Pointer y,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx);
/** enum cudnnDivNormMode_t */
public static final int
CUDNN_DIVNORM_PRECOMPUTED_MEANS = 0;
/* LCN/divisive normalization functions: y = alpha * normalize(x) + beta * y */
public static native @Cast("cudnnStatus_t") int cudnnDivisiveNormalizationForward(
cudnnContext handle,
cudnnLRNStruct normDesc,
@Cast("cudnnDivNormMode_t") int mode,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer means,
Pointer temp,
Pointer temp2,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y );
public static native @Cast("cudnnStatus_t") int cudnnDivisiveNormalizationBackward(
cudnnContext handle,
cudnnLRNStruct normDesc,
@Cast("cudnnDivNormMode_t") int mode,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer means,
@Const Pointer dy,
Pointer temp,
Pointer temp2,
@Const Pointer beta,
cudnnTensorStruct dXdMeansDesc,
Pointer dx,
Pointer dMeans ); /* output means differential, can be NULL */
/** enum cudnnBatchNormMode_t */
public static final int
/* bnScale, bnBias tensor dims are 1xCxHxWx.. (one value per CHW...-slice, normalized over N slice) */
CUDNN_BATCHNORM_PER_ACTIVATION = 0,
/* bnScale, bnBias tensor dims are 1xCx1x1 (one value per C-dim normalized over Nx1xHxW subtensors) */
CUDNN_BATCHNORM_SPATIAL = 1,
/*
* bnScale, bnBias tensor dims are 1xCx1x1 (one value per C-dim normalized over Nx1xHxW subtensors).
* May be faster than CUDNN_BATCHNORM_SPATIAL but imposes some limits on the range of values
*/
CUDNN_BATCHNORM_SPATIAL_PERSISTENT = 2;
public static final double CUDNN_BN_MIN_EPSILON = 1e-5; /* Minimum epsilon allowed to be used in the Batch Normalization formula */
/*
* Derives a tensor descriptor from layer data descriptor for BatchNormalization
* scale, invVariance, bnBias, bnScale tensors. Use this tensor desc for
* bnScaleBiasMeanVarDesc and bnScaleBiasDiffDesc in Batch Normalization forward and backward functions.
*/
public static native @Cast("cudnnStatus_t") int cudnnDeriveBNTensorDescriptor(
cudnnTensorStruct derivedBnDesc,
cudnnTensorStruct xDesc,
@Cast("cudnnBatchNormMode_t") int mode );
/* Computes y = BN(x). Also accumulates moving averages of mean and inverse variances */
public static native @Cast("cudnnStatus_t") int cudnnBatchNormalizationForwardTraining(
cudnnContext handle,
@Cast("cudnnBatchNormMode_t") int mode,
@Const Pointer alpha,
@Const Pointer beta,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct bnScaleBiasMeanVarDesc,
@Const Pointer bnScale,
@Const Pointer bnBias,
double exponentialAverageFactor,
Pointer resultRunningMean,
Pointer resultRunningVariance,
double epsilon,
Pointer resultSaveMean,
Pointer resultSaveInvVariance );
/*
* Performs Batch Normalization during Inference:
* y[i] = bnScale[k]*(x[i]-estimatedMean[k])/sqrt(epsilon+estimatedVariance[k]) + bnBias[k]
* with bnScale, bnBias, runningMean, runningInvVariance tensors indexed
* according to spatial or per-activation mode. Refer to cudnnBatchNormalizationForwardTraining
* above for notes on function arguments.
*/
public static native @Cast("cudnnStatus_t") int cudnnBatchNormalizationForwardInference(
cudnnContext handle,
@Cast("cudnnBatchNormMode_t") int mode,
@Const Pointer alpha,
@Const Pointer beta,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct bnScaleBiasMeanVarDesc,
@Const Pointer bnScale,
@Const Pointer bnBias,
@Const Pointer estimatedMean,
@Const Pointer estimatedVariance,
double epsilon );
/* Performs backward pass of Batch Normalization layer. Returns x gradient,
* bnScale gradient and bnBias gradient */
public static native @Cast("cudnnStatus_t") int cudnnBatchNormalizationBackward(
cudnnContext handle,
@Cast("cudnnBatchNormMode_t") int mode,
@Const Pointer alphaDataDiff,
@Const Pointer betaDataDiff,
@Const Pointer alphaParamDiff,
@Const Pointer betaParamDiff,
cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct dxDesc,
Pointer dx,
cudnnTensorStruct dBnScaleBiasDesc,
@Const Pointer bnScale,
Pointer dBnScaleResult,
Pointer dBnBiasResult,
double epsilon,
@Const Pointer savedMean,
@Const Pointer savedInvVariance );
/* APIs for spatial transformer network*/
/** enum cudnnSamplerType_t */
public static final int
CUDNN_SAMPLER_BILINEAR = 0;
public static native @Cast("cudnnStatus_t") int cudnnCreateSpatialTransformerDescriptor(
@ByPtrPtr cudnnSpatialTransformerStruct stDesc);
public static native @Cast("cudnnStatus_t") int cudnnSetSpatialTransformerNdDescriptor(
cudnnSpatialTransformerStruct stDesc,
@Cast("cudnnSamplerType_t") int samplerType,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntPointer dimA);
public static native @Cast("cudnnStatus_t") int cudnnSetSpatialTransformerNdDescriptor(
cudnnSpatialTransformerStruct stDesc,
@Cast("cudnnSamplerType_t") int samplerType,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const IntBuffer dimA);
public static native @Cast("cudnnStatus_t") int cudnnSetSpatialTransformerNdDescriptor(
cudnnSpatialTransformerStruct stDesc,
@Cast("cudnnSamplerType_t") int samplerType,
@Cast("cudnnDataType_t") int dataType,
int nbDims,
@Const int[] dimA);
public static native @Cast("cudnnStatus_t") int cudnnDestroySpatialTransformerDescriptor(
cudnnSpatialTransformerStruct stDesc);
public static native @Cast("cudnnStatus_t") int cudnnSpatialTfGridGeneratorForward(
cudnnContext handle,
cudnnSpatialTransformerStruct stDesc,
@Const Pointer theta,
Pointer grid);
public static native @Cast("cudnnStatus_t") int cudnnSpatialTfGridGeneratorBackward(
cudnnContext handle,
cudnnSpatialTransformerStruct stDesc,
@Const Pointer dgrid,
Pointer dtheta);
public static native @Cast("cudnnStatus_t") int cudnnSpatialTfSamplerForward(
cudnnContext handle,
cudnnSpatialTransformerStruct stDesc,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer grid,
@Const Pointer beta,
cudnnTensorStruct yDesc,
Pointer y);
public static native @Cast("cudnnStatus_t") int cudnnSpatialTfSamplerBackward(
cudnnContext handle,
cudnnSpatialTransformerStruct stDesc,
@Const Pointer alpha,
cudnnTensorStruct xDesc,
@Const Pointer x,
@Const Pointer beta,
cudnnTensorStruct dxDesc,
Pointer dx,
@Const Pointer alphaDgrid,
cudnnTensorStruct dyDesc,
@Const Pointer dy,
@Const Pointer grid,
@Const Pointer betaDgrid,
Pointer dgrid);
@Opaque public static class cudnnDropoutStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnDropoutStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnDropoutStruct(Pointer p) { super(p); }
}
public static native @Cast("cudnnStatus_t") int cudnnCreateDropoutDescriptor(@ByPtrPtr cudnnDropoutStruct dropoutDesc);
public static native @Cast("cudnnStatus_t") int cudnnDestroyDropoutDescriptor(cudnnDropoutStruct dropoutDesc);
/*helper function to determine size of the states to be passed to cudnnSetDropoutDescriptor */
public static native @Cast("cudnnStatus_t") int cudnnDropoutGetStatesSize(cudnnContext handle, @Cast("size_t*") SizeTPointer sizeInBytes);
/*helper function to determine size of the reserve space to be passed to dropout forward/backward calls */
public static native @Cast("cudnnStatus_t") int cudnnDropoutGetReserveSpaceSize(cudnnTensorStruct xdesc, @Cast("size_t*") SizeTPointer sizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnSetDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
float dropout,
Pointer states,
@Cast("size_t") long stateSizeInBytes,
@Cast("unsigned long long") long seed);
// Restores the dropout descriptor to a previously saved-off state
public static native @Cast("cudnnStatus_t") int cudnnRestoreDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
float dropout,
Pointer states,
@Cast("size_t") long stateSizeInBytes,
@Cast("unsigned long long") long seed);
public static native @Cast("cudnnStatus_t") int cudnnGetDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
FloatPointer dropout,
@Cast("void**") PointerPointer states,
@Cast("unsigned long long*") LongPointer seed);
public static native @Cast("cudnnStatus_t") int cudnnGetDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
FloatPointer dropout,
@Cast("void**") @ByPtrPtr Pointer states,
@Cast("unsigned long long*") LongPointer seed);
public static native @Cast("cudnnStatus_t") int cudnnGetDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
FloatBuffer dropout,
@Cast("void**") @ByPtrPtr Pointer states,
@Cast("unsigned long long*") LongBuffer seed);
public static native @Cast("cudnnStatus_t") int cudnnGetDropoutDescriptor(cudnnDropoutStruct dropoutDesc,
cudnnContext handle,
float[] dropout,
@Cast("void**") @ByPtrPtr Pointer states,
@Cast("unsigned long long*") long[] seed);
public static native @Cast("cudnnStatus_t") int cudnnDropoutForward(cudnnContext handle,
cudnnDropoutStruct dropoutDesc,
cudnnTensorStruct xdesc,
@Const Pointer x,
cudnnTensorStruct ydesc,
Pointer y,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnDropoutBackward(cudnnContext handle,
cudnnDropoutStruct dropoutDesc,
cudnnTensorStruct dydesc,
@Const Pointer dy,
cudnnTensorStruct dxdesc,
Pointer dx,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
/* RNN API */
/** enum cudnnRNNMode_t */
public static final int
CUDNN_RNN_RELU = 0, /* Stock RNN with ReLu activation */
CUDNN_RNN_TANH = 1, /* Stock RNN with tanh activation */
CUDNN_LSTM = 2, /* LSTM with no peephole connections */
CUDNN_GRU = 3; /* Using h' = tanh(r * Uh(t-1) + Wx) and h = (1 - z) * h' + z * h(t-1); */
/** enum cudnnDirectionMode_t */
public static final int
CUDNN_UNIDIRECTIONAL = 0,
CUDNN_BIDIRECTIONAL = 1; /* Using output concatination at each step. Do we also want to support output sum? */
/** enum cudnnRNNInputMode_t */
public static final int
CUDNN_LINEAR_INPUT = 0,
CUDNN_SKIP_INPUT = 1;
/** enum cudnnRNNAlgo_t */
public static final int
CUDNN_RNN_ALGO_STANDARD = 0,
CUDNN_RNN_ALGO_PERSIST_STATIC = 1,
CUDNN_RNN_ALGO_PERSIST_DYNAMIC = 2,
CUDNN_RNN_ALGO_COUNT = 3;
@Opaque public static class cudnnAlgorithmStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnAlgorithmStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnAlgorithmStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnAlgorithmPerformanceStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnAlgorithmPerformanceStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnAlgorithmPerformanceStruct(Pointer p) { super(p); }
}
@Opaque public static class cudnnRNNStruct extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnRNNStruct() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnRNNStruct(Pointer p) { super(p); }
}
public static native @Cast("cudnnStatus_t") int cudnnCreateRNNDescriptor(@ByPtrPtr cudnnRNNStruct rnnDesc);
public static native @Cast("cudnnStatus_t") int cudnnDestroyRNNDescriptor(cudnnRNNStruct rnnDesc);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardInferenceAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardInferenceAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardInferenceAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardInferenceAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardTrainingAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardTrainingAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNForwardTrainingAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNForwardTrainingAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardDataAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardDataAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardDataAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") PointerPointer dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") PointerPointer dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") PointerPointer dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") PointerPointer dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardDataAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") PointerPointer dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") PointerPointer dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardWeightsAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardWeightsAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer count);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNBackwardWeightsAlgorithmMaxCount(
cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] count);
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
IntPointer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
IntBuffer returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnFindRNNBackwardWeightsAlgorithmEx( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
float findIntensity,
int requestedAlgoCount,
int[] returnedAlgoCount,
@ByPtrPtr cudnnAlgorithmPerformanceStruct perfResults,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes );
@Opaque public static class cudnnPersistentRNNPlan extends Pointer {
/** Empty constructor. Calls {@code super((Pointer)null)}. */
public cudnnPersistentRNNPlan() { super((Pointer)null); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnPersistentRNNPlan(Pointer p) { super(p); }
}
/* Expensive. Creates the plan for the specific settings. */
public static native @Cast("cudnnStatus_t") int cudnnCreatePersistentRNNPlan(cudnnRNNStruct rnnDesc,
int minibatch,
@Cast("const cudnnDataType_t") int dataType,
@ByPtrPtr cudnnPersistentRNNPlan plan);
/* Attaches the plan to the descriptor. */
public static native @Cast("cudnnStatus_t") int cudnnSetPersistentRNNPlan(cudnnRNNStruct rnnDesc,
cudnnPersistentRNNPlan plan);
public static native @Cast("cudnnStatus_t") int cudnnDestroyPersistentRNNPlan(cudnnPersistentRNNPlan plan);
public static native @Cast("cudnnStatus_t") int cudnnSetRNNDescriptor(cudnnContext handle,
cudnnRNNStruct rnnDesc,
int hiddenSize,
int numLayers,
cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t") int inputMode,
@Cast("cudnnDirectionMode_t") int direction,
@Cast("cudnnRNNMode_t") int mode,
@Cast("cudnnRNNAlgo_t") int algo,
@Cast("cudnnDataType_t") int dataType);
public static native @Cast("cudnnStatus_t") int cudnnSetRNNProjectionLayers(cudnnContext handle,
cudnnRNNStruct rnnDesc,
int recProjSize,
int outProjSize);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNProjectionLayers(cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer recProjSize,
IntPointer outProjSize);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNProjectionLayers(cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer recProjSize,
IntBuffer outProjSize);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNProjectionLayers(cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] recProjSize,
int[] outProjSize);
public static native @Cast("cudnnStatus_t") int cudnnSetRNNAlgorithmDescriptor(cudnnContext handle,
cudnnRNNStruct rnnDesc,
cudnnAlgorithmStruct algoDesc);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNDescriptor(cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntPointer hiddenSize,
IntPointer numLayers,
@ByPtrPtr cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t*") IntPointer inputMode,
@Cast("cudnnDirectionMode_t*") IntPointer direction,
@Cast("cudnnRNNMode_t*") IntPointer mode,
@Cast("cudnnRNNAlgo_t*") IntPointer algo,
@Cast("cudnnDataType_t*") IntPointer dataType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNDescriptor(cudnnContext handle,
cudnnRNNStruct rnnDesc,
IntBuffer hiddenSize,
IntBuffer numLayers,
@ByPtrPtr cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t*") IntBuffer inputMode,
@Cast("cudnnDirectionMode_t*") IntBuffer direction,
@Cast("cudnnRNNMode_t*") IntBuffer mode,
@Cast("cudnnRNNAlgo_t*") IntBuffer algo,
@Cast("cudnnDataType_t*") IntBuffer dataType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNDescriptor(cudnnContext handle,
cudnnRNNStruct rnnDesc,
int[] hiddenSize,
int[] numLayers,
@ByPtrPtr cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t*") int[] inputMode,
@Cast("cudnnDirectionMode_t*") int[] direction,
@Cast("cudnnRNNMode_t*") int[] mode,
@Cast("cudnnRNNAlgo_t*") int[] algo,
@Cast("cudnnDataType_t*") int[] dataType);
public static native @Cast("cudnnStatus_t") int cudnnSetRNNMatrixMathType(cudnnRNNStruct rnnDesc, @Cast("cudnnMathType_t") int mType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNMatrixMathType(cudnnRNNStruct rnnDesc, @Cast("cudnnMathType_t*") IntPointer mType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNMatrixMathType(cudnnRNNStruct rnnDesc, @Cast("cudnnMathType_t*") IntBuffer mType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNMatrixMathType(cudnnRNNStruct rnnDesc, @Cast("cudnnMathType_t*") int[] mType);
/* dataType in the RNN descriptor is used to determine math precision */
/* dataType in weight descriptors and input descriptors is used to describe storage */
public static native @Cast("cudnnStatus_t") int cudnnGetRNNWorkspaceSize( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Cast("size_t*") SizeTPointer sizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNWorkspaceSize( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Cast("size_t*") SizeTPointer sizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNTrainingReserveSize( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Cast("size_t*") SizeTPointer sizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNTrainingReserveSize( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Cast("size_t*") SizeTPointer sizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNParamsSize(cudnnContext handle,
cudnnRNNStruct rnnDesc,
cudnnTensorStruct xDesc,
@Cast("size_t*") SizeTPointer sizeInBytes,
@Cast("cudnnDataType_t") int dataType);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNLinLayerMatrixParams( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int pseudoLayer,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
@Const Pointer w,
int linLayerID,
cudnnFilterStruct linLayerMatDesc,
@Cast("void**") PointerPointer linLayerMat);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNLinLayerMatrixParams( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int pseudoLayer,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
@Const Pointer w,
int linLayerID,
cudnnFilterStruct linLayerMatDesc,
@Cast("void**") @ByPtrPtr Pointer linLayerMat);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNLinLayerBiasParams( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int pseudoLayer,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
@Const Pointer w,
int linLayerID,
cudnnFilterStruct linLayerBiasDesc,
@Cast("void**") PointerPointer linLayerBias);
public static native @Cast("cudnnStatus_t") int cudnnGetRNNLinLayerBiasParams( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int pseudoLayer,
cudnnTensorStruct xDesc,
cudnnFilterStruct wDesc,
@Const Pointer w,
int linLayerID,
cudnnFilterStruct linLayerBiasDesc,
@Cast("void**") @ByPtrPtr Pointer linLayerBias);
public static native @Cast("cudnnStatus_t") int cudnnRNNForwardInference( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNForwardInference( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNForwardTraining( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNForwardTraining( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
cudnnFilterStruct wDesc,
@Const Pointer w,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
Pointer y,
cudnnTensorStruct hyDesc,
Pointer hy,
cudnnTensorStruct cyDesc,
Pointer cy,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNBackwardData( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNBackwardData( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
@Cast("cudnnTensorStruct**") PointerPointer dyDesc,
@Const Pointer dy,
cudnnTensorStruct dhyDesc,
@Const Pointer dhy,
cudnnTensorStruct dcyDesc,
@Const Pointer dcy,
cudnnFilterStruct wDesc,
@Const Pointer w,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
cudnnTensorStruct cxDesc,
@Const Pointer cx,
@Cast("cudnnTensorStruct**") PointerPointer dxDesc,
Pointer dx,
cudnnTensorStruct dhxDesc,
Pointer dhx,
cudnnTensorStruct dcxDesc,
Pointer dcx,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNBackwardWeights( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") @ByPtrPtr cudnnTensorStruct yDesc,
@Const Pointer y,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRNNBackwardWeights( cudnnContext handle,
cudnnRNNStruct rnnDesc,
int seqLength,
@Cast("cudnnTensorStruct**") PointerPointer xDesc,
@Const Pointer x,
cudnnTensorStruct hxDesc,
@Const Pointer hx,
@Cast("cudnnTensorStruct**") PointerPointer yDesc,
@Const Pointer y,
@Const Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes,
cudnnFilterStruct dwDesc,
Pointer dw,
@Const Pointer reserveSpace,
@Cast("size_t") long reserveSpaceSizeInBytes);
/** enum cudnnCTCLossAlgo_t */
public static final int
CUDNN_CTC_LOSS_ALGO_DETERMINISTIC = 0,
CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC = 1;
/*
* Create an instance of a CTC (Connectionist Temporal Classification) loss descriptor
*/
public static native @Cast("cudnnStatus_t") int cudnnCreateCTCLossDescriptor( @ByPtrPtr cudnnCTCLossStruct ctcLossDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetCTCLossDescriptor(
cudnnCTCLossStruct ctcLossDesc,
@Cast("cudnnDataType_t") int compType );
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossDescriptor(
cudnnCTCLossStruct ctcLossDesc,
@Cast("cudnnDataType_t*") IntPointer compType );
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossDescriptor(
cudnnCTCLossStruct ctcLossDesc,
@Cast("cudnnDataType_t*") IntBuffer compType );
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossDescriptor(
cudnnCTCLossStruct ctcLossDesc,
@Cast("cudnnDataType_t*") int[] compType );
public static native @Cast("cudnnStatus_t") int cudnnDestroyCTCLossDescriptor( cudnnCTCLossStruct ctcLossDesc );
/* return the ctc costs and gradients, given the probabilities and labels */
public static native @Cast("cudnnStatus_t") int cudnnCTCLoss( cudnnContext handle,
cudnnTensorStruct probsDesc,
@Const Pointer probs,
@Const IntPointer labels,
@Const IntPointer labelLengths,
@Const IntPointer inputLengths,
Pointer costs,
cudnnTensorStruct gradientsDesc,
@Const Pointer gradients,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnCTCLoss( cudnnContext handle,
cudnnTensorStruct probsDesc,
@Const Pointer probs,
@Const IntBuffer labels,
@Const IntBuffer labelLengths,
@Const IntBuffer inputLengths,
Pointer costs,
cudnnTensorStruct gradientsDesc,
@Const Pointer gradients,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnCTCLoss( cudnnContext handle,
cudnnTensorStruct probsDesc,
@Const Pointer probs,
@Const int[] labels,
@Const int[] labelLengths,
@Const int[] inputLengths,
Pointer costs,
cudnnTensorStruct gradientsDesc,
@Const Pointer gradients,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
Pointer workspace,
@Cast("size_t") long workSpaceSizeInBytes); /* the workspace size needed */
/* return the workspace size needed for ctc */
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossWorkspaceSize(
cudnnContext handle,
cudnnTensorStruct probsDesc,
cudnnTensorStruct gradientsDesc,
@Const IntPointer labels,
@Const IntPointer labelLengths,
@Const IntPointer inputLengths,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
@Cast("size_t*") SizeTPointer sizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossWorkspaceSize(
cudnnContext handle,
cudnnTensorStruct probsDesc,
cudnnTensorStruct gradientsDesc,
@Const IntBuffer labels,
@Const IntBuffer labelLengths,
@Const IntBuffer inputLengths,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
@Cast("size_t*") SizeTPointer sizeInBytes );
public static native @Cast("cudnnStatus_t") int cudnnGetCTCLossWorkspaceSize(
cudnnContext handle,
cudnnTensorStruct probsDesc,
cudnnTensorStruct gradientsDesc,
@Const int[] labels,
@Const int[] labelLengths,
@Const int[] inputLengths,
@Cast("cudnnCTCLossAlgo_t") int algo,
cudnnCTCLossStruct ctcLossDesc,
@Cast("size_t*") SizeTPointer sizeInBytes ); /* pointer to the returned workspace size */
public static class cudnnAlgorithm_t extends Pointer {
static { Loader.load(); }
/** Default native constructor. */
public cudnnAlgorithm_t() { super((Pointer)null); allocate(); }
/** Native array allocator. Access with {@link Pointer#position(long)}. */
public cudnnAlgorithm_t(long size) { super((Pointer)null); allocateArray(size); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnAlgorithm_t(Pointer p) { super(p); }
private native void allocate();
private native void allocateArray(long size);
@Override public cudnnAlgorithm_t position(long position) {
return (cudnnAlgorithm_t)super.position(position);
}
@Name("algo.convFwdAlgo") public native @Cast("cudnnConvolutionFwdAlgo_t") int algo_convFwdAlgo(); public native cudnnAlgorithm_t algo_convFwdAlgo(int algo_convFwdAlgo);
@Name("algo.convBwdFilterAlgo") public native @Cast("cudnnConvolutionBwdFilterAlgo_t") int algo_convBwdFilterAlgo(); public native cudnnAlgorithm_t algo_convBwdFilterAlgo(int algo_convBwdFilterAlgo);
@Name("algo.convBwdDataAlgo") public native @Cast("cudnnConvolutionBwdDataAlgo_t") int algo_convBwdDataAlgo(); public native cudnnAlgorithm_t algo_convBwdDataAlgo(int algo_convBwdDataAlgo);
@Name("algo.RNNAlgo") public native @Cast("cudnnRNNAlgo_t") int algo_RNNAlgo(); public native cudnnAlgorithm_t algo_RNNAlgo(int algo_RNNAlgo);
@Name("algo.CTCLossAlgo") public native @Cast("cudnnCTCLossAlgo_t") int algo_CTCLossAlgo(); public native cudnnAlgorithm_t algo_CTCLossAlgo(int algo_CTCLossAlgo);
}
public static native @Cast("cudnnStatus_t") int cudnnCreateAlgorithmDescriptor(
@ByPtrPtr cudnnAlgorithmStruct algoDesc );
public static native @Cast("cudnnStatus_t") int cudnnSetAlgorithmDescriptor(
cudnnAlgorithmStruct algoDesc,
@ByVal cudnnAlgorithm_t algorithm);
public static native @Cast("cudnnStatus_t") int cudnnGetAlgorithmDescriptor(
cudnnAlgorithmStruct algoDesc,
cudnnAlgorithm_t algorithm);
public static native @Cast("cudnnStatus_t") int cudnnCopyAlgorithmDescriptor(
cudnnAlgorithmStruct src,
cudnnAlgorithmStruct dest);
public static native @Cast("cudnnStatus_t") int cudnnDestroyAlgorithmDescriptor(
cudnnAlgorithmStruct algoDesc );
public static native @Cast("cudnnStatus_t") int cudnnCreateAlgorithmPerformance(
@ByPtrPtr cudnnAlgorithmPerformanceStruct algoPerf,
int numberToCreate );
public static native @Cast("cudnnStatus_t") int cudnnSetAlgorithmPerformance(
cudnnAlgorithmPerformanceStruct algoPerf,
cudnnAlgorithmStruct algoDesc,
@Cast("cudnnStatus_t") int status,
float time,
@Cast("size_t") long memory );
public static native @Cast("cudnnStatus_t") int cudnnGetAlgorithmPerformance(
cudnnAlgorithmPerformanceStruct algoPerf,
@ByPtrPtr cudnnAlgorithmStruct algoDesc,
@Cast("cudnnStatus_t*") IntPointer status,
FloatPointer time,
@Cast("size_t*") SizeTPointer memory );
public static native @Cast("cudnnStatus_t") int cudnnGetAlgorithmPerformance(
cudnnAlgorithmPerformanceStruct algoPerf,
@ByPtrPtr cudnnAlgorithmStruct algoDesc,
@Cast("cudnnStatus_t*") IntBuffer status,
FloatBuffer time,
@Cast("size_t*") SizeTPointer memory );
public static native @Cast("cudnnStatus_t") int cudnnGetAlgorithmPerformance(
cudnnAlgorithmPerformanceStruct algoPerf,
@ByPtrPtr cudnnAlgorithmStruct algoDesc,
@Cast("cudnnStatus_t*") int[] status,
float[] time,
@Cast("size_t*") SizeTPointer memory );
public static native @Cast("cudnnStatus_t") int cudnnDestroyAlgorithmPerformance(
@ByPtrPtr cudnnAlgorithmPerformanceStruct algoPerf,
int numberToDestroy);
public static native @Cast("cudnnStatus_t") int cudnnGetAlgorithmSpaceSize(
cudnnContext handle,
cudnnAlgorithmStruct algoDesc,
@Cast("size_t*") SizeTPointer algoSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnSaveAlgorithm(
cudnnContext handle,
cudnnAlgorithmStruct algoDesc,
Pointer algoSpace,
@Cast("size_t") long algoSpaceSizeInBytes);
public static native @Cast("cudnnStatus_t") int cudnnRestoreAlgorithm(
cudnnContext handle,
Pointer algoSpace,
@Cast("size_t") long algoSpaceSizeInBytes,
cudnnAlgorithmStruct algoDesc);
/** enum cudnnSeverity_t */
public static final int
CUDNN_SEV_FATAL = 0,
CUDNN_SEV_ERROR = 1,
CUDNN_SEV_WARNING = 2,
CUDNN_SEV_INFO = 3;
/* Message masks to be used with cudnnSetCallback() */
public static final long CUDNN_SEV_ERROR_EN = (1L << CUDNN_SEV_ERROR);
public static final long CUDNN_SEV_WARNING_EN = (1L << CUDNN_SEV_WARNING);
public static final long CUDNN_SEV_INFO_EN = (1L << CUDNN_SEV_INFO);
/* struct containing useful informaiton for each API call */
public static class cudnnDebug_t extends Pointer {
static { Loader.load(); }
/** Default native constructor. */
public cudnnDebug_t() { super((Pointer)null); allocate(); }
/** Native array allocator. Access with {@link Pointer#position(long)}. */
public cudnnDebug_t(long size) { super((Pointer)null); allocateArray(size); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnDebug_t(Pointer p) { super(p); }
private native void allocate();
private native void allocateArray(long size);
@Override public cudnnDebug_t position(long position) {
return (cudnnDebug_t)super.position(position);
}
public native @Cast("unsigned") int cudnn_version(); public native cudnnDebug_t cudnn_version(int cudnn_version);
public native @Cast("cudnnStatus_t") int cudnnStatus(); public native cudnnDebug_t cudnnStatus(int cudnnStatus);
public native @Cast("unsigned") int time_sec(); public native cudnnDebug_t time_sec(int time_sec); /* epoch time in seconds */
public native @Cast("unsigned") int time_usec(); public native cudnnDebug_t time_usec(int time_usec); /* microseconds part of epoch time */
public native @Cast("unsigned") int time_delta(); public native cudnnDebug_t time_delta(int time_delta); /* time since start in seconds */
public native cudnnContext handle(); public native cudnnDebug_t handle(cudnnContext handle); /* cudnn handle */
public native CUstream_st stream(); public native cudnnDebug_t stream(CUstream_st stream); /* cuda stream ID */
public native @Cast("unsigned long long") long pid(); public native cudnnDebug_t pid(long pid); /* process ID */
public native @Cast("unsigned long long") long tid(); public native cudnnDebug_t tid(long tid); /* thread ID */
public native int reserved(int i); public native cudnnDebug_t reserved(int i, int reserved);
@MemberGetter public native IntPointer reserved(); /* reserved for future use */
}
public static class cudnnCallback_t extends FunctionPointer {
static { Loader.load(); }
/** Pointer cast constructor. Invokes {@link Pointer#Pointer(Pointer)}. */
public cudnnCallback_t(Pointer p) { super(p); }
protected cudnnCallback_t() { allocate(); }
private native void allocate();
public native void call(@Cast("cudnnSeverity_t") int sev, Pointer udata, @Const cudnnDebug_t dbg, @Cast("const char*") BytePointer msg);
}
public static native @Cast("cudnnStatus_t") int cudnnSetCallback(
@Cast("unsigned") int mask,
Pointer udata,
cudnnCallback_t fptr);
public static native @Cast("cudnnStatus_t") int cudnnGetCallback(
@Cast("unsigned*") IntPointer mask,
@Cast("void**") PointerPointer udata,
@ByPtrPtr cudnnCallback_t fptr);
public static native @Cast("cudnnStatus_t") int cudnnGetCallback(
@Cast("unsigned*") IntPointer mask,
@Cast("void**") @ByPtrPtr Pointer udata,
@ByPtrPtr cudnnCallback_t fptr);
public static native @Cast("cudnnStatus_t") int cudnnGetCallback(
@Cast("unsigned*") IntBuffer mask,
@Cast("void**") @ByPtrPtr Pointer udata,
@ByPtrPtr cudnnCallback_t fptr);
public static native @Cast("cudnnStatus_t") int cudnnGetCallback(
@Cast("unsigned*") int[] mask,
@Cast("void**") @ByPtrPtr Pointer udata,
@ByPtrPtr cudnnCallback_t fptr);
/* DEPRECATED routines to be removed next release :
User should use the non-suffixed version (which has the API and functionality of _v6 version)
Routines with _v5 suffix has the functionality of the non-suffixed routines in the CUDNN V6
*/
public static native @Cast("cudnnStatus_t") int cudnnSetRNNDescriptor_v6(cudnnContext handle,
cudnnRNNStruct rnnDesc,
int hiddenSize,
int numLayers,
cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t") int inputMode,
@Cast("cudnnDirectionMode_t") int direction,
@Cast("cudnnRNNMode_t") int mode,
@Cast("cudnnRNNAlgo_t") int algo,
@Cast("cudnnDataType_t") int dataType);
public static native @Cast("cudnnStatus_t") int cudnnSetRNNDescriptor_v5(cudnnRNNStruct rnnDesc,
int hiddenSize,
int numLayers,
cudnnDropoutStruct dropoutDesc,
@Cast("cudnnRNNInputMode_t") int inputMode,
@Cast("cudnnDirectionMode_t") int direction,
@Cast("cudnnRNNMode_t") int mode,
@Cast("cudnnDataType_t") int dataType);
// #if defined (__cplusplus)
// #endif
// #endif /* CUDNN_H_ */
}