#![cfg_attr(feature = "no-std", no_std)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
#[cfg(feature = "no-std")]
extern crate alloc;
#[cfg(feature = "no-std")]
extern crate no_std_compat as std;
pub use self::libraryPropertyType_t as libraryPropertyType;
pub type cudaGraph_t = *mut CUgraph_st;
pub type cudaStream_t = *mut CUstream_st;
pub type cudnnActivationDescriptor_t = *mut cudnnActivationStruct;
pub type cudnnAttnDescriptor_t = *mut cudnnAttnStruct;
pub type cudnnBackendDescriptor_t = *mut ::core::ffi::c_void;
pub type cudnnCTCLossDescriptor_t = *mut cudnnCTCLossStruct;
pub type cudnnCallback_t = ::core::option::Option<
unsafe extern "C" fn(
sev: cudnnSeverity_t,
udata: *mut ::core::ffi::c_void,
dbg: *const cudnnDebug_t,
msg: *const ::core::ffi::c_char,
),
>;
pub type cudnnConvolutionBwdDataAlgoPerf_t = cudnnConvolutionBwdDataAlgoPerfStruct;
pub type cudnnConvolutionBwdFilterAlgoPerf_t = cudnnConvolutionBwdFilterAlgoPerfStruct;
pub type cudnnConvolutionDescriptor_t = *mut cudnnConvolutionStruct;
pub type cudnnConvolutionFwdAlgoPerf_t = cudnnConvolutionFwdAlgoPerfStruct;
pub type cudnnDebug_t = cudnnDebugStruct;
pub type cudnnDropoutDescriptor_t = *mut cudnnDropoutStruct;
pub type cudnnFilterDescriptor_t = *mut cudnnFilterStruct;
pub type cudnnFraction_t = cudnnFractionStruct;
pub type cudnnFusedOpsConstParamPack_t = *mut cudnnFusedOpsConstParamStruct;
pub type cudnnFusedOpsPlan_t = *mut cudnnFusedOpsPlanStruct;
pub type cudnnFusedOpsVariantParamPack_t = *mut cudnnFusedOpsVariantParamStruct;
pub type cudnnHandle_t = *mut cudnnContext;
pub type cudnnLRNDescriptor_t = *mut cudnnLRNStruct;
pub type cudnnOpTensorDescriptor_t = *mut cudnnOpTensorStruct;
pub type cudnnPoolingDescriptor_t = *mut cudnnPoolingStruct;
pub type cudnnRNNDataDescriptor_t = *mut cudnnRNNDataStruct;
pub type cudnnRNNDescriptor_t = *mut cudnnRNNStruct;
pub type cudnnReduceTensorDescriptor_t = *mut cudnnReduceTensorStruct;
pub type cudnnSeqDataDescriptor_t = *mut cudnnSeqDataStruct;
pub type cudnnSpatialTransformerDescriptor_t = *mut cudnnSpatialTransformerStruct;
pub type cudnnTensorDescriptor_t = *mut cudnnTensorStruct;
pub type cudnnTensorTransformDescriptor_t = *mut cudnnTensorTransformStruct;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnActivationMode_t {
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,
CUDNN_ACTIVATION_SWISH = 6,
}
#[cfg(any(
feature = "cuda-11040",
feature = "cuda-11050",
feature = "cuda-11060",
feature = "cuda-11070",
feature = "cuda-11080"
))]
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendAttributeName_t {
CUDNN_ATTR_POINTWISE_MODE = 0,
CUDNN_ATTR_POINTWISE_MATH_PREC = 1,
CUDNN_ATTR_POINTWISE_NAN_PROPAGATION = 2,
CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP = 3,
CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP = 4,
CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE = 5,
CUDNN_ATTR_POINTWISE_ELU_ALPHA = 6,
CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA = 7,
CUDNN_ATTR_POINTWISE_SWISH_BETA = 8,
CUDNN_ATTR_POINTWISE_AXIS = 9,
CUDNN_ATTR_CONVOLUTION_COMP_TYPE = 100,
CUDNN_ATTR_CONVOLUTION_CONV_MODE = 101,
CUDNN_ATTR_CONVOLUTION_DILATIONS = 102,
CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES = 103,
CUDNN_ATTR_CONVOLUTION_POST_PADDINGS = 104,
CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS = 105,
CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS = 106,
CUDNN_ATTR_ENGINEHEUR_MODE = 200,
CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH = 201,
CUDNN_ATTR_ENGINEHEUR_RESULTS = 202,
CUDNN_ATTR_ENGINEHEUR_SM_COUNT_TARGET = 203,
CUDNN_ATTR_ENGINEHEUR_DEVICEPROP = 204,
CUDNN_ATTR_ENGINECFG_ENGINE = 300,
CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO = 301,
CUDNN_ATTR_ENGINECFG_KNOB_CHOICES = 302,
CUDNN_ATTR_ENGINECFG_WORKSPACE_SIZE = 303,
CUDNN_ATTR_ENGINECFG_SHARED_MEMORY_USED = 304,
CUDNN_ATTR_EXECUTION_PLAN_HANDLE = 400,
CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG = 401,
CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE = 402,
CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS = 403,
CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS = 404,
CUDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION = 405,
CUDNN_ATTR_EXECUTION_PLAN_KERNEL_CACHE = 406,
CUDNN_ATTR_EXECUTION_PLAN_DEVICEPROP = 407,
CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID = 500,
CUDNN_ATTR_INTERMEDIATE_INFO_SIZE = 501,
CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS = 502,
CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES = 503,
CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE = 600,
CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE = 601,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA = 700,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA = 701,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC = 702,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W = 703,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X = 704,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y = 705,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA = 706,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA = 707,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC = 708,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W = 709,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX = 710,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY = 711,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA = 712,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA = 713,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC = 714,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW = 715,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X = 716,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY = 717,
CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR = 750,
CUDNN_ATTR_OPERATION_POINTWISE_XDESC = 751,
CUDNN_ATTR_OPERATION_POINTWISE_BDESC = 752,
CUDNN_ATTR_OPERATION_POINTWISE_YDESC = 753,
CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1 = 754,
CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2 = 755,
CUDNN_ATTR_OPERATION_POINTWISE_DXDESC = 756,
CUDNN_ATTR_OPERATION_POINTWISE_DYDESC = 757,
CUDNN_ATTR_OPERATION_POINTWISE_TDESC = 758,
CUDNN_ATTR_OPERATION_GENSTATS_MODE = 770,
CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC = 771,
CUDNN_ATTR_OPERATION_GENSTATS_XDESC = 772,
CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC = 773,
CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC = 774,
CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE = 780,
CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC = 781,
CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC = 782,
CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC = 783,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC = 784,
CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC = 785,
CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC = 786,
CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC = 787,
CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC = 788,
CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC = 789,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC = 790,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC = 791,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC = 792,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC = 793,
CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC = 794,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC = 795,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC = 796,
CUDNN_ATTR_OPERATIONGRAPH_HANDLE = 800,
CUDNN_ATTR_OPERATIONGRAPH_OPS = 801,
CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT = 802,
CUDNN_ATTR_OPERATIONGRAPH_IS_DYNAMIC_SHAPE_ENABLED = 803,
CUDNN_ATTR_OPERATIONGRAPH_IS_SAME_TOPOLOGY = 804,
CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT = 900,
CUDNN_ATTR_TENSOR_DATA_TYPE = 901,
CUDNN_ATTR_TENSOR_DIMENSIONS = 902,
CUDNN_ATTR_TENSOR_STRIDES = 903,
CUDNN_ATTR_TENSOR_VECTOR_COUNT = 904,
CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION = 905,
CUDNN_ATTR_TENSOR_UNIQUE_ID = 906,
CUDNN_ATTR_TENSOR_IS_VIRTUAL = 907,
CUDNN_ATTR_TENSOR_IS_BY_VALUE = 908,
CUDNN_ATTR_TENSOR_REORDERING_MODE = 909,
CUDNN_ATTR_TENSOR_RAGGED_OFFSET_DESC = 913,
CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS = 1000,
CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS = 1001,
CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES = 1002,
CUDNN_ATTR_VARIANT_PACK_WORKSPACE = 1003,
CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID = 1100,
CUDNN_ATTR_LAYOUT_INFO_TYPES = 1101,
CUDNN_ATTR_KNOB_INFO_TYPE = 1200,
CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE = 1201,
CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE = 1202,
CUDNN_ATTR_KNOB_INFO_STRIDE = 1203,
CUDNN_ATTR_ENGINE_OPERATION_GRAPH = 1300,
CUDNN_ATTR_ENGINE_GLOBAL_INDEX = 1301,
CUDNN_ATTR_ENGINE_KNOB_INFO = 1302,
CUDNN_ATTR_ENGINE_NUMERICAL_NOTE = 1303,
CUDNN_ATTR_ENGINE_LAYOUT_INFO = 1304,
CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE = 1305,
CUDNN_ATTR_ENGINE_SM_COUNT_TARGET = 1306,
CUDNN_ATTR_ENGINE_DEVICEPROP = 1307,
CUDNN_ATTR_MATMUL_COMP_TYPE = 1500,
CUDNN_ATTR_MATMUL_PADDING_VALUE = 1503,
CUDNN_ATTR_OPERATION_MATMUL_ADESC = 1520,
CUDNN_ATTR_OPERATION_MATMUL_BDESC = 1521,
CUDNN_ATTR_OPERATION_MATMUL_CDESC = 1522,
CUDNN_ATTR_OPERATION_MATMUL_DESC = 1523,
CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT = 1524,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC = 1525,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC = 1526,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC = 1527,
CUDNN_ATTR_REDUCTION_OPERATOR = 1600,
CUDNN_ATTR_REDUCTION_COMP_TYPE = 1601,
CUDNN_ATTR_OPERATION_REDUCTION_XDESC = 1610,
CUDNN_ATTR_OPERATION_REDUCTION_YDESC = 1611,
CUDNN_ATTR_OPERATION_REDUCTION_DESC = 1612,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC = 1620,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC = 1621,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC = 1622,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC = 1623,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC = 1624,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC = 1625,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC = 1626,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC = 1627,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC = 1628,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC = 1629,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS = 1630,
CUDNN_ATTR_RESAMPLE_MODE = 1700,
CUDNN_ATTR_RESAMPLE_COMP_TYPE = 1701,
CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS = 1702,
CUDNN_ATTR_RESAMPLE_POST_PADDINGS = 1703,
CUDNN_ATTR_RESAMPLE_PRE_PADDINGS = 1704,
CUDNN_ATTR_RESAMPLE_STRIDES = 1705,
CUDNN_ATTR_RESAMPLE_WINDOW_DIMS = 1706,
CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION = 1707,
CUDNN_ATTR_RESAMPLE_PADDING_MODE = 1708,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC = 1710,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC = 1711,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC = 1712,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA = 1713,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA = 1714,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC = 1716,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC = 1720,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC = 1721,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC = 1722,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA = 1723,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA = 1724,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC = 1725,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_XDESC = 1726,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_YDESC = 1727,
CUDNN_ATTR_OPERATION_CONCAT_AXIS = 1800,
CUDNN_ATTR_OPERATION_CONCAT_INPUT_DESCS = 1801,
CUDNN_ATTR_OPERATION_CONCAT_INPLACE_INDEX = 1802,
CUDNN_ATTR_OPERATION_CONCAT_OUTPUT_DESC = 1803,
CUDNN_ATTR_OPERATION_SIGNAL_MODE = 1900,
CUDNN_ATTR_OPERATION_SIGNAL_FLAGDESC = 1901,
CUDNN_ATTR_OPERATION_SIGNAL_VALUE = 1902,
CUDNN_ATTR_OPERATION_SIGNAL_XDESC = 1903,
CUDNN_ATTR_OPERATION_SIGNAL_YDESC = 1904,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_CONTAINER_DESC = 1950,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_YDESC = 1951,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_SEQUENCE_DESC = 1952,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_PAGE_TABLE_DESC = 1953,
CUDNN_ATTR_OPERATION_NORM_FWD_MODE = 2000,
CUDNN_ATTR_OPERATION_NORM_FWD_PHASE = 2001,
CUDNN_ATTR_OPERATION_NORM_FWD_XDESC = 2002,
CUDNN_ATTR_OPERATION_NORM_FWD_MEAN_DESC = 2003,
CUDNN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC = 2004,
CUDNN_ATTR_OPERATION_NORM_FWD_SCALE_DESC = 2005,
CUDNN_ATTR_OPERATION_NORM_FWD_BIAS_DESC = 2006,
CUDNN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC = 2007,
CUDNN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC = 2008,
CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC = 2009,
CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC = 2010,
CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC = 2011,
CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC = 2012,
CUDNN_ATTR_OPERATION_NORM_FWD_YDESC = 2013,
CUDNN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS = 2014,
CUDNN_ATTR_OPERATION_NORM_BWD_MODE = 2100,
CUDNN_ATTR_OPERATION_NORM_BWD_XDESC = 2101,
CUDNN_ATTR_OPERATION_NORM_BWD_MEAN_DESC = 2102,
CUDNN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC = 2103,
CUDNN_ATTR_OPERATION_NORM_BWD_DYDESC = 2104,
CUDNN_ATTR_OPERATION_NORM_BWD_SCALE_DESC = 2105,
CUDNN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC = 2106,
CUDNN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC = 2107,
CUDNN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC = 2108,
CUDNN_ATTR_OPERATION_NORM_BWD_DXDESC = 2109,
CUDNN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS = 2110,
CUDNN_ATTR_OPERATION_RESHAPE_XDESC = 2200,
CUDNN_ATTR_OPERATION_RESHAPE_YDESC = 2201,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_XDESC = 2250,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_YDESC = 2251,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_LOWER_BANDWIDTH = 2252,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_UPPER_BANDWIDTH = 2253,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_AXIS = 2254,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_PAD_VALUE = 2255,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_KV_TOKEN_OFFSET_DESC = 2256,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_XDESC = 2270,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_YDESC = 2271,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_LOWER_BANDWIDTH = 2272,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_UPPER_BANDWIDTH = 2273,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_AXIS = 2274,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_PAD_VALUE = 2275,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MAX_TOKEN_VALUE = 2276,
CUDNN_ATTR_RNG_DISTRIBUTION = 2300,
CUDNN_ATTR_RNG_NORMAL_DIST_MEAN = 2301,
CUDNN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION = 2302,
CUDNN_ATTR_RNG_UNIFORM_DIST_MAXIMUM = 2303,
CUDNN_ATTR_RNG_UNIFORM_DIST_MINIMUM = 2304,
CUDNN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY = 2305,
CUDNN_ATTR_OPERATION_RNG_YDESC = 2310,
CUDNN_ATTR_OPERATION_RNG_SEED = 2311,
CUDNN_ATTR_OPERATION_RNG_DESC = 2312,
CUDNN_ATTR_OPERATION_RNG_OFFSET_DESC = 2313,
CUDNN_ATTR_KERNEL_CACHE_OPERATION_GRAPH = 2400,
CUDNN_ATTR_KERNEL_CACHE_IS_ENGINECFG_KERNEL_CACHED = 2401,
CUDNN_ATTR_KERNEL_CACHE_JSON_REPRESENTATION = 2402,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_XDESC = 2500,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_YDESC = 2501,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_SCALE_DESC = 2502,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_MATH_PREC = 2503,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_BLOCK_SIZE = 2504,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_XDESC = 2600,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_SCALE_DESC = 2601,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_YDESC = 2602,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_MATH_PREC = 2603,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_BLOCK_SIZE = 2604,
CUDNN_ATTR_DEVICEPROP_DEVICE_ID = 2700,
CUDNN_ATTR_DEVICEPROP_HANDLE = 2701,
CUDNN_ATTR_DEVICEPROP_JSON_REPRESENTATION = 2702,
}
#[cfg(any(
feature = "cuda-12000",
feature = "cuda-12010",
feature = "cuda-12020",
feature = "cuda-12030",
feature = "cuda-12040",
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000",
feature = "cuda-13010",
feature = "cuda-13020"
))]
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendAttributeName_t {
CUDNN_ATTR_POINTWISE_MODE = 0,
CUDNN_ATTR_POINTWISE_MATH_PREC = 1,
CUDNN_ATTR_POINTWISE_NAN_PROPAGATION = 2,
CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP = 3,
CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP = 4,
CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE = 5,
CUDNN_ATTR_POINTWISE_ELU_ALPHA = 6,
CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA = 7,
CUDNN_ATTR_POINTWISE_SWISH_BETA = 8,
CUDNN_ATTR_POINTWISE_AXIS = 9,
CUDNN_ATTR_CONVOLUTION_COMP_TYPE = 100,
CUDNN_ATTR_CONVOLUTION_CONV_MODE = 101,
CUDNN_ATTR_CONVOLUTION_DILATIONS = 102,
CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES = 103,
CUDNN_ATTR_CONVOLUTION_POST_PADDINGS = 104,
CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS = 105,
CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS = 106,
CUDNN_ATTR_ENGINEHEUR_MODE = 200,
CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH = 201,
CUDNN_ATTR_ENGINEHEUR_RESULTS = 202,
CUDNN_ATTR_ENGINEHEUR_SM_COUNT_TARGET = 203,
CUDNN_ATTR_ENGINEHEUR_DEVICEPROP = 204,
CUDNN_ATTR_ENGINECFG_ENGINE = 300,
CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO = 301,
CUDNN_ATTR_ENGINECFG_KNOB_CHOICES = 302,
CUDNN_ATTR_ENGINECFG_WORKSPACE_SIZE = 303,
CUDNN_ATTR_ENGINECFG_SHARED_MEMORY_USED = 304,
CUDNN_ATTR_EXECUTION_PLAN_HANDLE = 400,
CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG = 401,
CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE = 402,
CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS = 403,
CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS = 404,
CUDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION = 405,
CUDNN_ATTR_EXECUTION_PLAN_KERNEL_CACHE = 406,
CUDNN_ATTR_EXECUTION_PLAN_DEVICEPROP = 407,
CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID = 500,
CUDNN_ATTR_INTERMEDIATE_INFO_SIZE = 501,
CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS = 502,
CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES = 503,
CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE = 600,
CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE = 601,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA = 700,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA = 701,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC = 702,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W = 703,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X = 704,
CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y = 705,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA = 706,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA = 707,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC = 708,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W = 709,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX = 710,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY = 711,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA = 712,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA = 713,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC = 714,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW = 715,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X = 716,
CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY = 717,
CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR = 750,
CUDNN_ATTR_OPERATION_POINTWISE_XDESC = 751,
CUDNN_ATTR_OPERATION_POINTWISE_BDESC = 752,
CUDNN_ATTR_OPERATION_POINTWISE_YDESC = 753,
CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1 = 754,
CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2 = 755,
CUDNN_ATTR_OPERATION_POINTWISE_DXDESC = 756,
CUDNN_ATTR_OPERATION_POINTWISE_DYDESC = 757,
CUDNN_ATTR_OPERATION_POINTWISE_TDESC = 758,
CUDNN_ATTR_OPERATION_GENSTATS_MODE = 770,
CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC = 771,
CUDNN_ATTR_OPERATION_GENSTATS_XDESC = 772,
CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC = 773,
CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC = 774,
CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE = 780,
CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC = 781,
CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC = 782,
CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC = 783,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC = 784,
CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC = 785,
CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC = 786,
CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC = 787,
CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC = 788,
CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC = 789,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC = 790,
CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC = 791,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC = 792,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC = 793,
CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC = 794,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC = 795,
CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC = 796,
CUDNN_ATTR_OPERATIONGRAPH_HANDLE = 800,
CUDNN_ATTR_OPERATIONGRAPH_OPS = 801,
CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT = 802,
CUDNN_ATTR_OPERATIONGRAPH_IS_DYNAMIC_SHAPE_ENABLED = 803,
CUDNN_ATTR_OPERATIONGRAPH_IS_SAME_TOPOLOGY = 804,
CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT = 900,
CUDNN_ATTR_TENSOR_DATA_TYPE = 901,
CUDNN_ATTR_TENSOR_DIMENSIONS = 902,
CUDNN_ATTR_TENSOR_STRIDES = 903,
CUDNN_ATTR_TENSOR_VECTOR_COUNT = 904,
CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION = 905,
CUDNN_ATTR_TENSOR_UNIQUE_ID = 906,
CUDNN_ATTR_TENSOR_IS_VIRTUAL = 907,
CUDNN_ATTR_TENSOR_IS_BY_VALUE = 908,
CUDNN_ATTR_TENSOR_REORDERING_MODE = 909,
CUDNN_ATTR_TENSOR_RAGGED_OFFSET_DESC = 913,
CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS = 1000,
CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS = 1001,
CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES = 1002,
CUDNN_ATTR_VARIANT_PACK_WORKSPACE = 1003,
CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID = 1100,
CUDNN_ATTR_LAYOUT_INFO_TYPES = 1101,
CUDNN_ATTR_KNOB_INFO_TYPE = 1200,
CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE = 1201,
CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE = 1202,
CUDNN_ATTR_KNOB_INFO_STRIDE = 1203,
CUDNN_ATTR_ENGINE_OPERATION_GRAPH = 1300,
CUDNN_ATTR_ENGINE_GLOBAL_INDEX = 1301,
CUDNN_ATTR_ENGINE_KNOB_INFO = 1302,
CUDNN_ATTR_ENGINE_NUMERICAL_NOTE = 1303,
CUDNN_ATTR_ENGINE_LAYOUT_INFO = 1304,
CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE = 1305,
CUDNN_ATTR_ENGINE_SM_COUNT_TARGET = 1306,
CUDNN_ATTR_ENGINE_DEVICEPROP = 1307,
CUDNN_ATTR_MATMUL_COMP_TYPE = 1500,
CUDNN_ATTR_MATMUL_PADDING_VALUE = 1503,
CUDNN_ATTR_OPERATION_MATMUL_ADESC = 1520,
CUDNN_ATTR_OPERATION_MATMUL_BDESC = 1521,
CUDNN_ATTR_OPERATION_MATMUL_CDESC = 1522,
CUDNN_ATTR_OPERATION_MATMUL_DESC = 1523,
CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT = 1524,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC = 1525,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC = 1526,
CUDNN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC = 1527,
CUDNN_ATTR_REDUCTION_OPERATOR = 1600,
CUDNN_ATTR_REDUCTION_COMP_TYPE = 1601,
CUDNN_ATTR_REDUCTION_IS_DETERMINISTIC = 1602,
CUDNN_ATTR_OPERATION_REDUCTION_XDESC = 1610,
CUDNN_ATTR_OPERATION_REDUCTION_YDESC = 1611,
CUDNN_ATTR_OPERATION_REDUCTION_DESC = 1612,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC = 1620,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC = 1621,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC = 1622,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC = 1623,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC = 1624,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC = 1625,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC = 1626,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC = 1627,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC = 1628,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC = 1629,
CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS = 1630,
CUDNN_ATTR_RESAMPLE_MODE = 1700,
CUDNN_ATTR_RESAMPLE_COMP_TYPE = 1701,
CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS = 1702,
CUDNN_ATTR_RESAMPLE_POST_PADDINGS = 1703,
CUDNN_ATTR_RESAMPLE_PRE_PADDINGS = 1704,
CUDNN_ATTR_RESAMPLE_STRIDES = 1705,
CUDNN_ATTR_RESAMPLE_WINDOW_DIMS = 1706,
CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION = 1707,
CUDNN_ATTR_RESAMPLE_PADDING_MODE = 1708,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC = 1710,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC = 1711,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC = 1712,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA = 1713,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA = 1714,
CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC = 1716,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC = 1720,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC = 1721,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC = 1722,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA = 1723,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA = 1724,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC = 1725,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_XDESC = 1726,
CUDNN_ATTR_OPERATION_RESAMPLE_BWD_YDESC = 1727,
CUDNN_ATTR_OPERATION_CONCAT_AXIS = 1800,
CUDNN_ATTR_OPERATION_CONCAT_INPUT_DESCS = 1801,
CUDNN_ATTR_OPERATION_CONCAT_INPLACE_INDEX = 1802,
CUDNN_ATTR_OPERATION_CONCAT_OUTPUT_DESC = 1803,
CUDNN_ATTR_OPERATION_SIGNAL_MODE = 1900,
CUDNN_ATTR_OPERATION_SIGNAL_FLAGDESC = 1901,
CUDNN_ATTR_OPERATION_SIGNAL_VALUE = 1902,
CUDNN_ATTR_OPERATION_SIGNAL_XDESC = 1903,
CUDNN_ATTR_OPERATION_SIGNAL_YDESC = 1904,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_CONTAINER_DESC = 1950,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_YDESC = 1951,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_SEQUENCE_DESC = 1952,
CUDNN_ATTR_OPERATION_PAGED_CACHE_LOAD_PAGE_TABLE_DESC = 1953,
CUDNN_ATTR_OPERATION_NORM_FWD_MODE = 2000,
CUDNN_ATTR_OPERATION_NORM_FWD_PHASE = 2001,
CUDNN_ATTR_OPERATION_NORM_FWD_XDESC = 2002,
CUDNN_ATTR_OPERATION_NORM_FWD_MEAN_DESC = 2003,
CUDNN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC = 2004,
CUDNN_ATTR_OPERATION_NORM_FWD_SCALE_DESC = 2005,
CUDNN_ATTR_OPERATION_NORM_FWD_BIAS_DESC = 2006,
CUDNN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC = 2007,
CUDNN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC = 2008,
CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC = 2009,
CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC = 2010,
CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC = 2011,
CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC = 2012,
CUDNN_ATTR_OPERATION_NORM_FWD_YDESC = 2013,
CUDNN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS = 2014,
CUDNN_ATTR_OPERATION_NORM_BWD_MODE = 2100,
CUDNN_ATTR_OPERATION_NORM_BWD_XDESC = 2101,
CUDNN_ATTR_OPERATION_NORM_BWD_MEAN_DESC = 2102,
CUDNN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC = 2103,
CUDNN_ATTR_OPERATION_NORM_BWD_DYDESC = 2104,
CUDNN_ATTR_OPERATION_NORM_BWD_SCALE_DESC = 2105,
CUDNN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC = 2106,
CUDNN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC = 2107,
CUDNN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC = 2108,
CUDNN_ATTR_OPERATION_NORM_BWD_DXDESC = 2109,
CUDNN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS = 2110,
CUDNN_ATTR_OPERATION_RESHAPE_XDESC = 2200,
CUDNN_ATTR_OPERATION_RESHAPE_YDESC = 2201,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_XDESC = 2250,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_YDESC = 2251,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_LOWER_BANDWIDTH = 2252,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_UPPER_BANDWIDTH = 2253,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_AXIS = 2254,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_PAD_VALUE = 2255,
CUDNN_ATTR_OPERATION_EXPAND_BAND_MATRIX_KV_TOKEN_OFFSET_DESC = 2256,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_XDESC = 2270,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_YDESC = 2271,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_LOWER_BANDWIDTH = 2272,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_UPPER_BANDWIDTH = 2273,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_AXIS = 2274,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MATRIX_PAD_VALUE = 2275,
CUDNN_ATTR_OPERATION_CONTRACT_BAND_MAX_TOKEN_VALUE = 2276,
CUDNN_ATTR_RNG_DISTRIBUTION = 2300,
CUDNN_ATTR_RNG_NORMAL_DIST_MEAN = 2301,
CUDNN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION = 2302,
CUDNN_ATTR_RNG_UNIFORM_DIST_MAXIMUM = 2303,
CUDNN_ATTR_RNG_UNIFORM_DIST_MINIMUM = 2304,
CUDNN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY = 2305,
CUDNN_ATTR_OPERATION_RNG_YDESC = 2310,
CUDNN_ATTR_OPERATION_RNG_SEED = 2311,
CUDNN_ATTR_OPERATION_RNG_DESC = 2312,
CUDNN_ATTR_OPERATION_RNG_OFFSET_DESC = 2313,
CUDNN_ATTR_KERNEL_CACHE_OPERATION_GRAPH = 2400,
CUDNN_ATTR_KERNEL_CACHE_IS_ENGINECFG_KERNEL_CACHED = 2401,
CUDNN_ATTR_KERNEL_CACHE_JSON_REPRESENTATION = 2402,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_XDESC = 2500,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_YDESC = 2501,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_SCALE_DESC = 2502,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_MATH_PREC = 2503,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_QUANTIZE_BLOCK_SIZE = 2504,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_XDESC = 2600,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_SCALE_DESC = 2601,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_YDESC = 2602,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_MATH_PREC = 2603,
CUDNN_ATTR_OPERATION_BLOCK_SCALE_DEQUANTIZE_BLOCK_SIZE = 2604,
CUDNN_ATTR_DEVICEPROP_DEVICE_ID = 2700,
CUDNN_ATTR_DEVICEPROP_HANDLE = 2701,
CUDNN_ATTR_DEVICEPROP_JSON_REPRESENTATION = 2702,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendAttributeType_t {
CUDNN_TYPE_HANDLE = 0,
CUDNN_TYPE_DATA_TYPE = 1,
CUDNN_TYPE_BOOLEAN = 2,
CUDNN_TYPE_INT64 = 3,
CUDNN_TYPE_FLOAT = 4,
CUDNN_TYPE_DOUBLE = 5,
CUDNN_TYPE_VOID_PTR = 6,
CUDNN_TYPE_CONVOLUTION_MODE = 7,
CUDNN_TYPE_HEUR_MODE = 8,
CUDNN_TYPE_KNOB_TYPE = 9,
CUDNN_TYPE_NAN_PROPOGATION = 10,
CUDNN_TYPE_NUMERICAL_NOTE = 11,
CUDNN_TYPE_LAYOUT_TYPE = 12,
CUDNN_TYPE_ATTRIB_NAME = 13,
CUDNN_TYPE_POINTWISE_MODE = 14,
CUDNN_TYPE_BACKEND_DESCRIPTOR = 15,
CUDNN_TYPE_GENSTATS_MODE = 16,
CUDNN_TYPE_BN_FINALIZE_STATS_MODE = 17,
CUDNN_TYPE_REDUCTION_OPERATOR_TYPE = 18,
CUDNN_TYPE_BEHAVIOR_NOTE = 19,
CUDNN_TYPE_TENSOR_REORDERING_MODE = 20,
CUDNN_TYPE_RESAMPLE_MODE = 21,
CUDNN_TYPE_PADDING_MODE = 22,
CUDNN_TYPE_INT32 = 23,
CUDNN_TYPE_CHAR = 24,
CUDNN_TYPE_SIGNAL_MODE = 25,
CUDNN_TYPE_FRACTION = 26,
CUDNN_TYPE_NORM_MODE = 27,
CUDNN_TYPE_NORM_FWD_PHASE = 28,
CUDNN_TYPE_RNG_DISTRIBUTION = 29,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendBehaviorNote_t {
CUDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION = 0,
CUDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER = 1,
CUDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER = 2,
CUDNN_BEHAVIOR_NOTE_SUPPORTS_CUDA_GRAPH_NATIVE_API = 3,
CUDNN_BEHAVIOR_NOTE_TYPE_COUNT = 4,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendDescriptorType_t {
CUDNN_BACKEND_POINTWISE_DESCRIPTOR = 0,
CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR = 1,
CUDNN_BACKEND_ENGINE_DESCRIPTOR = 2,
CUDNN_BACKEND_ENGINECFG_DESCRIPTOR = 3,
CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR = 4,
CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR = 5,
CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR = 6,
CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR = 7,
CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR = 8,
CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR = 9,
CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR = 10,
CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR = 11,
CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR = 12,
CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR = 13,
CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR = 14,
CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR = 15,
CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR = 16,
CUDNN_BACKEND_TENSOR_DESCRIPTOR = 17,
CUDNN_BACKEND_MATMUL_DESCRIPTOR = 18,
CUDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR = 19,
CUDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR = 20,
CUDNN_BACKEND_REDUCTION_DESCRIPTOR = 21,
CUDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR = 22,
CUDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR = 23,
CUDNN_BACKEND_RESAMPLE_DESCRIPTOR = 24,
CUDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR = 25,
CUDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR = 26,
CUDNN_BACKEND_OPERATION_CONCAT_DESCRIPTOR = 27,
CUDNN_BACKEND_OPERATION_SIGNAL_DESCRIPTOR = 28,
CUDNN_BACKEND_OPERATION_NORM_FORWARD_DESCRIPTOR = 29,
CUDNN_BACKEND_OPERATION_NORM_BACKWARD_DESCRIPTOR = 30,
CUDNN_BACKEND_OPERATION_RESHAPE_DESCRIPTOR = 31,
CUDNN_BACKEND_RNG_DESCRIPTOR = 32,
CUDNN_BACKEND_OPERATION_RNG_DESCRIPTOR = 33,
CUDNN_BACKEND_KERNEL_CACHE_DESCRIPTOR = 34,
CUDNN_BACKEND_OPERATION_PAGED_CACHE_LOAD_DESCRIPTOR = 35,
CUDNN_BACKEND_OPERATION_BLOCK_SCALE_QUANTIZE_DESCRIPTOR = 36,
CUDNN_BACKEND_OPERATION_BLOCK_SCALE_DEQUANTIZE_DESCRIPTOR = 37,
CUDNN_BACKEND_DEVICEPROP_DESCRIPTOR = 38,
CUDNN_BACKEND_OPERATION_EXPAND_BAND_MATRIX_DESCRIPTOR = 39,
CUDNN_BACKEND_OPERATION_CONTRACT_BAND_MATRIX_DESCRIPTOR = 40,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendHeurMode_t {
CUDNN_HEUR_MODE_INSTANT = 0,
CUDNN_HEUR_MODE_B = 1,
CUDNN_HEUR_MODE_FALLBACK = 2,
CUDNN_HEUR_MODE_A = 3,
CUDNN_HEUR_MODES_COUNT = 4,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendKnobType_t {
CUDNN_KNOB_TYPE_SPLIT_K = 0,
CUDNN_KNOB_TYPE_SWIZZLE = 1,
CUDNN_KNOB_TYPE_TILE_SIZE = 2,
CUDNN_KNOB_TYPE_USE_TEX = 3,
CUDNN_KNOB_TYPE_EDGE = 4,
CUDNN_KNOB_TYPE_KBLOCK = 5,
CUDNN_KNOB_TYPE_LDGA = 6,
CUDNN_KNOB_TYPE_LDGB = 7,
CUDNN_KNOB_TYPE_CHUNK_K = 8,
CUDNN_KNOB_TYPE_SPLIT_H = 9,
CUDNN_KNOB_TYPE_WINO_TILE = 10,
CUDNN_KNOB_TYPE_MULTIPLY = 11,
CUDNN_KNOB_TYPE_SPLIT_K_BUF = 12,
CUDNN_KNOB_TYPE_TILEK = 13,
CUDNN_KNOB_TYPE_STAGES = 14,
CUDNN_KNOB_TYPE_REDUCTION_MODE = 15,
CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE = 16,
CUDNN_KNOB_TYPE_SPLIT_K_SLC = 17,
CUDNN_KNOB_TYPE_IDX_MODE = 18,
CUDNN_KNOB_TYPE_SLICED = 19,
CUDNN_KNOB_TYPE_SPLIT_RS = 20,
CUDNN_KNOB_TYPE_SINGLEBUFFER = 21,
CUDNN_KNOB_TYPE_LDGC = 22,
CUDNN_KNOB_TYPE_SPECFILT = 23,
CUDNN_KNOB_TYPE_KERNEL_CFG = 24,
CUDNN_KNOB_TYPE_WORKSPACE = 25,
CUDNN_KNOB_TYPE_TILE_CGA = 26,
CUDNN_KNOB_TYPE_TILE_CGA_M = 27,
CUDNN_KNOB_TYPE_TILE_CGA_N = 28,
CUDNN_KNOB_TYPE_BLOCK_SIZE = 29,
CUDNN_KNOB_TYPE_OCCUPANCY = 30,
CUDNN_KNOB_TYPE_ARRAY_SIZE_PER_THREAD = 31,
CUDNN_KNOB_TYPE_NUM_C_PER_BLOCK = 32,
CUDNN_KNOB_TYPE_SPLIT_COLS = 33,
CUDNN_KNOB_TYPE_TILE_ROWS = 34,
CUDNN_KNOB_TYPE_TILE_COLS = 35,
CUDNN_KNOB_TYPE_LOAD_SIZE = 36,
CUDNN_KNOB_TYPE_CTA_COUNT = 37,
CUDNN_KNOB_TYPE_STREAM_K = 38,
CUDNN_KNOB_TYPE_SPLIT_P_SLC = 39,
CUDNN_KNOB_TYPE_TILE_M = 40,
CUDNN_KNOB_TYPE_TILE_N = 41,
CUDNN_KNOB_TYPE_WARP_SPEC_CFG = 42,
CUDNN_KNOB_TYPE_COUNTS = 43,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendLayoutType_t {
CUDNN_LAYOUT_TYPE_PREFERRED_NCHW = 0,
CUDNN_LAYOUT_TYPE_PREFERRED_NHWC = 1,
CUDNN_LAYOUT_TYPE_PREFERRED_PAD4CK = 2,
CUDNN_LAYOUT_TYPE_PREFERRED_PAD8CK = 3,
CUDNN_LAYOUT_TYPE_COUNT = 4,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendNormFwdPhase_t {
CUDNN_NORM_FWD_INFERENCE = 0,
CUDNN_NORM_FWD_TRAINING = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendNormMode_t {
CUDNN_LAYER_NORM = 0,
CUDNN_INSTANCE_NORM = 1,
CUDNN_BATCH_NORM = 2,
CUDNN_GROUP_NORM = 3,
CUDNN_RMS_NORM = 4,
CUDNN_ADA_LAYER_NORM = 5,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendNumericalNote_t {
CUDNN_NUMERICAL_NOTE_TENSOR_CORE = 0,
CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS = 1,
CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION = 2,
CUDNN_NUMERICAL_NOTE_FFT = 3,
CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC = 4,
CUDNN_NUMERICAL_NOTE_WINOGRAD = 5,
CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4 = 6,
CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6 = 7,
CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13 = 8,
CUDNN_NUMERICAL_NOTE_STRICT_NAN_PROP = 9,
CUDNN_NUMERICAL_NOTE_TYPE_COUNT = 10,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBackendTensorReordering_t {
CUDNN_TENSOR_REORDERING_NONE = 0,
CUDNN_TENSOR_REORDERING_INT8x32 = 1,
CUDNN_TENSOR_REORDERING_F16x16 = 2,
CUDNN_TENSOR_REORDERING_F8_128x4 = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBatchNormMode_t {
CUDNN_BATCHNORM_PER_ACTIVATION = 0,
CUDNN_BATCHNORM_SPATIAL = 1,
CUDNN_BATCHNORM_SPATIAL_PERSISTENT = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBatchNormOps_t {
CUDNN_BATCHNORM_OPS_BN = 0,
CUDNN_BATCHNORM_OPS_BN_ACTIVATION = 1,
CUDNN_BATCHNORM_OPS_BN_ADD_ACTIVATION = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnBnFinalizeStatsMode_t {
CUDNN_BN_FINALIZE_STATISTICS_TRAINING = 0,
CUDNN_BN_FINALIZE_STATISTICS_INFERENCE = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnCTCGradMode_t {
CUDNN_CTC_ZERO_OOB_GRADIENTS = 0,
CUDNN_CTC_SKIP_OOB_GRADIENTS = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnCTCLossAlgo_t {
CUDNN_CTC_LOSS_ALGO_DETERMINISTIC = 0,
CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnConvolutionBwdDataAlgo_t {
CUDNN_CONVOLUTION_BWD_DATA_ALGO_0 = 0,
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,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnConvolutionBwdFilterAlgo_t {
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0 = 0,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1 = 1,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT = 2,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3 = 3,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD = 4,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED = 5,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING = 6,
CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT = 7,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnConvolutionFwdAlgo_t {
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,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnConvolutionMode_t {
CUDNN_CONVOLUTION = 0,
CUDNN_CROSS_CORRELATION = 1,
}
#[cfg(any(
feature = "cuda-11040",
feature = "cuda-11050",
feature = "cuda-11060",
feature = "cuda-11070",
feature = "cuda-11080"
))]
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnDataType_t {
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_DATA_INT8x32 = 8,
CUDNN_DATA_BFLOAT16 = 9,
CUDNN_DATA_INT64 = 10,
CUDNN_DATA_BOOLEAN = 11,
CUDNN_DATA_FP8_E4M3 = 12,
CUDNN_DATA_FP8_E5M2 = 13,
CUDNN_DATA_FAST_FLOAT_FOR_FP8 = 14,
CUDNN_DATA_FP8_E8M0 = 15,
CUDNN_DATA_FP4_E2M1 = 16,
}
#[cfg(any(
feature = "cuda-12000",
feature = "cuda-12010",
feature = "cuda-12020",
feature = "cuda-12030",
feature = "cuda-12040",
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000",
feature = "cuda-13010",
feature = "cuda-13020"
))]
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnDataType_t {
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_DATA_INT8x32 = 8,
CUDNN_DATA_BFLOAT16 = 9,
CUDNN_DATA_INT64 = 10,
CUDNN_DATA_BOOLEAN = 11,
CUDNN_DATA_FP8_E4M3 = 12,
CUDNN_DATA_FP8_E5M2 = 13,
CUDNN_DATA_FAST_FLOAT_FOR_FP8 = 14,
CUDNN_DATA_FP8_E8M0 = 15,
CUDNN_DATA_FP4_E2M1 = 16,
CUDNN_DATA_INT4 = 17,
CUDNN_DATA_UINT4 = 18,
CUDNN_DATA_UINT32 = 19,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnDeterminism_t {
CUDNN_NON_DETERMINISTIC = 0,
CUDNN_DETERMINISTIC = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnDirectionMode_t {
CUDNN_UNIDIRECTIONAL = 0,
CUDNN_BIDIRECTIONAL = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnDivNormMode_t {
CUDNN_DIVNORM_PRECOMPUTED_MEANS = 0,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnErrQueryMode_t {
CUDNN_ERRQUERY_RAWCODE = 0,
CUDNN_ERRQUERY_NONBLOCKING = 1,
CUDNN_ERRQUERY_BLOCKING = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnFoldingDirection_t {
CUDNN_TRANSFORM_FOLD = 0,
CUDNN_TRANSFORM_UNFOLD = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnForwardMode_t {
CUDNN_FWD_MODE_INFERENCE = 0,
CUDNN_FWD_MODE_TRAINING = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnFusedOpsConstParamLabel_t {
CUDNN_PARAM_XDESC = 0,
CUDNN_PARAM_XDATA_PLACEHOLDER = 1,
CUDNN_PARAM_BN_MODE = 2,
CUDNN_PARAM_BN_EQSCALEBIAS_DESC = 3,
CUDNN_PARAM_BN_EQSCALE_PLACEHOLDER = 4,
CUDNN_PARAM_BN_EQBIAS_PLACEHOLDER = 5,
CUDNN_PARAM_ACTIVATION_DESC = 6,
CUDNN_PARAM_CONV_DESC = 7,
CUDNN_PARAM_WDESC = 8,
CUDNN_PARAM_WDATA_PLACEHOLDER = 9,
CUDNN_PARAM_DWDESC = 10,
CUDNN_PARAM_DWDATA_PLACEHOLDER = 11,
CUDNN_PARAM_YDESC = 12,
CUDNN_PARAM_YDATA_PLACEHOLDER = 13,
CUDNN_PARAM_DYDESC = 14,
CUDNN_PARAM_DYDATA_PLACEHOLDER = 15,
CUDNN_PARAM_YSTATS_DESC = 16,
CUDNN_PARAM_YSUM_PLACEHOLDER = 17,
CUDNN_PARAM_YSQSUM_PLACEHOLDER = 18,
CUDNN_PARAM_BN_SCALEBIAS_MEANVAR_DESC = 19,
CUDNN_PARAM_BN_SCALE_PLACEHOLDER = 20,
CUDNN_PARAM_BN_BIAS_PLACEHOLDER = 21,
CUDNN_PARAM_BN_SAVED_MEAN_PLACEHOLDER = 22,
CUDNN_PARAM_BN_SAVED_INVSTD_PLACEHOLDER = 23,
CUDNN_PARAM_BN_RUNNING_MEAN_PLACEHOLDER = 24,
CUDNN_PARAM_BN_RUNNING_VAR_PLACEHOLDER = 25,
CUDNN_PARAM_ZDESC = 26,
CUDNN_PARAM_ZDATA_PLACEHOLDER = 27,
CUDNN_PARAM_BN_Z_EQSCALEBIAS_DESC = 28,
CUDNN_PARAM_BN_Z_EQSCALE_PLACEHOLDER = 29,
CUDNN_PARAM_BN_Z_EQBIAS_PLACEHOLDER = 30,
CUDNN_PARAM_ACTIVATION_BITMASK_DESC = 31,
CUDNN_PARAM_ACTIVATION_BITMASK_PLACEHOLDER = 32,
CUDNN_PARAM_DXDESC = 33,
CUDNN_PARAM_DXDATA_PLACEHOLDER = 34,
CUDNN_PARAM_DZDESC = 35,
CUDNN_PARAM_DZDATA_PLACEHOLDER = 36,
CUDNN_PARAM_BN_DSCALE_PLACEHOLDER = 37,
CUDNN_PARAM_BN_DBIAS_PLACEHOLDER = 38,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnFusedOpsPointerPlaceHolder_t {
CUDNN_PTR_NULL = 0,
CUDNN_PTR_ELEM_ALIGNED = 1,
CUDNN_PTR_16B_ALIGNED = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnFusedOpsVariantParamLabel_t {
CUDNN_PTR_XDATA = 0,
CUDNN_PTR_BN_EQSCALE = 1,
CUDNN_PTR_BN_EQBIAS = 2,
CUDNN_PTR_WDATA = 3,
CUDNN_PTR_DWDATA = 4,
CUDNN_PTR_YDATA = 5,
CUDNN_PTR_DYDATA = 6,
CUDNN_PTR_YSUM = 7,
CUDNN_PTR_YSQSUM = 8,
CUDNN_PTR_WORKSPACE = 9,
CUDNN_PTR_BN_SCALE = 10,
CUDNN_PTR_BN_BIAS = 11,
CUDNN_PTR_BN_SAVED_MEAN = 12,
CUDNN_PTR_BN_SAVED_INVSTD = 13,
CUDNN_PTR_BN_RUNNING_MEAN = 14,
CUDNN_PTR_BN_RUNNING_VAR = 15,
CUDNN_PTR_ZDATA = 16,
CUDNN_PTR_BN_Z_EQSCALE = 17,
CUDNN_PTR_BN_Z_EQBIAS = 18,
CUDNN_PTR_ACTIVATION_BITMASK = 19,
CUDNN_PTR_DXDATA = 20,
CUDNN_PTR_DZDATA = 21,
CUDNN_PTR_BN_DSCALE = 22,
CUDNN_PTR_BN_DBIAS = 23,
CUDNN_SCALAR_SIZE_T_WORKSPACE_SIZE_IN_BYTES = 100,
CUDNN_SCALAR_INT64_T_BN_ACCUMULATION_COUNT = 101,
CUDNN_SCALAR_DOUBLE_BN_EXP_AVG_FACTOR = 102,
CUDNN_SCALAR_DOUBLE_BN_EPSILON = 103,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnFusedOps_t {
CUDNN_FUSED_SCALE_BIAS_ACTIVATION_CONV_BNSTATS = 0,
CUDNN_FUSED_SCALE_BIAS_ACTIVATION_WGRAD = 1,
CUDNN_FUSED_BN_FINALIZE_STATISTICS_TRAINING = 2,
CUDNN_FUSED_BN_FINALIZE_STATISTICS_INFERENCE = 3,
CUDNN_FUSED_CONV_SCALE_BIAS_ADD_ACTIVATION = 4,
CUDNN_FUSED_SCALE_BIAS_ADD_ACTIVATION_GEN_BITMASK = 5,
CUDNN_FUSED_DACTIVATION_FORK_DBATCHNORM = 6,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnGenStatsMode_t {
CUDNN_GENSTATS_SUM_SQSUM = 0,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnIndicesType_t {
CUDNN_32BIT_INDICES = 0,
CUDNN_64BIT_INDICES = 1,
CUDNN_16BIT_INDICES = 2,
CUDNN_8BIT_INDICES = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnLRNMode_t {
CUDNN_LRN_CROSS_CHANNEL_DIM1 = 0,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnLossNormalizationMode_t {
CUDNN_LOSS_NORMALIZATION_NONE = 0,
CUDNN_LOSS_NORMALIZATION_SOFTMAX = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnMathType_t {
CUDNN_DEFAULT_MATH = 0,
CUDNN_TENSOR_OP_MATH = 1,
CUDNN_TENSOR_OP_MATH_ALLOW_CONVERSION = 2,
CUDNN_FMA_MATH = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnMultiHeadAttnWeightKind_t {
CUDNN_MH_ATTN_Q_WEIGHTS = 0,
CUDNN_MH_ATTN_K_WEIGHTS = 1,
CUDNN_MH_ATTN_V_WEIGHTS = 2,
CUDNN_MH_ATTN_O_WEIGHTS = 3,
CUDNN_MH_ATTN_Q_BIASES = 4,
CUDNN_MH_ATTN_K_BIASES = 5,
CUDNN_MH_ATTN_V_BIASES = 6,
CUDNN_MH_ATTN_O_BIASES = 7,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnNanPropagation_t {
CUDNN_NOT_PROPAGATE_NAN = 0,
CUDNN_PROPAGATE_NAN = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnNormAlgo_t {
CUDNN_NORM_ALGO_STANDARD = 0,
CUDNN_NORM_ALGO_PERSIST = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnNormMode_t {
CUDNN_NORM_PER_ACTIVATION = 0,
CUDNN_NORM_PER_CHANNEL = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnNormOps_t {
CUDNN_NORM_OPS_NORM = 0,
CUDNN_NORM_OPS_NORM_ACTIVATION = 1,
CUDNN_NORM_OPS_NORM_ADD_ACTIVATION = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnOpTensorOp_t {
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,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnPaddingMode_t {
CUDNN_ZERO_PAD = 0,
CUDNN_NEG_INF_PAD = 1,
CUDNN_EDGE_VAL_PAD = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnPointwiseMode_t {
CUDNN_POINTWISE_ADD = 0,
CUDNN_POINTWISE_ADD_SQUARE = 5,
CUDNN_POINTWISE_DIV = 6,
CUDNN_POINTWISE_MAX = 3,
CUDNN_POINTWISE_MIN = 2,
CUDNN_POINTWISE_MOD = 7,
CUDNN_POINTWISE_MUL = 1,
CUDNN_POINTWISE_POW = 8,
CUDNN_POINTWISE_SUB = 9,
CUDNN_POINTWISE_ABS = 10,
CUDNN_POINTWISE_CEIL = 11,
CUDNN_POINTWISE_COS = 12,
CUDNN_POINTWISE_EXP = 13,
CUDNN_POINTWISE_FLOOR = 14,
CUDNN_POINTWISE_LOG = 15,
CUDNN_POINTWISE_NEG = 16,
CUDNN_POINTWISE_RSQRT = 17,
CUDNN_POINTWISE_SIN = 18,
CUDNN_POINTWISE_SQRT = 4,
CUDNN_POINTWISE_TAN = 19,
CUDNN_POINTWISE_ERF = 20,
CUDNN_POINTWISE_IDENTITY = 21,
CUDNN_POINTWISE_RECIPROCAL = 22,
CUDNN_POINTWISE_ATAN2 = 23,
CUDNN_POINTWISE_RELU_FWD = 100,
CUDNN_POINTWISE_TANH_FWD = 101,
CUDNN_POINTWISE_SIGMOID_FWD = 102,
CUDNN_POINTWISE_ELU_FWD = 103,
CUDNN_POINTWISE_GELU_FWD = 104,
CUDNN_POINTWISE_SOFTPLUS_FWD = 105,
CUDNN_POINTWISE_SWISH_FWD = 106,
CUDNN_POINTWISE_GELU_APPROX_TANH_FWD = 107,
CUDNN_POINTWISE_RELU_BWD = 200,
CUDNN_POINTWISE_TANH_BWD = 201,
CUDNN_POINTWISE_SIGMOID_BWD = 202,
CUDNN_POINTWISE_ELU_BWD = 203,
CUDNN_POINTWISE_GELU_BWD = 204,
CUDNN_POINTWISE_SOFTPLUS_BWD = 205,
CUDNN_POINTWISE_SWISH_BWD = 206,
CUDNN_POINTWISE_GELU_APPROX_TANH_BWD = 207,
CUDNN_POINTWISE_CMP_EQ = 300,
CUDNN_POINTWISE_CMP_NEQ = 301,
CUDNN_POINTWISE_CMP_GT = 302,
CUDNN_POINTWISE_CMP_GE = 303,
CUDNN_POINTWISE_CMP_LT = 304,
CUDNN_POINTWISE_CMP_LE = 305,
CUDNN_POINTWISE_LOGICAL_AND = 400,
CUDNN_POINTWISE_LOGICAL_OR = 401,
CUDNN_POINTWISE_LOGICAL_NOT = 402,
CUDNN_POINTWISE_GEN_INDEX = 501,
CUDNN_POINTWISE_BINARY_SELECT = 601,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnPoolingMode_t {
CUDNN_POOLING_MAX = 0,
CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING = 1,
CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING = 2,
CUDNN_POOLING_MAX_DETERMINISTIC = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNAlgo_t {
CUDNN_RNN_ALGO_STANDARD = 0,
CUDNN_RNN_ALGO_PERSIST_STATIC = 1,
CUDNN_RNN_ALGO_PERSIST_DYNAMIC = 2,
CUDNN_RNN_ALGO_PERSIST_STATIC_SMALL_H = 3,
CUDNN_RNN_ALGO_COUNT = 4,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNBiasMode_t {
CUDNN_RNN_NO_BIAS = 0,
CUDNN_RNN_SINGLE_INP_BIAS = 1,
CUDNN_RNN_DOUBLE_BIAS = 2,
CUDNN_RNN_SINGLE_REC_BIAS = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNClipMode_t {
CUDNN_RNN_CLIP_NONE = 0,
CUDNN_RNN_CLIP_MINMAX = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNDataLayout_t {
CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED = 0,
CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED = 1,
CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNInputMode_t {
CUDNN_LINEAR_INPUT = 0,
CUDNN_SKIP_INPUT = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRNNMode_t {
CUDNN_RNN_RELU = 0,
CUDNN_RNN_TANH = 1,
CUDNN_LSTM = 2,
CUDNN_GRU = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnReduceTensorIndices_t {
CUDNN_REDUCE_TENSOR_NO_INDICES = 0,
CUDNN_REDUCE_TENSOR_FLATTENED_INDICES = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnReduceTensorOp_t {
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,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnReorderType_t {
CUDNN_DEFAULT_REORDER = 0,
CUDNN_NO_REORDER = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnResampleMode_t {
CUDNN_RESAMPLE_NEAREST = 0,
CUDNN_RESAMPLE_BILINEAR = 1,
CUDNN_RESAMPLE_AVGPOOL = 2,
CUDNN_RESAMPLE_AVGPOOL_EXCLUDE_PADDING = 4,
CUDNN_RESAMPLE_MAXPOOL = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnRngDistribution_t {
CUDNN_RNG_DISTRIBUTION_BERNOULLI = 0,
CUDNN_RNG_DISTRIBUTION_UNIFORM = 1,
CUDNN_RNG_DISTRIBUTION_NORMAL = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSamplerType_t {
CUDNN_SAMPLER_BILINEAR = 0,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSeqDataAxis_t {
CUDNN_SEQDATA_TIME_DIM = 0,
CUDNN_SEQDATA_BATCH_DIM = 1,
CUDNN_SEQDATA_BEAM_DIM = 2,
CUDNN_SEQDATA_VECT_DIM = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSeverity_t {
CUDNN_SEV_FATAL = 0,
CUDNN_SEV_ERROR = 1,
CUDNN_SEV_WARNING = 2,
CUDNN_SEV_INFO = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSignalMode_t {
CUDNN_SIGNAL_SET = 0,
CUDNN_SIGNAL_WAIT = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSoftmaxAlgorithm_t {
CUDNN_SOFTMAX_FAST = 0,
CUDNN_SOFTMAX_ACCURATE = 1,
CUDNN_SOFTMAX_LOG = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnSoftmaxMode_t {
CUDNN_SOFTMAX_MODE_INSTANCE = 0,
CUDNN_SOFTMAX_MODE_CHANNEL = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnStatus_t {
CUDNN_STATUS_SUCCESS = 0,
CUDNN_STATUS_NOT_INITIALIZED = 1001,
CUDNN_STATUS_SUBLIBRARY_VERSION_MISMATCH = 1002,
CUDNN_STATUS_SERIALIZATION_VERSION_MISMATCH = 1003,
CUDNN_STATUS_DEPRECATED = 1004,
CUDNN_STATUS_LICENSE_ERROR = 1005,
CUDNN_STATUS_RUNTIME_IN_PROGRESS = 1006,
CUDNN_STATUS_RUNTIME_FP_OVERFLOW = 1007,
CUDNN_STATUS_SUBLIBRARY_LOADING_FAILED = 1008,
CUDNN_STATUS_BAD_PARAM = 2000,
CUDNN_STATUS_BAD_PARAM_NULL_POINTER = 2002,
CUDNN_STATUS_BAD_PARAM_MISALIGNED_POINTER = 2003,
CUDNN_STATUS_BAD_PARAM_NOT_FINALIZED = 2004,
CUDNN_STATUS_BAD_PARAM_OUT_OF_BOUND = 2005,
CUDNN_STATUS_BAD_PARAM_SIZE_INSUFFICIENT = 2006,
CUDNN_STATUS_BAD_PARAM_STREAM_MISMATCH = 2007,
CUDNN_STATUS_BAD_PARAM_SHAPE_MISMATCH = 2008,
CUDNN_STATUS_BAD_PARAM_DUPLICATED_ENTRIES = 2009,
CUDNN_STATUS_BAD_PARAM_ATTRIBUTE_TYPE = 2010,
CUDNN_STATUS_BAD_PARAM_CUDA_GRAPH_MISMATCH = 2011,
CUDNN_STATUS_BAD_PARAM_DESCRIPTOR_TYPE = 2012,
CUDNN_STATUS_NOT_SUPPORTED = 3000,
CUDNN_STATUS_NOT_SUPPORTED_GRAPH_PATTERN = 3001,
CUDNN_STATUS_NOT_SUPPORTED_SHAPE = 3002,
CUDNN_STATUS_NOT_SUPPORTED_DATA_TYPE = 3003,
CUDNN_STATUS_NOT_SUPPORTED_LAYOUT = 3004,
CUDNN_STATUS_NOT_SUPPORTED_INCOMPATIBLE_CUDA_DRIVER = 3005,
CUDNN_STATUS_NOT_SUPPORTED_INCOMPATIBLE_CUDART = 3006,
CUDNN_STATUS_NOT_SUPPORTED_ARCH_MISMATCH = 3007,
CUDNN_STATUS_NOT_SUPPORTED_RUNTIME_PREREQUISITE_MISSING = 3008,
CUDNN_STATUS_NOT_SUPPORTED_SUBLIBRARY_UNAVAILABLE = 3009,
CUDNN_STATUS_NOT_SUPPORTED_SHARED_MEMORY_INSUFFICIENT = 3010,
CUDNN_STATUS_NOT_SUPPORTED_PADDING = 3011,
CUDNN_STATUS_NOT_SUPPORTED_BAD_LAUNCH_PARAM = 3012,
CUDNN_STATUS_NOT_SUPPORTED_CUDA_GRAPH_NATIVE_API = 3013,
CUDNN_STATUS_INTERNAL_ERROR = 4000,
CUDNN_STATUS_INTERNAL_ERROR_COMPILATION_FAILED = 4001,
CUDNN_STATUS_INTERNAL_ERROR_UNEXPECTED_VALUE = 4002,
CUDNN_STATUS_INTERNAL_ERROR_HOST_ALLOCATION_FAILED = 4003,
CUDNN_STATUS_INTERNAL_ERROR_DEVICE_ALLOCATION_FAILED = 4004,
CUDNN_STATUS_INTERNAL_ERROR_BAD_LAUNCH_PARAM = 4005,
CUDNN_STATUS_INTERNAL_ERROR_TEXTURE_CREATION_FAILED = 4006,
CUDNN_STATUS_EXECUTION_FAILED = 5000,
CUDNN_STATUS_EXECUTION_FAILED_CUDA_DRIVER = 5001,
CUDNN_STATUS_EXECUTION_FAILED_CUBLAS = 5002,
CUDNN_STATUS_EXECUTION_FAILED_CUDART = 5003,
CUDNN_STATUS_EXECUTION_FAILED_CURAND = 5004,
CUDNN_STATUS_INVALID_VALUE = 2001,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnTensorFormat_t {
CUDNN_TENSOR_NCHW = 0,
CUDNN_TENSOR_NHWC = 1,
CUDNN_TENSOR_NCHW_VECT_C = 2,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum cudnnWgradMode_t {
CUDNN_WGRAD_MODE_ADD = 0,
CUDNN_WGRAD_MODE_SET = 1,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub enum libraryPropertyType_t {
MAJOR_VERSION = 0,
MINOR_VERSION = 1,
PATCH_LEVEL = 2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUgraph_st {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CUstream_st {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnActivationStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnAttnStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnCTCLossStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnContext {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
pub struct cudnnConvolutionBwdDataAlgoPerfStruct {
pub algo: cudnnConvolutionBwdDataAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::core::ffi::c_int; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
pub struct cudnnConvolutionBwdFilterAlgoPerfStruct {
pub algo: cudnnConvolutionBwdFilterAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::core::ffi::c_int; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)]
pub struct cudnnConvolutionFwdAlgoPerfStruct {
pub algo: cudnnConvolutionFwdAlgo_t,
pub status: cudnnStatus_t,
pub time: f32,
pub memory: usize,
pub determinism: cudnnDeterminism_t,
pub mathType: cudnnMathType_t,
pub reserved: [::core::ffi::c_int; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnConvolutionStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub struct cudnnDebugStruct {
pub cudnn_version: ::core::ffi::c_uint,
pub cudnnStatus: cudnnStatus_t,
pub time_sec: ::core::ffi::c_uint,
pub time_usec: ::core::ffi::c_uint,
pub time_delta: ::core::ffi::c_uint,
pub handle: cudnnHandle_t,
pub stream: cudaStream_t,
pub pid: ::core::ffi::c_ulonglong,
pub tid: ::core::ffi::c_ulonglong,
pub cudaDeviceId: ::core::ffi::c_int,
pub reserved: [::core::ffi::c_int; 15usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnDropoutStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnFilterStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub struct cudnnFractionStruct {
pub numerator: i64,
pub denominator: i64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnFusedOpsConstParamStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnFusedOpsPlanStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnFusedOpsVariantParamStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnLRNStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnOpTensorStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnPoolingStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnRNNDataStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnRNNStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnReduceTensorStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnRuntimeTag_t {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnSeqDataStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnSpatialTransformerStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnTensorStruct {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct cudnnTensorTransformStruct {
_unused: [u8; 0],
}
impl cudnnResampleMode_t {
pub const CUDNN_RESAMPLE_AVGPOOL_INCLUDE_PADDING: cudnnResampleMode_t =
cudnnResampleMode_t::CUDNN_RESAMPLE_AVGPOOL;
}
impl cudnnStatus_t {
pub const CUDNN_STATUS_ALLOC_FAILED: cudnnStatus_t =
cudnnStatus_t::CUDNN_STATUS_INTERNAL_ERROR_HOST_ALLOCATION_FAILED;
}
impl cudnnStatus_t {
pub const CUDNN_STATUS_ARCH_MISMATCH: cudnnStatus_t =
cudnnStatus_t::CUDNN_STATUS_NOT_SUPPORTED_ARCH_MISMATCH;
}
impl cudnnStatus_t {
pub const CUDNN_STATUS_MAPPING_ERROR: cudnnStatus_t =
cudnnStatus_t::CUDNN_STATUS_INTERNAL_ERROR_TEXTURE_CREATION_FAILED;
}
impl cudnnStatus_t {
pub const CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING: cudnnStatus_t =
cudnnStatus_t::CUDNN_STATUS_NOT_SUPPORTED_RUNTIME_PREREQUISITE_MISSING;
}
impl cudnnStatus_t {
pub const CUDNN_STATUS_VERSION_MISMATCH: cudnnStatus_t =
cudnnStatus_t::CUDNN_STATUS_SUBLIBRARY_VERSION_MISMATCH;
}
#[cfg(not(feature = "dynamic-loading"))]
extern "C" {
pub fn cudnnActivationBackward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnActivationForward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnAddTensor(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnAdvVersionCheck() -> cudnnStatus_t;
pub fn cudnnBackendCreateDescriptor(
descriptorType: cudnnBackendDescriptorType_t,
descriptor: *mut cudnnBackendDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnBackendDestroyDescriptor(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
pub fn cudnnBackendExecute(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnBackendFinalize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
pub fn cudnnBackendGetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
requestedElementCount: i64,
elementCount: *mut i64,
arrayOfElements: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnBackendInitialize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t;
pub fn cudnnBackendPopulateCudaGraph(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t;
pub fn cudnnBackendSetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
elementCount: i64,
arrayOfElements: *const ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnBackendUpdateCudaGraph(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t;
pub fn cudnnBatchNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
dBnScaleResult: *mut ::core::ffi::c_void,
dBnBiasResult: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnBatchNormalizationBackwardEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScaleData: *const ::core::ffi::c_void,
bnBiasData: *const ::core::ffi::c_void,
dBnScaleData: *mut ::core::ffi::c_void,
dBnBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnBatchNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
epsilon: f64,
) -> cudnnStatus_t;
pub fn cudnnBatchNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnBatchNormalizationForwardTrainingEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnBuildRNNDynamic(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
miniBatch: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnCTCLoss(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
hostLabels: *const ::core::ffi::c_int,
hostLabelLengths: *const ::core::ffi::c_int,
hostInputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnCTCLoss_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnCnnVersionCheck() -> cudnnStatus_t;
pub fn cudnnConvolutionBackwardBias(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dbDesc: cudnnTensorDescriptor_t,
db: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnConvolutionBackwardData(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnConvolutionBackwardFilter(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnConvolutionBiasActivationForward(
handle: cudnnHandle_t,
alpha1: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
alpha2: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
biasDesc: cudnnTensorDescriptor_t,
bias: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnConvolutionForward(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnCreate(handle: *mut cudnnHandle_t) -> cudnnStatus_t;
pub fn cudnnCreateActivationDescriptor(
activationDesc: *mut cudnnActivationDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateAttnDescriptor(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t;
pub fn cudnnCreateCTCLossDescriptor(
ctcLossDesc: *mut cudnnCTCLossDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateConvolutionDescriptor(
convDesc: *mut cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateDropoutDescriptor(
dropoutDesc: *mut cudnnDropoutDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateFilterDescriptor(filterDesc: *mut cudnnFilterDescriptor_t) -> cudnnStatus_t;
pub fn cudnnCreateFusedOpsConstParamPack(
constPack: *mut cudnnFusedOpsConstParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
pub fn cudnnCreateFusedOpsPlan(
plan: *mut cudnnFusedOpsPlan_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
pub fn cudnnCreateFusedOpsVariantParamPack(
varPack: *mut cudnnFusedOpsVariantParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t;
pub fn cudnnCreateLRNDescriptor(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t;
pub fn cudnnCreateOpTensorDescriptor(
opTensorDesc: *mut cudnnOpTensorDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreatePoolingDescriptor(
poolingDesc: *mut cudnnPoolingDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateRNNDataDescriptor(
rnnDataDesc: *mut cudnnRNNDataDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateRNNDescriptor(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t;
pub fn cudnnCreateReduceTensorDescriptor(
reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateSeqDataDescriptor(
seqDataDesc: *mut cudnnSeqDataDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateSpatialTransformerDescriptor(
stDesc: *mut cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnCreateTensorDescriptor(tensorDesc: *mut cudnnTensorDescriptor_t) -> cudnnStatus_t;
pub fn cudnnCreateTensorTransformDescriptor(
transformDesc: *mut cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDeriveBNTensorDescriptor(
derivedBnDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnBatchNormMode_t,
) -> cudnnStatus_t;
pub fn cudnnDeriveNormTensorDescriptor(
derivedNormScaleBiasDesc: cudnnTensorDescriptor_t,
derivedNormMeanVarDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnNormMode_t,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnDestroy(handle: cudnnHandle_t) -> cudnnStatus_t;
pub fn cudnnDestroyActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDestroyAttnDescriptor(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyCTCLossDescriptor(ctcLossDesc: cudnnCTCLossDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyConvolutionDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDestroyDropoutDescriptor(dropoutDesc: cudnnDropoutDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyFilterDescriptor(filterDesc: cudnnFilterDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyFusedOpsConstParamPack(
constPack: cudnnFusedOpsConstParamPack_t,
) -> cudnnStatus_t;
pub fn cudnnDestroyFusedOpsPlan(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t;
pub fn cudnnDestroyFusedOpsVariantParamPack(
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t;
pub fn cudnnDestroyLRNDescriptor(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyOpTensorDescriptor(opTensorDesc: cudnnOpTensorDescriptor_t)
-> cudnnStatus_t;
pub fn cudnnDestroyPoolingDescriptor(poolingDesc: cudnnPoolingDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyRNNDataDescriptor(rnnDataDesc: cudnnRNNDataDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyRNNDescriptor(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDestroySeqDataDescriptor(seqDataDesc: cudnnSeqDataDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroySpatialTransformerDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDestroyTensorDescriptor(tensorDesc: cudnnTensorDescriptor_t) -> cudnnStatus_t;
pub fn cudnnDestroyTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnDivisiveNormalizationBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dXdMeansDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dMeans: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnDivisiveNormalizationForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnDropoutBackward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
dydesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxdesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnDropoutForward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
xdesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
ydesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnDropoutGetReserveSpaceSize(
xdesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnDropoutGetStatesSize(
handle: cudnnHandle_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionBackwardDataAlgorithm(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionBackwardDataAlgorithmEx(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionBackwardFilterAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionBackwardFilterAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionForwardAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnFindConvolutionForwardAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t;
pub fn cudnnFusedOpsExecute(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t;
pub fn cudnnGetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: *mut cudnnActivationMode_t,
reluNanOpt: *mut cudnnNanPropagation_t,
coef: *mut f64,
) -> cudnnStatus_t;
pub fn cudnnGetActivationDescriptorSwishBeta(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: *mut f64,
) -> cudnnStatus_t;
pub fn cudnnGetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: *mut ::core::ffi::c_uint,
nHeads: *mut ::core::ffi::c_int,
smScaler: *mut f64,
dataType: *mut cudnnDataType_t,
computePrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
attnDropoutDesc: *mut cudnnDropoutDescriptor_t,
postDropoutDesc: *mut cudnnDropoutDescriptor_t,
qSize: *mut ::core::ffi::c_int,
kSize: *mut ::core::ffi::c_int,
vSize: *mut ::core::ffi::c_int,
qProjSize: *mut ::core::ffi::c_int,
kProjSize: *mut ::core::ffi::c_int,
vProjSize: *mut ::core::ffi::c_int,
oProjSize: *mut ::core::ffi::c_int,
qoMaxSeqLength: *mut ::core::ffi::c_int,
kvMaxSeqLength: *mut ::core::ffi::c_int,
maxBatchSize: *mut ::core::ffi::c_int,
maxBeamSize: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetBatchNormalizationBackwardExWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetBatchNormalizationTrainingExReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossDescriptor_v9(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
ctcGradMode: *mut cudnnCTCGradMode_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossWorkspaceSize(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetCTCLossWorkspaceSize_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetCallback(
mask: *mut ::core::ffi::c_uint,
udata: *mut *mut ::core::ffi::c_void,
fptr: *mut cudnnCallback_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: *mut ::core::ffi::c_int,
pad_w: *mut ::core::ffi::c_int,
u: *mut ::core::ffi::c_int,
v: *mut ::core::ffi::c_int,
dilation_h: *mut ::core::ffi::c_int,
dilation_w: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolution2dForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardDataAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardDataAlgorithm_v7(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardDataWorkspaceSize(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardFilterAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionBackwardFilterWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionForwardAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionForwardAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionForwardWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: *mut cudnnMathType_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLengthRequested: ::core::ffi::c_int,
arrayLength: *mut ::core::ffi::c_int,
padA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
dilationA: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionNdForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
nbDims: ::core::ffi::c_int,
tensorOuputDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: *mut cudnnReorderType_t,
) -> cudnnStatus_t;
pub fn cudnnGetCudartVersion() -> usize;
pub fn cudnnGetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: *mut f32,
states: *mut *mut ::core::ffi::c_void,
seed: *mut ::core::ffi::c_ulonglong,
) -> cudnnStatus_t;
pub fn cudnnGetErrorString(status: cudnnStatus_t) -> *const ::core::ffi::c_char;
pub fn cudnnGetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
k: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
nbDims: *mut ::core::ffi::c_int,
filterDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetFilterSizeInBytes(
filterDesc: cudnnFilterDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetFoldedConvBackwardDataDescriptors(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
transformFormat: cudnnTensorFormat_t,
foldedFilterDesc: cudnnFilterDescriptor_t,
paddedDiffDesc: cudnnTensorDescriptor_t,
foldedConvDesc: cudnnConvolutionDescriptor_t,
foldedGradDesc: cudnnTensorDescriptor_t,
filterFoldTransDesc: cudnnTensorTransformDescriptor_t,
diffPadTransDesc: cudnnTensorTransformDescriptor_t,
gradFoldTransDesc: cudnnTensorTransformDescriptor_t,
gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t;
pub fn cudnnGetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *mut ::core::ffi::c_void,
isNULL: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnGetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: *mut ::core::ffi::c_uint,
lrnAlpha: *mut f64,
lrnBeta: *mut f64,
lrnK: *mut f64,
) -> cudnnStatus_t;
pub fn cudnnGetLastErrorString(message: *mut ::core::ffi::c_char, max_size: usize);
pub fn cudnnGetMaxDeviceVersion() -> usize;
pub fn cudnnGetMultiHeadAttnBuffers(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
weightSizeInBytes: *mut usize,
workSpaceSizeInBytes: *mut usize,
reserveSpaceSizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetMultiHeadAttnWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
wKind: cudnnMultiHeadAttnWeightKind_t,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
wDesc: cudnnTensorDescriptor_t,
wAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnGetNormalizationBackwardWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetNormalizationForwardTrainingWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
normScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetNormalizationTrainingReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: *mut cudnnOpTensorOp_t,
opTensorCompType: *mut cudnnDataType_t,
opTensorNanOpt: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t;
pub fn cudnnGetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
windowHeight: *mut ::core::ffi::c_int,
windowWidth: *mut ::core::ffi::c_int,
verticalPadding: *mut ::core::ffi::c_int,
horizontalPadding: *mut ::core::ffi::c_int,
verticalStride: *mut ::core::ffi::c_int,
horizontalStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetPooling2dForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
nbDims: *mut ::core::ffi::c_int,
windowDimA: *mut ::core::ffi::c_int,
paddingA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetPoolingNdForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
nbDims: ::core::ffi::c_int,
outputTensorDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetProperty(
type_: libraryPropertyType,
value: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: *mut cudnnDataType_t,
layout: *mut cudnnRNNDataLayout_t,
maxSeqLength: *mut ::core::ffi::c_int,
batchSize: *mut ::core::ffi::c_int,
vectorSize: *mut ::core::ffi::c_int,
arrayLengthRequested: ::core::ffi::c_int,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnGetRNNDescriptor_v8(
rnnDesc: cudnnRNNDescriptor_t,
algo: *mut cudnnRNNAlgo_t,
cellMode: *mut cudnnRNNMode_t,
biasMode: *mut cudnnRNNBiasMode_t,
dirMode: *mut cudnnDirectionMode_t,
inputMode: *mut cudnnRNNInputMode_t,
dataType: *mut cudnnDataType_t,
mathPrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
inputSize: *mut i32,
hiddenSize: *mut i32,
projSize: *mut i32,
numLayers: *mut i32,
dropoutDesc: *mut cudnnDropoutDescriptor_t,
auxFlags: *mut u32,
) -> cudnnStatus_t;
pub fn cudnnGetRNNTempSpaceSizes(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
xDesc: cudnnRNNDataDescriptor_t,
workSpaceSize: *mut usize,
reserveSpaceSize: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetRNNWeightParams(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: i32,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
linLayerID: i32,
mDesc: cudnnTensorDescriptor_t,
mAddr: *mut *mut ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
bAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnGetRNNWeightSpaceSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
weightSpaceSize: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: *mut cudnnReduceTensorOp_t,
reduceTensorCompType: *mut cudnnDataType_t,
reduceTensorNanOpt: *mut cudnnNanPropagation_t,
reduceTensorIndices: *mut cudnnReduceTensorIndices_t,
reduceTensorIndicesType: *mut cudnnIndicesType_t,
) -> cudnnStatus_t;
pub fn cudnnGetReductionIndicesSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetReductionWorkspaceSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
nbDimsRequested: ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
axes: *mut cudnnSeqDataAxis_t,
seqLengthArraySize: *mut usize,
seqLengthSizeRequested: usize,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnGetStream(handle: cudnnHandle_t, streamId: *mut cudaStream_t) -> cudnnStatus_t;
pub fn cudnnGetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: *mut cudnnDataType_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
nStride: *mut ::core::ffi::c_int,
cStride: *mut ::core::ffi::c_int,
hStride: *mut ::core::ffi::c_int,
wStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnGetTensorSizeInBytes(
tensorDesc: cudnnTensorDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnGetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDimsRequested: u32,
destFormat: *mut cudnnTensorFormat_t,
padBeforeA: *mut i32,
padAfterA: *mut i32,
foldA: *mut u32,
direction: *mut cudnnFoldingDirection_t,
) -> cudnnStatus_t;
pub fn cudnnGetVersion() -> usize;
pub fn cudnnGraphVersionCheck() -> cudnnStatus_t;
pub fn cudnnIm2Col(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
colBuffer: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnInitTransformDest(
transformDesc: cudnnTensorTransformDescriptor_t,
srcDesc: cudnnTensorDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
destSizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnLRNCrossChannelBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnLRNCrossChannelForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnMakeFusedOpsPlan(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
constPack: cudnnFusedOpsConstParamPack_t,
workspaceSizeInBytes: *mut usize,
) -> cudnnStatus_t;
pub fn cudnnMultiHeadAttnBackwardData(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsDQDO: *const ::core::ffi::c_int,
devSeqLengthsDKDV: *const ::core::ffi::c_int,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
dqDesc: cudnnSeqDataDescriptor_t,
dqueries: *mut ::core::ffi::c_void,
queries: *const ::core::ffi::c_void,
dkDesc: cudnnSeqDataDescriptor_t,
dkeys: *mut ::core::ffi::c_void,
keys: *const ::core::ffi::c_void,
dvDesc: cudnnSeqDataDescriptor_t,
dvalues: *mut ::core::ffi::c_void,
values: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnMultiHeadAttnBackwardWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
addGrad: cudnnWgradMode_t,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
dweights: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnMultiHeadAttnForward(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
currIdx: ::core::ffi::c_int,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsQO: *const ::core::ffi::c_int,
devSeqLengthsKV: *const ::core::ffi::c_int,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
residuals: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
oDesc: cudnnSeqDataDescriptor_t,
out: *mut ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
normScaleData: *const ::core::ffi::c_void,
normBiasData: *const ::core::ffi::c_void,
dNormScaleData: *mut ::core::ffi::c_void,
dNormBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
normMeanVarDesc: cudnnTensorDescriptor_t,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
epsilon: f64,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnOpTensor(
handle: cudnnHandle_t,
opTensorDesc: cudnnOpTensorDescriptor_t,
alpha1: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
alpha2: *const ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
B: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnOpsVersionCheck() -> cudnnStatus_t;
pub fn cudnnPoolingBackward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnPoolingForward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnQueryRuntimeError(
handle: cudnnHandle_t,
rstatus: *mut cudnnStatus_t,
mode: cudnnErrQueryMode_t,
tag: *mut cudnnRuntimeTag_t,
) -> cudnnStatus_t;
pub fn cudnnRNNBackwardData_v8(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
devSeqLengths: *const i32,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
xDesc: cudnnRNNDataDescriptor_t,
dx: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
dhy: *const ::core::ffi::c_void,
dhx: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
dcy: *const ::core::ffi::c_void,
dcx: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnRNNBackwardWeights_v8(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
addGrad: cudnnWgradMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
weightSpaceSize: usize,
dweightSpace: *mut ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnRNNForward(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
hy: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
cy: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnRNNGetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
clipNanOpt: *mut cudnnNanPropagation_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t;
pub fn cudnnRNNGetClip_v9(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t;
pub fn cudnnRNNSetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
clipNanOpt: cudnnNanPropagation_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t;
pub fn cudnnRNNSetClip_v9(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t;
pub fn cudnnReduceTensor(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
indices: *mut ::core::ffi::c_void,
indicesSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
workspaceSizeInBytes: usize,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnReorderFilterAndBias(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
reorderType: cudnnReorderType_t,
filterData: *const ::core::ffi::c_void,
reorderedFilterData: *mut ::core::ffi::c_void,
reorderBias: ::core::ffi::c_int,
biasData: *const ::core::ffi::c_void,
reorderedBiasData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnRestoreDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t;
pub fn cudnnScaleTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
alpha: *const ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: cudnnActivationMode_t,
reluNanOpt: cudnnNanPropagation_t,
coef: f64,
) -> cudnnStatus_t;
pub fn cudnnSetActivationDescriptorSwishBeta(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: f64,
) -> cudnnStatus_t;
pub fn cudnnSetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: ::core::ffi::c_uint,
nHeads: ::core::ffi::c_int,
smScaler: f64,
dataType: cudnnDataType_t,
computePrec: cudnnDataType_t,
mathType: cudnnMathType_t,
attnDropoutDesc: cudnnDropoutDescriptor_t,
postDropoutDesc: cudnnDropoutDescriptor_t,
qSize: ::core::ffi::c_int,
kSize: ::core::ffi::c_int,
vSize: ::core::ffi::c_int,
qProjSize: ::core::ffi::c_int,
kProjSize: ::core::ffi::c_int,
vProjSize: ::core::ffi::c_int,
oProjSize: ::core::ffi::c_int,
qoMaxSeqLength: ::core::ffi::c_int,
kvMaxSeqLength: ::core::ffi::c_int,
maxBatchSize: ::core::ffi::c_int,
maxBeamSize: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnSetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
) -> cudnnStatus_t;
pub fn cudnnSetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetCTCLossDescriptor_v9(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
ctcGradMode: cudnnCTCGradMode_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetCallback(
mask: ::core::ffi::c_uint,
udata: *mut ::core::ffi::c_void,
fptr: cudnnCallback_t,
) -> cudnnStatus_t;
pub fn cudnnSetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: ::core::ffi::c_int,
pad_w: ::core::ffi::c_int,
u: ::core::ffi::c_int,
v: ::core::ffi::c_int,
dilation_h: ::core::ffi::c_int,
dilation_w: ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnSetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: cudnnMathType_t,
) -> cudnnStatus_t;
pub fn cudnnSetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLength: ::core::ffi::c_int,
padA: *const ::core::ffi::c_int,
filterStrideA: *const ::core::ffi::c_int,
dilationA: *const ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t;
pub fn cudnnSetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: cudnnReorderType_t,
) -> cudnnStatus_t;
pub fn cudnnSetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t;
pub fn cudnnSetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
k: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
nbDims: ::core::ffi::c_int,
filterDimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *const ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: ::core::ffi::c_uint,
lrnAlpha: f64,
lrnBeta: f64,
lrnK: f64,
) -> cudnnStatus_t;
pub fn cudnnSetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: cudnnOpTensorOp_t,
opTensorCompType: cudnnDataType_t,
opTensorNanOpt: cudnnNanPropagation_t,
) -> cudnnStatus_t;
pub fn cudnnSetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
windowHeight: ::core::ffi::c_int,
windowWidth: ::core::ffi::c_int,
verticalPadding: ::core::ffi::c_int,
horizontalPadding: ::core::ffi::c_int,
verticalStride: ::core::ffi::c_int,
horizontalStride: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
nbDims: ::core::ffi::c_int,
windowDimA: *const ::core::ffi::c_int,
paddingA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: cudnnDataType_t,
layout: cudnnRNNDataLayout_t,
maxSeqLength: ::core::ffi::c_int,
batchSize: ::core::ffi::c_int,
vectorSize: ::core::ffi::c_int,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetRNNDescriptor_v8(
rnnDesc: cudnnRNNDescriptor_t,
algo: cudnnRNNAlgo_t,
cellMode: cudnnRNNMode_t,
biasMode: cudnnRNNBiasMode_t,
dirMode: cudnnDirectionMode_t,
inputMode: cudnnRNNInputMode_t,
dataType: cudnnDataType_t,
mathPrec: cudnnDataType_t,
mathType: cudnnMathType_t,
inputSize: i32,
hiddenSize: i32,
projSize: i32,
numLayers: i32,
dropoutDesc: cudnnDropoutDescriptor_t,
auxFlags: u32,
) -> cudnnStatus_t;
pub fn cudnnSetReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: cudnnReduceTensorOp_t,
reduceTensorCompType: cudnnDataType_t,
reduceTensorNanOpt: cudnnNanPropagation_t,
reduceTensorIndices: cudnnReduceTensorIndices_t,
reduceTensorIndicesType: cudnnIndicesType_t,
) -> cudnnStatus_t;
pub fn cudnnSetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
axes: *const cudnnSeqDataAxis_t,
seqLengthArraySize: usize,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetSpatialTransformerNdDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
samplerType: cudnnSamplerType_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetStream(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t;
pub fn cudnnSetTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
valuePtr: *const ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetTensor4dDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
nStride: ::core::ffi::c_int,
cStride: ::core::ffi::c_int,
hStride: ::core::ffi::c_int,
wStride: ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetTensorNdDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t;
pub fn cudnnSetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDims: u32,
destFormat: cudnnTensorFormat_t,
padBeforeA: *const i32,
padAfterA: *const i32,
foldA: *const u32,
direction: cudnnFoldingDirection_t,
) -> cudnnStatus_t;
pub fn cudnnSoftmaxBackward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSoftmaxForward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSpatialTfGridGeneratorBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
dgrid: *const ::core::ffi::c_void,
dtheta: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSpatialTfGridGeneratorForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
theta: *const ::core::ffi::c_void,
grid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSpatialTfSamplerBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
alphaDgrid: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
betaDgrid: *const ::core::ffi::c_void,
dgrid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnSpatialTfSamplerForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnTransformFilter(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnFilterDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnFilterDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnTransformTensor(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
pub fn cudnnTransformTensorEx(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnTensorDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnTensorDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t;
}
#[cfg(feature = "dynamic-loading")]
mod loaded {
use super::*;
pub unsafe fn cudnnActivationBackward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnActivationBackward)(
handle,
activationDesc,
alpha,
yDesc,
y,
dyDesc,
dy,
xDesc,
x,
beta,
dxDesc,
dx,
)
}
pub unsafe fn cudnnActivationForward(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnActivationForward)(handle, activationDesc, alpha, xDesc, x, beta, yDesc, y)
}
pub unsafe fn cudnnAddTensor(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnAddTensor)(handle, alpha, aDesc, A, beta, cDesc, C)
}
pub unsafe fn cudnnAdvVersionCheck() -> cudnnStatus_t {
(culib().cudnnAdvVersionCheck)()
}
pub unsafe fn cudnnBackendCreateDescriptor(
descriptorType: cudnnBackendDescriptorType_t,
descriptor: *mut cudnnBackendDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnBackendCreateDescriptor)(descriptorType, descriptor)
}
pub unsafe fn cudnnBackendDestroyDescriptor(
descriptor: cudnnBackendDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnBackendDestroyDescriptor)(descriptor)
}
pub unsafe fn cudnnBackendExecute(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnBackendExecute)(handle, executionPlan, variantPack)
}
pub unsafe fn cudnnBackendFinalize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t {
(culib().cudnnBackendFinalize)(descriptor)
}
pub unsafe fn cudnnBackendGetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
requestedElementCount: i64,
elementCount: *mut i64,
arrayOfElements: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnBackendGetAttribute)(
descriptor,
attributeName,
attributeType,
requestedElementCount,
elementCount,
arrayOfElements,
)
}
pub unsafe fn cudnnBackendInitialize(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t {
(culib().cudnnBackendInitialize)(descriptor)
}
pub unsafe fn cudnnBackendPopulateCudaGraph(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t {
(culib().cudnnBackendPopulateCudaGraph)(handle, executionPlan, variantPack, graph)
}
pub unsafe fn cudnnBackendSetAttribute(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
elementCount: i64,
arrayOfElements: *const ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnBackendSetAttribute)(
descriptor,
attributeName,
attributeType,
elementCount,
arrayOfElements,
)
}
pub unsafe fn cudnnBackendUpdateCudaGraph(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t {
(culib().cudnnBackendUpdateCudaGraph)(handle, executionPlan, variantPack, graph)
}
pub unsafe fn cudnnBatchNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
dBnScaleResult: *mut ::core::ffi::c_void,
dBnBiasResult: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnBatchNormalizationBackward)(
handle,
mode,
alphaDataDiff,
betaDataDiff,
alphaParamDiff,
betaParamDiff,
xDesc,
x,
dyDesc,
dy,
dxDesc,
dx,
dBnScaleBiasDesc,
bnScale,
dBnScaleResult,
dBnBiasResult,
epsilon,
savedMean,
savedInvVariance,
)
}
pub unsafe fn cudnnBatchNormalizationBackwardEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScaleData: *const ::core::ffi::c_void,
bnBiasData: *const ::core::ffi::c_void,
dBnScaleData: *mut ::core::ffi::c_void,
dBnBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnBatchNormalizationBackwardEx)(
handle,
mode,
bnOps,
alphaDataDiff,
betaDataDiff,
alphaParamDiff,
betaParamDiff,
xDesc,
xData,
yDesc,
yData,
dyDesc,
dyData,
dzDesc,
dzData,
dxDesc,
dxData,
dBnScaleBiasDesc,
bnScaleData,
bnBiasData,
dBnScaleData,
dBnBiasData,
epsilon,
savedMean,
savedInvVariance,
activationDesc,
workSpace,
workSpaceSizeInBytes,
reserveSpace,
reserveSpaceSizeInBytes,
)
}
pub unsafe fn cudnnBatchNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
epsilon: f64,
) -> cudnnStatus_t {
(culib().cudnnBatchNormalizationForwardInference)(
handle,
mode,
alpha,
beta,
xDesc,
x,
yDesc,
y,
bnScaleBiasMeanVarDesc,
bnScale,
bnBias,
estimatedMean,
estimatedVariance,
epsilon,
)
}
pub unsafe fn cudnnBatchNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnBatchNormalizationForwardTraining)(
handle,
mode,
alpha,
beta,
xDesc,
x,
yDesc,
y,
bnScaleBiasMeanVarDesc,
bnScale,
bnBias,
exponentialAverageFactor,
resultRunningMean,
resultRunningVariance,
epsilon,
resultSaveMean,
resultSaveInvVariance,
)
}
pub unsafe fn cudnnBatchNormalizationForwardTrainingEx(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnBatchNormalizationForwardTrainingEx)(
handle,
mode,
bnOps,
alpha,
beta,
xDesc,
xData,
zDesc,
zData,
yDesc,
yData,
bnScaleBiasMeanVarDesc,
bnScale,
bnBias,
exponentialAverageFactor,
resultRunningMean,
resultRunningVariance,
epsilon,
resultSaveMean,
resultSaveInvVariance,
activationDesc,
workspace,
workSpaceSizeInBytes,
reserveSpace,
reserveSpaceSizeInBytes,
)
}
pub unsafe fn cudnnBuildRNNDynamic(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
miniBatch: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnBuildRNNDynamic)(handle, rnnDesc, miniBatch)
}
pub unsafe fn cudnnCTCLoss(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
hostLabels: *const ::core::ffi::c_int,
hostLabelLengths: *const ::core::ffi::c_int,
hostInputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnCTCLoss)(
handle,
probsDesc,
probs,
hostLabels,
hostLabelLengths,
hostInputLengths,
costs,
gradientsDesc,
gradients,
algo,
ctcLossDesc,
workspace,
workSpaceSizeInBytes,
)
}
pub unsafe fn cudnnCTCLoss_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnCTCLoss_v8)(
handle,
algo,
ctcLossDesc,
probsDesc,
probs,
labels,
labelLengths,
inputLengths,
costs,
gradientsDesc,
gradients,
workSpaceSizeInBytes,
workspace,
)
}
pub unsafe fn cudnnCnnVersionCheck() -> cudnnStatus_t {
(culib().cudnnCnnVersionCheck)()
}
pub unsafe fn cudnnConvolutionBackwardBias(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dbDesc: cudnnTensorDescriptor_t,
db: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnConvolutionBackwardBias)(handle, alpha, dyDesc, dy, beta, dbDesc, db)
}
pub unsafe fn cudnnConvolutionBackwardData(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnConvolutionBackwardData)(
handle,
alpha,
wDesc,
w,
dyDesc,
dy,
convDesc,
algo,
workSpace,
workSpaceSizeInBytes,
beta,
dxDesc,
dx,
)
}
pub unsafe fn cudnnConvolutionBackwardFilter(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnConvolutionBackwardFilter)(
handle,
alpha,
xDesc,
x,
dyDesc,
dy,
convDesc,
algo,
workSpace,
workSpaceSizeInBytes,
beta,
dwDesc,
dw,
)
}
pub unsafe fn cudnnConvolutionBiasActivationForward(
handle: cudnnHandle_t,
alpha1: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
alpha2: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
biasDesc: cudnnTensorDescriptor_t,
bias: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnConvolutionBiasActivationForward)(
handle,
alpha1,
xDesc,
x,
wDesc,
w,
convDesc,
algo,
workSpace,
workSpaceSizeInBytes,
alpha2,
zDesc,
z,
biasDesc,
bias,
activationDesc,
yDesc,
y,
)
}
pub unsafe fn cudnnConvolutionForward(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnConvolutionForward)(
handle,
alpha,
xDesc,
x,
wDesc,
w,
convDesc,
algo,
workSpace,
workSpaceSizeInBytes,
beta,
yDesc,
y,
)
}
pub unsafe fn cudnnCreate(handle: *mut cudnnHandle_t) -> cudnnStatus_t {
(culib().cudnnCreate)(handle)
}
pub unsafe fn cudnnCreateActivationDescriptor(
activationDesc: *mut cudnnActivationDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateActivationDescriptor)(activationDesc)
}
pub unsafe fn cudnnCreateAttnDescriptor(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t {
(culib().cudnnCreateAttnDescriptor)(attnDesc)
}
pub unsafe fn cudnnCreateCTCLossDescriptor(
ctcLossDesc: *mut cudnnCTCLossDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateCTCLossDescriptor)(ctcLossDesc)
}
pub unsafe fn cudnnCreateConvolutionDescriptor(
convDesc: *mut cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateConvolutionDescriptor)(convDesc)
}
pub unsafe fn cudnnCreateDropoutDescriptor(
dropoutDesc: *mut cudnnDropoutDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateDropoutDescriptor)(dropoutDesc)
}
pub unsafe fn cudnnCreateFilterDescriptor(
filterDesc: *mut cudnnFilterDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateFilterDescriptor)(filterDesc)
}
pub unsafe fn cudnnCreateFusedOpsConstParamPack(
constPack: *mut cudnnFusedOpsConstParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t {
(culib().cudnnCreateFusedOpsConstParamPack)(constPack, ops)
}
pub unsafe fn cudnnCreateFusedOpsPlan(
plan: *mut cudnnFusedOpsPlan_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t {
(culib().cudnnCreateFusedOpsPlan)(plan, ops)
}
pub unsafe fn cudnnCreateFusedOpsVariantParamPack(
varPack: *mut cudnnFusedOpsVariantParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t {
(culib().cudnnCreateFusedOpsVariantParamPack)(varPack, ops)
}
pub unsafe fn cudnnCreateLRNDescriptor(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t {
(culib().cudnnCreateLRNDescriptor)(normDesc)
}
pub unsafe fn cudnnCreateOpTensorDescriptor(
opTensorDesc: *mut cudnnOpTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateOpTensorDescriptor)(opTensorDesc)
}
pub unsafe fn cudnnCreatePoolingDescriptor(
poolingDesc: *mut cudnnPoolingDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreatePoolingDescriptor)(poolingDesc)
}
pub unsafe fn cudnnCreateRNNDataDescriptor(
rnnDataDesc: *mut cudnnRNNDataDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateRNNDataDescriptor)(rnnDataDesc)
}
pub unsafe fn cudnnCreateRNNDescriptor(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t {
(culib().cudnnCreateRNNDescriptor)(rnnDesc)
}
pub unsafe fn cudnnCreateReduceTensorDescriptor(
reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateReduceTensorDescriptor)(reduceTensorDesc)
}
pub unsafe fn cudnnCreateSeqDataDescriptor(
seqDataDesc: *mut cudnnSeqDataDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateSeqDataDescriptor)(seqDataDesc)
}
pub unsafe fn cudnnCreateSpatialTransformerDescriptor(
stDesc: *mut cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateSpatialTransformerDescriptor)(stDesc)
}
pub unsafe fn cudnnCreateTensorDescriptor(
tensorDesc: *mut cudnnTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateTensorDescriptor)(tensorDesc)
}
pub unsafe fn cudnnCreateTensorTransformDescriptor(
transformDesc: *mut cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnCreateTensorTransformDescriptor)(transformDesc)
}
pub unsafe fn cudnnDeriveBNTensorDescriptor(
derivedBnDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnBatchNormMode_t,
) -> cudnnStatus_t {
(culib().cudnnDeriveBNTensorDescriptor)(derivedBnDesc, xDesc, mode)
}
pub unsafe fn cudnnDeriveNormTensorDescriptor(
derivedNormScaleBiasDesc: cudnnTensorDescriptor_t,
derivedNormMeanVarDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnNormMode_t,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnDeriveNormTensorDescriptor)(
derivedNormScaleBiasDesc,
derivedNormMeanVarDesc,
xDesc,
mode,
groupCnt,
)
}
pub unsafe fn cudnnDestroy(handle: cudnnHandle_t) -> cudnnStatus_t {
(culib().cudnnDestroy)(handle)
}
pub unsafe fn cudnnDestroyActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyActivationDescriptor)(activationDesc)
}
pub unsafe fn cudnnDestroyAttnDescriptor(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t {
(culib().cudnnDestroyAttnDescriptor)(attnDesc)
}
pub unsafe fn cudnnDestroyCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyCTCLossDescriptor)(ctcLossDesc)
}
pub unsafe fn cudnnDestroyConvolutionDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyConvolutionDescriptor)(convDesc)
}
pub unsafe fn cudnnDestroyDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyDropoutDescriptor)(dropoutDesc)
}
pub unsafe fn cudnnDestroyFilterDescriptor(
filterDesc: cudnnFilterDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyFilterDescriptor)(filterDesc)
}
pub unsafe fn cudnnDestroyFusedOpsConstParamPack(
constPack: cudnnFusedOpsConstParamPack_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyFusedOpsConstParamPack)(constPack)
}
pub unsafe fn cudnnDestroyFusedOpsPlan(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t {
(culib().cudnnDestroyFusedOpsPlan)(plan)
}
pub unsafe fn cudnnDestroyFusedOpsVariantParamPack(
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyFusedOpsVariantParamPack)(varPack)
}
pub unsafe fn cudnnDestroyLRNDescriptor(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t {
(culib().cudnnDestroyLRNDescriptor)(lrnDesc)
}
pub unsafe fn cudnnDestroyOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyOpTensorDescriptor)(opTensorDesc)
}
pub unsafe fn cudnnDestroyPoolingDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyPoolingDescriptor)(poolingDesc)
}
pub unsafe fn cudnnDestroyRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyRNNDataDescriptor)(rnnDataDesc)
}
pub unsafe fn cudnnDestroyRNNDescriptor(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t {
(culib().cudnnDestroyRNNDescriptor)(rnnDesc)
}
pub unsafe fn cudnnDestroyReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyReduceTensorDescriptor)(reduceTensorDesc)
}
pub unsafe fn cudnnDestroySeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroySeqDataDescriptor)(seqDataDesc)
}
pub unsafe fn cudnnDestroySpatialTransformerDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroySpatialTransformerDescriptor)(stDesc)
}
pub unsafe fn cudnnDestroyTensorDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyTensorDescriptor)(tensorDesc)
}
pub unsafe fn cudnnDestroyTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnDestroyTensorTransformDescriptor)(transformDesc)
}
pub unsafe fn cudnnDivisiveNormalizationBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dXdMeansDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dMeans: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnDivisiveNormalizationBackward)(
handle,
normDesc,
mode,
alpha,
xDesc,
x,
means,
dy,
temp,
temp2,
beta,
dXdMeansDesc,
dx,
dMeans,
)
}
pub unsafe fn cudnnDivisiveNormalizationForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnDivisiveNormalizationForward)(
handle, normDesc, mode, alpha, xDesc, x, means, temp, temp2, beta, yDesc, y,
)
}
pub unsafe fn cudnnDropoutBackward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
dydesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxdesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnDropoutBackward)(
handle,
dropoutDesc,
dydesc,
dy,
dxdesc,
dx,
reserveSpace,
reserveSpaceSizeInBytes,
)
}
pub unsafe fn cudnnDropoutForward(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
xdesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
ydesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnDropoutForward)(
handle,
dropoutDesc,
xdesc,
x,
ydesc,
y,
reserveSpace,
reserveSpaceSizeInBytes,
)
}
pub unsafe fn cudnnDropoutGetReserveSpaceSize(
xdesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnDropoutGetReserveSpaceSize)(xdesc, sizeInBytes)
}
pub unsafe fn cudnnDropoutGetStatesSize(
handle: cudnnHandle_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnDropoutGetStatesSize)(handle, sizeInBytes)
}
pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithm(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionBackwardDataAlgorithm)(
handle,
wDesc,
dyDesc,
convDesc,
dxDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnFindConvolutionBackwardDataAlgorithmEx(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionBackwardDataAlgorithmEx)(
handle,
wDesc,
w,
dyDesc,
dy,
convDesc,
dxDesc,
dx,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
workSpace,
workSpaceSizeInBytes,
)
}
pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionBackwardFilterAlgorithm)(
handle,
xDesc,
dyDesc,
convDesc,
dwDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnFindConvolutionBackwardFilterAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionBackwardFilterAlgorithmEx)(
handle,
xDesc,
x,
dyDesc,
y,
convDesc,
dwDesc,
dw,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
workSpace,
workSpaceSizeInBytes,
)
}
pub unsafe fn cudnnFindConvolutionForwardAlgorithm(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionForwardAlgorithm)(
handle,
xDesc,
wDesc,
convDesc,
yDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnFindConvolutionForwardAlgorithmEx(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t {
(culib().cudnnFindConvolutionForwardAlgorithmEx)(
handle,
xDesc,
x,
wDesc,
w,
convDesc,
yDesc,
y,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
workSpace,
workSpaceSizeInBytes,
)
}
pub unsafe fn cudnnFusedOpsExecute(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t {
(culib().cudnnFusedOpsExecute)(handle, plan, varPack)
}
pub unsafe fn cudnnGetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: *mut cudnnActivationMode_t,
reluNanOpt: *mut cudnnNanPropagation_t,
coef: *mut f64,
) -> cudnnStatus_t {
(culib().cudnnGetActivationDescriptor)(activationDesc, mode, reluNanOpt, coef)
}
pub unsafe fn cudnnGetActivationDescriptorSwishBeta(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: *mut f64,
) -> cudnnStatus_t {
(culib().cudnnGetActivationDescriptorSwishBeta)(activationDesc, swish_beta)
}
pub unsafe fn cudnnGetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: *mut ::core::ffi::c_uint,
nHeads: *mut ::core::ffi::c_int,
smScaler: *mut f64,
dataType: *mut cudnnDataType_t,
computePrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
attnDropoutDesc: *mut cudnnDropoutDescriptor_t,
postDropoutDesc: *mut cudnnDropoutDescriptor_t,
qSize: *mut ::core::ffi::c_int,
kSize: *mut ::core::ffi::c_int,
vSize: *mut ::core::ffi::c_int,
qProjSize: *mut ::core::ffi::c_int,
kProjSize: *mut ::core::ffi::c_int,
vProjSize: *mut ::core::ffi::c_int,
oProjSize: *mut ::core::ffi::c_int,
qoMaxSeqLength: *mut ::core::ffi::c_int,
kvMaxSeqLength: *mut ::core::ffi::c_int,
maxBatchSize: *mut ::core::ffi::c_int,
maxBeamSize: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetAttnDescriptor)(
attnDesc,
attnMode,
nHeads,
smScaler,
dataType,
computePrec,
mathType,
attnDropoutDesc,
postDropoutDesc,
qSize,
kSize,
vSize,
qProjSize,
kProjSize,
vProjSize,
oProjSize,
qoMaxSeqLength,
kvMaxSeqLength,
maxBatchSize,
maxBeamSize,
)
}
pub unsafe fn cudnnGetBatchNormalizationBackwardExWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetBatchNormalizationBackwardExWorkspaceSize)(
handle,
mode,
bnOps,
xDesc,
yDesc,
dyDesc,
dzDesc,
dxDesc,
dBnScaleBiasDesc,
activationDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize)(
handle,
mode,
bnOps,
xDesc,
zDesc,
yDesc,
bnScaleBiasMeanVarDesc,
activationDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetBatchNormalizationTrainingExReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetBatchNormalizationTrainingExReserveSpaceSize)(
handle,
mode,
bnOps,
activationDesc,
xDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossDescriptor)(ctcLossDesc, compType)
}
pub unsafe fn cudnnGetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossDescriptorEx)(ctcLossDesc, compType, normMode, gradMode)
}
pub unsafe fn cudnnGetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossDescriptor_v8)(
ctcLossDesc,
compType,
normMode,
gradMode,
maxLabelLength,
)
}
pub unsafe fn cudnnGetCTCLossDescriptor_v9(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
ctcGradMode: *mut cudnnCTCGradMode_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossDescriptor_v9)(
ctcLossDesc,
compType,
normMode,
ctcGradMode,
maxLabelLength,
)
}
pub unsafe fn cudnnGetCTCLossWorkspaceSize(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossWorkspaceSize)(
handle,
probsDesc,
gradientsDesc,
labels,
labelLengths,
inputLengths,
algo,
ctcLossDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetCTCLossWorkspaceSize_v8(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetCTCLossWorkspaceSize_v8)(
handle,
algo,
ctcLossDesc,
probsDesc,
gradientsDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetCallback(
mask: *mut ::core::ffi::c_uint,
udata: *mut *mut ::core::ffi::c_void,
fptr: *mut cudnnCallback_t,
) -> cudnnStatus_t {
(culib().cudnnGetCallback)(mask, udata, fptr)
}
pub unsafe fn cudnnGetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: *mut ::core::ffi::c_int,
pad_w: *mut ::core::ffi::c_int,
u: *mut ::core::ffi::c_int,
v: *mut ::core::ffi::c_int,
dilation_h: *mut ::core::ffi::c_int,
dilation_w: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolution2dDescriptor)(
convDesc,
pad_h,
pad_w,
u,
v,
dilation_h,
dilation_w,
mode,
computeType,
)
}
pub unsafe fn cudnnGetConvolution2dForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolution2dForwardOutputDim)(
convDesc,
inputTensorDesc,
filterDesc,
n,
c,
h,
w,
)
}
pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardDataAlgorithmMaxCount)(handle, count)
}
pub unsafe fn cudnnGetConvolutionBackwardDataAlgorithm_v7(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardDataAlgorithm_v7)(
handle,
filterDesc,
diffDesc,
convDesc,
gradDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnGetConvolutionBackwardDataWorkspaceSize(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardDataWorkspaceSize)(
handle,
wDesc,
dyDesc,
convDesc,
dxDesc,
algo,
sizeInBytes,
)
}
pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardFilterAlgorithmMaxCount)(handle, count)
}
pub unsafe fn cudnnGetConvolutionBackwardFilterAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardFilterAlgorithm_v7)(
handle,
srcDesc,
diffDesc,
convDesc,
gradDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnGetConvolutionBackwardFilterWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionBackwardFilterWorkspaceSize)(
handle,
xDesc,
dyDesc,
convDesc,
gradDesc,
algo,
sizeInBytes,
)
}
pub unsafe fn cudnnGetConvolutionForwardAlgorithmMaxCount(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionForwardAlgorithmMaxCount)(handle, count)
}
pub unsafe fn cudnnGetConvolutionForwardAlgorithm_v7(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionForwardAlgorithm_v7)(
handle,
srcDesc,
filterDesc,
convDesc,
destDesc,
requestedAlgoCount,
returnedAlgoCount,
perfResults,
)
}
pub unsafe fn cudnnGetConvolutionForwardWorkspaceSize(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionForwardWorkspaceSize)(
handle,
xDesc,
wDesc,
convDesc,
yDesc,
algo,
sizeInBytes,
)
}
pub unsafe fn cudnnGetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionGroupCount)(convDesc, groupCount)
}
pub unsafe fn cudnnGetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: *mut cudnnMathType_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionMathType)(convDesc, mathType)
}
pub unsafe fn cudnnGetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLengthRequested: ::core::ffi::c_int,
arrayLength: *mut ::core::ffi::c_int,
padA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
dilationA: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionNdDescriptor)(
convDesc,
arrayLengthRequested,
arrayLength,
padA,
strideA,
dilationA,
mode,
computeType,
)
}
pub unsafe fn cudnnGetConvolutionNdForwardOutputDim(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
nbDims: ::core::ffi::c_int,
tensorOuputDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionNdForwardOutputDim)(
convDesc,
inputTensorDesc,
filterDesc,
nbDims,
tensorOuputDimA,
)
}
pub unsafe fn cudnnGetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: *mut cudnnReorderType_t,
) -> cudnnStatus_t {
(culib().cudnnGetConvolutionReorderType)(convDesc, reorderType)
}
pub unsafe fn cudnnGetCudartVersion() -> usize {
(culib().cudnnGetCudartVersion)()
}
pub unsafe fn cudnnGetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: *mut f32,
states: *mut *mut ::core::ffi::c_void,
seed: *mut ::core::ffi::c_ulonglong,
) -> cudnnStatus_t {
(culib().cudnnGetDropoutDescriptor)(dropoutDesc, handle, dropout, states, seed)
}
pub unsafe fn cudnnGetErrorString(status: cudnnStatus_t) -> *const ::core::ffi::c_char {
(culib().cudnnGetErrorString)(status)
}
pub unsafe fn cudnnGetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
k: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetFilter4dDescriptor)(filterDesc, dataType, format, k, c, h, w)
}
pub unsafe fn cudnnGetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
nbDims: *mut ::core::ffi::c_int,
filterDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetFilterNdDescriptor)(
filterDesc,
nbDimsRequested,
dataType,
format,
nbDims,
filterDimA,
)
}
pub unsafe fn cudnnGetFilterSizeInBytes(
filterDesc: cudnnFilterDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetFilterSizeInBytes)(filterDesc, size)
}
pub unsafe fn cudnnGetFoldedConvBackwardDataDescriptors(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
transformFormat: cudnnTensorFormat_t,
foldedFilterDesc: cudnnFilterDescriptor_t,
paddedDiffDesc: cudnnTensorDescriptor_t,
foldedConvDesc: cudnnConvolutionDescriptor_t,
foldedGradDesc: cudnnTensorDescriptor_t,
filterFoldTransDesc: cudnnTensorTransformDescriptor_t,
diffPadTransDesc: cudnnTensorTransformDescriptor_t,
gradFoldTransDesc: cudnnTensorTransformDescriptor_t,
gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t {
(culib().cudnnGetFoldedConvBackwardDataDescriptors)(
handle,
filterDesc,
diffDesc,
convDesc,
gradDesc,
transformFormat,
foldedFilterDesc,
paddedDiffDesc,
foldedConvDesc,
foldedGradDesc,
filterFoldTransDesc,
diffPadTransDesc,
gradFoldTransDesc,
gradUnfoldTransDesc,
)
}
pub unsafe fn cudnnGetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *mut ::core::ffi::c_void,
isNULL: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetFusedOpsConstParamPackAttribute)(constPack, paramLabel, param, isNULL)
}
pub unsafe fn cudnnGetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnGetFusedOpsVariantParamPackAttribute)(varPack, paramLabel, ptr)
}
pub unsafe fn cudnnGetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: *mut ::core::ffi::c_uint,
lrnAlpha: *mut f64,
lrnBeta: *mut f64,
lrnK: *mut f64,
) -> cudnnStatus_t {
(culib().cudnnGetLRNDescriptor)(normDesc, lrnN, lrnAlpha, lrnBeta, lrnK)
}
pub unsafe fn cudnnGetLastErrorString(message: *mut ::core::ffi::c_char, max_size: usize) {
(culib().cudnnGetLastErrorString)(message, max_size)
}
pub unsafe fn cudnnGetMaxDeviceVersion() -> usize {
(culib().cudnnGetMaxDeviceVersion)()
}
pub unsafe fn cudnnGetMultiHeadAttnBuffers(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
weightSizeInBytes: *mut usize,
workSpaceSizeInBytes: *mut usize,
reserveSpaceSizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetMultiHeadAttnBuffers)(
handle,
attnDesc,
weightSizeInBytes,
workSpaceSizeInBytes,
reserveSpaceSizeInBytes,
)
}
pub unsafe fn cudnnGetMultiHeadAttnWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
wKind: cudnnMultiHeadAttnWeightKind_t,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
wDesc: cudnnTensorDescriptor_t,
wAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnGetMultiHeadAttnWeights)(
handle,
attnDesc,
wKind,
weightSizeInBytes,
weights,
wDesc,
wAddr,
)
}
pub unsafe fn cudnnGetNormalizationBackwardWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetNormalizationBackwardWorkspaceSize)(
handle,
mode,
normOps,
algo,
xDesc,
yDesc,
dyDesc,
dzDesc,
dxDesc,
dNormScaleBiasDesc,
activationDesc,
normMeanVarDesc,
sizeInBytes,
groupCnt,
)
}
pub unsafe fn cudnnGetNormalizationForwardTrainingWorkspaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
normScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetNormalizationForwardTrainingWorkspaceSize)(
handle,
mode,
normOps,
algo,
xDesc,
zDesc,
yDesc,
normScaleBiasDesc,
activationDesc,
normMeanVarDesc,
sizeInBytes,
groupCnt,
)
}
pub unsafe fn cudnnGetNormalizationTrainingReserveSpaceSize(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetNormalizationTrainingReserveSpaceSize)(
handle,
mode,
normOps,
algo,
activationDesc,
xDesc,
sizeInBytes,
groupCnt,
)
}
pub unsafe fn cudnnGetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: *mut cudnnOpTensorOp_t,
opTensorCompType: *mut cudnnDataType_t,
opTensorNanOpt: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t {
(culib().cudnnGetOpTensorDescriptor)(
opTensorDesc,
opTensorOp,
opTensorCompType,
opTensorNanOpt,
)
}
pub unsafe fn cudnnGetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
windowHeight: *mut ::core::ffi::c_int,
windowWidth: *mut ::core::ffi::c_int,
verticalPadding: *mut ::core::ffi::c_int,
horizontalPadding: *mut ::core::ffi::c_int,
verticalStride: *mut ::core::ffi::c_int,
horizontalStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetPooling2dDescriptor)(
poolingDesc,
mode,
maxpoolingNanOpt,
windowHeight,
windowWidth,
verticalPadding,
horizontalPadding,
verticalStride,
horizontalStride,
)
}
pub unsafe fn cudnnGetPooling2dForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetPooling2dForwardOutputDim)(poolingDesc, inputTensorDesc, n, c, h, w)
}
pub unsafe fn cudnnGetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
nbDims: *mut ::core::ffi::c_int,
windowDimA: *mut ::core::ffi::c_int,
paddingA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetPoolingNdDescriptor)(
poolingDesc,
nbDimsRequested,
mode,
maxpoolingNanOpt,
nbDims,
windowDimA,
paddingA,
strideA,
)
}
pub unsafe fn cudnnGetPoolingNdForwardOutputDim(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
nbDims: ::core::ffi::c_int,
outputTensorDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetPoolingNdForwardOutputDim)(
poolingDesc,
inputTensorDesc,
nbDims,
outputTensorDimA,
)
}
pub unsafe fn cudnnGetProperty(
type_: libraryPropertyType,
value: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetProperty)(type_, value)
}
pub unsafe fn cudnnGetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: *mut cudnnDataType_t,
layout: *mut cudnnRNNDataLayout_t,
maxSeqLength: *mut ::core::ffi::c_int,
batchSize: *mut ::core::ffi::c_int,
vectorSize: *mut ::core::ffi::c_int,
arrayLengthRequested: ::core::ffi::c_int,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnGetRNNDataDescriptor)(
rnnDataDesc,
dataType,
layout,
maxSeqLength,
batchSize,
vectorSize,
arrayLengthRequested,
seqLengthArray,
paddingFill,
)
}
pub unsafe fn cudnnGetRNNDescriptor_v8(
rnnDesc: cudnnRNNDescriptor_t,
algo: *mut cudnnRNNAlgo_t,
cellMode: *mut cudnnRNNMode_t,
biasMode: *mut cudnnRNNBiasMode_t,
dirMode: *mut cudnnDirectionMode_t,
inputMode: *mut cudnnRNNInputMode_t,
dataType: *mut cudnnDataType_t,
mathPrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
inputSize: *mut i32,
hiddenSize: *mut i32,
projSize: *mut i32,
numLayers: *mut i32,
dropoutDesc: *mut cudnnDropoutDescriptor_t,
auxFlags: *mut u32,
) -> cudnnStatus_t {
(culib().cudnnGetRNNDescriptor_v8)(
rnnDesc,
algo,
cellMode,
biasMode,
dirMode,
inputMode,
dataType,
mathPrec,
mathType,
inputSize,
hiddenSize,
projSize,
numLayers,
dropoutDesc,
auxFlags,
)
}
pub unsafe fn cudnnGetRNNTempSpaceSizes(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
xDesc: cudnnRNNDataDescriptor_t,
workSpaceSize: *mut usize,
reserveSpaceSize: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetRNNTempSpaceSizes)(
handle,
rnnDesc,
fwdMode,
xDesc,
workSpaceSize,
reserveSpaceSize,
)
}
pub unsafe fn cudnnGetRNNWeightParams(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: i32,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
linLayerID: i32,
mDesc: cudnnTensorDescriptor_t,
mAddr: *mut *mut ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
bAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnGetRNNWeightParams)(
handle,
rnnDesc,
pseudoLayer,
weightSpaceSize,
weightSpace,
linLayerID,
mDesc,
mAddr,
bDesc,
bAddr,
)
}
pub unsafe fn cudnnGetRNNWeightSpaceSize(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
weightSpaceSize: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetRNNWeightSpaceSize)(handle, rnnDesc, weightSpaceSize)
}
pub unsafe fn cudnnGetReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: *mut cudnnReduceTensorOp_t,
reduceTensorCompType: *mut cudnnDataType_t,
reduceTensorNanOpt: *mut cudnnNanPropagation_t,
reduceTensorIndices: *mut cudnnReduceTensorIndices_t,
reduceTensorIndicesType: *mut cudnnIndicesType_t,
) -> cudnnStatus_t {
(culib().cudnnGetReduceTensorDescriptor)(
reduceTensorDesc,
reduceTensorOp,
reduceTensorCompType,
reduceTensorNanOpt,
reduceTensorIndices,
reduceTensorIndicesType,
)
}
pub unsafe fn cudnnGetReductionIndicesSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetReductionIndicesSize)(handle, reduceTensorDesc, aDesc, cDesc, sizeInBytes)
}
pub unsafe fn cudnnGetReductionWorkspaceSize(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetReductionWorkspaceSize)(
handle,
reduceTensorDesc,
aDesc,
cDesc,
sizeInBytes,
)
}
pub unsafe fn cudnnGetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
nbDimsRequested: ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
axes: *mut cudnnSeqDataAxis_t,
seqLengthArraySize: *mut usize,
seqLengthSizeRequested: usize,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnGetSeqDataDescriptor)(
seqDataDesc,
dataType,
nbDims,
nbDimsRequested,
dimA,
axes,
seqLengthArraySize,
seqLengthSizeRequested,
seqLengthArray,
paddingFill,
)
}
pub unsafe fn cudnnGetStream(
handle: cudnnHandle_t,
streamId: *mut cudaStream_t,
) -> cudnnStatus_t {
(culib().cudnnGetStream)(handle, streamId)
}
pub unsafe fn cudnnGetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: *mut cudnnDataType_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
nStride: *mut ::core::ffi::c_int,
cStride: *mut ::core::ffi::c_int,
hStride: *mut ::core::ffi::c_int,
wStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetTensor4dDescriptor)(
tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride,
)
}
pub unsafe fn cudnnGetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnGetTensorNdDescriptor)(
tensorDesc,
nbDimsRequested,
dataType,
nbDims,
dimA,
strideA,
)
}
pub unsafe fn cudnnGetTensorSizeInBytes(
tensorDesc: cudnnTensorDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnGetTensorSizeInBytes)(tensorDesc, size)
}
pub unsafe fn cudnnGetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDimsRequested: u32,
destFormat: *mut cudnnTensorFormat_t,
padBeforeA: *mut i32,
padAfterA: *mut i32,
foldA: *mut u32,
direction: *mut cudnnFoldingDirection_t,
) -> cudnnStatus_t {
(culib().cudnnGetTensorTransformDescriptor)(
transformDesc,
nbDimsRequested,
destFormat,
padBeforeA,
padAfterA,
foldA,
direction,
)
}
pub unsafe fn cudnnGetVersion() -> usize {
(culib().cudnnGetVersion)()
}
pub unsafe fn cudnnGraphVersionCheck() -> cudnnStatus_t {
(culib().cudnnGraphVersionCheck)()
}
pub unsafe fn cudnnIm2Col(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
colBuffer: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnIm2Col)(handle, xDesc, x, wDesc, convDesc, colBuffer)
}
pub unsafe fn cudnnInitTransformDest(
transformDesc: cudnnTensorTransformDescriptor_t,
srcDesc: cudnnTensorDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
destSizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnInitTransformDest)(transformDesc, srcDesc, destDesc, destSizeInBytes)
}
pub unsafe fn cudnnLRNCrossChannelBackward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnLRNCrossChannelBackward)(
handle, normDesc, lrnMode, alpha, yDesc, y, dyDesc, dy, xDesc, x, beta, dxDesc, dx,
)
}
pub unsafe fn cudnnLRNCrossChannelForward(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnLRNCrossChannelForward)(
handle, normDesc, lrnMode, alpha, xDesc, x, beta, yDesc, y,
)
}
pub unsafe fn cudnnMakeFusedOpsPlan(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
constPack: cudnnFusedOpsConstParamPack_t,
workspaceSizeInBytes: *mut usize,
) -> cudnnStatus_t {
(culib().cudnnMakeFusedOpsPlan)(handle, plan, constPack, workspaceSizeInBytes)
}
pub unsafe fn cudnnMultiHeadAttnBackwardData(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsDQDO: *const ::core::ffi::c_int,
devSeqLengthsDKDV: *const ::core::ffi::c_int,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
dqDesc: cudnnSeqDataDescriptor_t,
dqueries: *mut ::core::ffi::c_void,
queries: *const ::core::ffi::c_void,
dkDesc: cudnnSeqDataDescriptor_t,
dkeys: *mut ::core::ffi::c_void,
keys: *const ::core::ffi::c_void,
dvDesc: cudnnSeqDataDescriptor_t,
dvalues: *mut ::core::ffi::c_void,
values: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnMultiHeadAttnBackwardData)(
handle,
attnDesc,
loWinIdx,
hiWinIdx,
devSeqLengthsDQDO,
devSeqLengthsDKDV,
doDesc,
dout,
dqDesc,
dqueries,
queries,
dkDesc,
dkeys,
keys,
dvDesc,
dvalues,
values,
weightSizeInBytes,
weights,
workSpaceSizeInBytes,
workSpace,
reserveSpaceSizeInBytes,
reserveSpace,
)
}
pub unsafe fn cudnnMultiHeadAttnBackwardWeights(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
addGrad: cudnnWgradMode_t,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
dweights: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnMultiHeadAttnBackwardWeights)(
handle,
attnDesc,
addGrad,
qDesc,
queries,
kDesc,
keys,
vDesc,
values,
doDesc,
dout,
weightSizeInBytes,
weights,
dweights,
workSpaceSizeInBytes,
workSpace,
reserveSpaceSizeInBytes,
reserveSpace,
)
}
pub unsafe fn cudnnMultiHeadAttnForward(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
currIdx: ::core::ffi::c_int,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsQO: *const ::core::ffi::c_int,
devSeqLengthsKV: *const ::core::ffi::c_int,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
residuals: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
oDesc: cudnnSeqDataDescriptor_t,
out: *mut ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnMultiHeadAttnForward)(
handle,
attnDesc,
currIdx,
loWinIdx,
hiWinIdx,
devSeqLengthsQO,
devSeqLengthsKV,
qDesc,
queries,
residuals,
kDesc,
keys,
vDesc,
values,
oDesc,
out,
weightSizeInBytes,
weights,
workSpaceSizeInBytes,
workSpace,
reserveSpaceSizeInBytes,
reserveSpace,
)
}
pub unsafe fn cudnnNormalizationBackward(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
normScaleData: *const ::core::ffi::c_void,
normBiasData: *const ::core::ffi::c_void,
dNormScaleData: *mut ::core::ffi::c_void,
dNormBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnNormalizationBackward)(
handle,
mode,
normOps,
algo,
alphaDataDiff,
betaDataDiff,
alphaParamDiff,
betaParamDiff,
xDesc,
xData,
yDesc,
yData,
dyDesc,
dyData,
dzDesc,
dzData,
dxDesc,
dxData,
dNormScaleBiasDesc,
normScaleData,
normBiasData,
dNormScaleData,
dNormBiasData,
epsilon,
normMeanVarDesc,
savedMean,
savedInvVariance,
activationDesc,
workSpace,
workSpaceSizeInBytes,
reserveSpace,
reserveSpaceSizeInBytes,
groupCnt,
)
}
pub unsafe fn cudnnNormalizationForwardInference(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
normMeanVarDesc: cudnnTensorDescriptor_t,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
epsilon: f64,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnNormalizationForwardInference)(
handle,
mode,
normOps,
algo,
alpha,
beta,
xDesc,
x,
normScaleBiasDesc,
normScale,
normBias,
normMeanVarDesc,
estimatedMean,
estimatedVariance,
zDesc,
z,
activationDesc,
yDesc,
y,
epsilon,
groupCnt,
)
}
pub unsafe fn cudnnNormalizationForwardTraining(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnNormalizationForwardTraining)(
handle,
mode,
normOps,
algo,
alpha,
beta,
xDesc,
xData,
normScaleBiasDesc,
normScale,
normBias,
exponentialAverageFactor,
normMeanVarDesc,
resultRunningMean,
resultRunningVariance,
epsilon,
resultSaveMean,
resultSaveInvVariance,
activationDesc,
zDesc,
zData,
yDesc,
yData,
workspace,
workSpaceSizeInBytes,
reserveSpace,
reserveSpaceSizeInBytes,
groupCnt,
)
}
pub unsafe fn cudnnOpTensor(
handle: cudnnHandle_t,
opTensorDesc: cudnnOpTensorDescriptor_t,
alpha1: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
alpha2: *const ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
B: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnOpTensor)(
handle,
opTensorDesc,
alpha1,
aDesc,
A,
alpha2,
bDesc,
B,
beta,
cDesc,
C,
)
}
pub unsafe fn cudnnOpsVersionCheck() -> cudnnStatus_t {
(culib().cudnnOpsVersionCheck)()
}
pub unsafe fn cudnnPoolingBackward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnPoolingBackward)(
handle,
poolingDesc,
alpha,
yDesc,
y,
dyDesc,
dy,
xDesc,
x,
beta,
dxDesc,
dx,
)
}
pub unsafe fn cudnnPoolingForward(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnPoolingForward)(handle, poolingDesc, alpha, xDesc, x, beta, yDesc, y)
}
pub unsafe fn cudnnQueryRuntimeError(
handle: cudnnHandle_t,
rstatus: *mut cudnnStatus_t,
mode: cudnnErrQueryMode_t,
tag: *mut cudnnRuntimeTag_t,
) -> cudnnStatus_t {
(culib().cudnnQueryRuntimeError)(handle, rstatus, mode, tag)
}
pub unsafe fn cudnnRNNBackwardData_v8(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
devSeqLengths: *const i32,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
xDesc: cudnnRNNDataDescriptor_t,
dx: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
dhy: *const ::core::ffi::c_void,
dhx: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
dcy: *const ::core::ffi::c_void,
dcx: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnRNNBackwardData_v8)(
handle,
rnnDesc,
devSeqLengths,
yDesc,
y,
dy,
xDesc,
dx,
hDesc,
hx,
dhy,
dhx,
cDesc,
cx,
dcy,
dcx,
weightSpaceSize,
weightSpace,
workSpaceSize,
workSpace,
reserveSpaceSize,
reserveSpace,
)
}
pub unsafe fn cudnnRNNBackwardWeights_v8(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
addGrad: cudnnWgradMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
weightSpaceSize: usize,
dweightSpace: *mut ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnRNNBackwardWeights_v8)(
handle,
rnnDesc,
addGrad,
devSeqLengths,
xDesc,
x,
hDesc,
hx,
yDesc,
y,
weightSpaceSize,
dweightSpace,
workSpaceSize,
workSpace,
reserveSpaceSize,
reserveSpace,
)
}
pub unsafe fn cudnnRNNForward(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
hy: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
cy: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnRNNForward)(
handle,
rnnDesc,
fwdMode,
devSeqLengths,
xDesc,
x,
yDesc,
y,
hDesc,
hx,
hy,
cDesc,
cx,
cy,
weightSpaceSize,
weightSpace,
workSpaceSize,
workSpace,
reserveSpaceSize,
reserveSpace,
)
}
pub unsafe fn cudnnRNNGetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
clipNanOpt: *mut cudnnNanPropagation_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t {
(culib().cudnnRNNGetClip_v8)(rnnDesc, clipMode, clipNanOpt, lclip, rclip)
}
pub unsafe fn cudnnRNNGetClip_v9(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t {
(culib().cudnnRNNGetClip_v9)(rnnDesc, clipMode, lclip, rclip)
}
pub unsafe fn cudnnRNNSetClip_v8(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
clipNanOpt: cudnnNanPropagation_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t {
(culib().cudnnRNNSetClip_v8)(rnnDesc, clipMode, clipNanOpt, lclip, rclip)
}
pub unsafe fn cudnnRNNSetClip_v9(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t {
(culib().cudnnRNNSetClip_v9)(rnnDesc, clipMode, lclip, rclip)
}
pub unsafe fn cudnnReduceTensor(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
indices: *mut ::core::ffi::c_void,
indicesSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
workspaceSizeInBytes: usize,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnReduceTensor)(
handle,
reduceTensorDesc,
indices,
indicesSizeInBytes,
workspace,
workspaceSizeInBytes,
alpha,
aDesc,
A,
beta,
cDesc,
C,
)
}
pub unsafe fn cudnnReorderFilterAndBias(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
reorderType: cudnnReorderType_t,
filterData: *const ::core::ffi::c_void,
reorderedFilterData: *mut ::core::ffi::c_void,
reorderBias: ::core::ffi::c_int,
biasData: *const ::core::ffi::c_void,
reorderedBiasData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnReorderFilterAndBias)(
handle,
filterDesc,
reorderType,
filterData,
reorderedFilterData,
reorderBias,
biasData,
reorderedBiasData,
)
}
pub unsafe fn cudnnRestoreDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t {
(culib().cudnnRestoreDropoutDescriptor)(
dropoutDesc,
handle,
dropout,
states,
stateSizeInBytes,
seed,
)
}
pub unsafe fn cudnnScaleTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
alpha: *const ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnScaleTensor)(handle, yDesc, y, alpha)
}
pub unsafe fn cudnnSetActivationDescriptor(
activationDesc: cudnnActivationDescriptor_t,
mode: cudnnActivationMode_t,
reluNanOpt: cudnnNanPropagation_t,
coef: f64,
) -> cudnnStatus_t {
(culib().cudnnSetActivationDescriptor)(activationDesc, mode, reluNanOpt, coef)
}
pub unsafe fn cudnnSetActivationDescriptorSwishBeta(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: f64,
) -> cudnnStatus_t {
(culib().cudnnSetActivationDescriptorSwishBeta)(activationDesc, swish_beta)
}
pub unsafe fn cudnnSetAttnDescriptor(
attnDesc: cudnnAttnDescriptor_t,
attnMode: ::core::ffi::c_uint,
nHeads: ::core::ffi::c_int,
smScaler: f64,
dataType: cudnnDataType_t,
computePrec: cudnnDataType_t,
mathType: cudnnMathType_t,
attnDropoutDesc: cudnnDropoutDescriptor_t,
postDropoutDesc: cudnnDropoutDescriptor_t,
qSize: ::core::ffi::c_int,
kSize: ::core::ffi::c_int,
vSize: ::core::ffi::c_int,
qProjSize: ::core::ffi::c_int,
kProjSize: ::core::ffi::c_int,
vProjSize: ::core::ffi::c_int,
oProjSize: ::core::ffi::c_int,
qoMaxSeqLength: ::core::ffi::c_int,
kvMaxSeqLength: ::core::ffi::c_int,
maxBatchSize: ::core::ffi::c_int,
maxBeamSize: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetAttnDescriptor)(
attnDesc,
attnMode,
nHeads,
smScaler,
dataType,
computePrec,
mathType,
attnDropoutDesc,
postDropoutDesc,
qSize,
kSize,
vSize,
qProjSize,
kProjSize,
vProjSize,
oProjSize,
qoMaxSeqLength,
kvMaxSeqLength,
maxBatchSize,
maxBeamSize,
)
}
pub unsafe fn cudnnSetCTCLossDescriptor(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnSetCTCLossDescriptor)(ctcLossDesc, compType)
}
pub unsafe fn cudnnSetCTCLossDescriptorEx(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
) -> cudnnStatus_t {
(culib().cudnnSetCTCLossDescriptorEx)(ctcLossDesc, compType, normMode, gradMode)
}
pub unsafe fn cudnnSetCTCLossDescriptor_v8(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetCTCLossDescriptor_v8)(
ctcLossDesc,
compType,
normMode,
gradMode,
maxLabelLength,
)
}
pub unsafe fn cudnnSetCTCLossDescriptor_v9(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
ctcGradMode: cudnnCTCGradMode_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetCTCLossDescriptor_v9)(
ctcLossDesc,
compType,
normMode,
ctcGradMode,
maxLabelLength,
)
}
pub unsafe fn cudnnSetCallback(
mask: ::core::ffi::c_uint,
udata: *mut ::core::ffi::c_void,
fptr: cudnnCallback_t,
) -> cudnnStatus_t {
(culib().cudnnSetCallback)(mask, udata, fptr)
}
pub unsafe fn cudnnSetConvolution2dDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: ::core::ffi::c_int,
pad_w: ::core::ffi::c_int,
u: ::core::ffi::c_int,
v: ::core::ffi::c_int,
dilation_h: ::core::ffi::c_int,
dilation_w: ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnSetConvolution2dDescriptor)(
convDesc,
pad_h,
pad_w,
u,
v,
dilation_h,
dilation_w,
mode,
computeType,
)
}
pub unsafe fn cudnnSetConvolutionGroupCount(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetConvolutionGroupCount)(convDesc, groupCount)
}
pub unsafe fn cudnnSetConvolutionMathType(
convDesc: cudnnConvolutionDescriptor_t,
mathType: cudnnMathType_t,
) -> cudnnStatus_t {
(culib().cudnnSetConvolutionMathType)(convDesc, mathType)
}
pub unsafe fn cudnnSetConvolutionNdDescriptor(
convDesc: cudnnConvolutionDescriptor_t,
arrayLength: ::core::ffi::c_int,
padA: *const ::core::ffi::c_int,
filterStrideA: *const ::core::ffi::c_int,
dilationA: *const ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t {
(culib().cudnnSetConvolutionNdDescriptor)(
convDesc,
arrayLength,
padA,
filterStrideA,
dilationA,
mode,
computeType,
)
}
pub unsafe fn cudnnSetConvolutionReorderType(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: cudnnReorderType_t,
) -> cudnnStatus_t {
(culib().cudnnSetConvolutionReorderType)(convDesc, reorderType)
}
pub unsafe fn cudnnSetDropoutDescriptor(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t {
(culib().cudnnSetDropoutDescriptor)(
dropoutDesc,
handle,
dropout,
states,
stateSizeInBytes,
seed,
)
}
pub unsafe fn cudnnSetFilter4dDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
k: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetFilter4dDescriptor)(filterDesc, dataType, format, k, c, h, w)
}
pub unsafe fn cudnnSetFilterNdDescriptor(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
nbDims: ::core::ffi::c_int,
filterDimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetFilterNdDescriptor)(filterDesc, dataType, format, nbDims, filterDimA)
}
pub unsafe fn cudnnSetFusedOpsConstParamPackAttribute(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *const ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSetFusedOpsConstParamPackAttribute)(constPack, paramLabel, param)
}
pub unsafe fn cudnnSetFusedOpsVariantParamPackAttribute(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSetFusedOpsVariantParamPackAttribute)(varPack, paramLabel, ptr)
}
pub unsafe fn cudnnSetLRNDescriptor(
normDesc: cudnnLRNDescriptor_t,
lrnN: ::core::ffi::c_uint,
lrnAlpha: f64,
lrnBeta: f64,
lrnK: f64,
) -> cudnnStatus_t {
(culib().cudnnSetLRNDescriptor)(normDesc, lrnN, lrnAlpha, lrnBeta, lrnK)
}
pub unsafe fn cudnnSetOpTensorDescriptor(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: cudnnOpTensorOp_t,
opTensorCompType: cudnnDataType_t,
opTensorNanOpt: cudnnNanPropagation_t,
) -> cudnnStatus_t {
(culib().cudnnSetOpTensorDescriptor)(
opTensorDesc,
opTensorOp,
opTensorCompType,
opTensorNanOpt,
)
}
pub unsafe fn cudnnSetPooling2dDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
windowHeight: ::core::ffi::c_int,
windowWidth: ::core::ffi::c_int,
verticalPadding: ::core::ffi::c_int,
horizontalPadding: ::core::ffi::c_int,
verticalStride: ::core::ffi::c_int,
horizontalStride: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetPooling2dDescriptor)(
poolingDesc,
mode,
maxpoolingNanOpt,
windowHeight,
windowWidth,
verticalPadding,
horizontalPadding,
verticalStride,
horizontalStride,
)
}
pub unsafe fn cudnnSetPoolingNdDescriptor(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
nbDims: ::core::ffi::c_int,
windowDimA: *const ::core::ffi::c_int,
paddingA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetPoolingNdDescriptor)(
poolingDesc,
mode,
maxpoolingNanOpt,
nbDims,
windowDimA,
paddingA,
strideA,
)
}
pub unsafe fn cudnnSetRNNDataDescriptor(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: cudnnDataType_t,
layout: cudnnRNNDataLayout_t,
maxSeqLength: ::core::ffi::c_int,
batchSize: ::core::ffi::c_int,
vectorSize: ::core::ffi::c_int,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSetRNNDataDescriptor)(
rnnDataDesc,
dataType,
layout,
maxSeqLength,
batchSize,
vectorSize,
seqLengthArray,
paddingFill,
)
}
pub unsafe fn cudnnSetRNNDescriptor_v8(
rnnDesc: cudnnRNNDescriptor_t,
algo: cudnnRNNAlgo_t,
cellMode: cudnnRNNMode_t,
biasMode: cudnnRNNBiasMode_t,
dirMode: cudnnDirectionMode_t,
inputMode: cudnnRNNInputMode_t,
dataType: cudnnDataType_t,
mathPrec: cudnnDataType_t,
mathType: cudnnMathType_t,
inputSize: i32,
hiddenSize: i32,
projSize: i32,
numLayers: i32,
dropoutDesc: cudnnDropoutDescriptor_t,
auxFlags: u32,
) -> cudnnStatus_t {
(culib().cudnnSetRNNDescriptor_v8)(
rnnDesc,
algo,
cellMode,
biasMode,
dirMode,
inputMode,
dataType,
mathPrec,
mathType,
inputSize,
hiddenSize,
projSize,
numLayers,
dropoutDesc,
auxFlags,
)
}
pub unsafe fn cudnnSetReduceTensorDescriptor(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: cudnnReduceTensorOp_t,
reduceTensorCompType: cudnnDataType_t,
reduceTensorNanOpt: cudnnNanPropagation_t,
reduceTensorIndices: cudnnReduceTensorIndices_t,
reduceTensorIndicesType: cudnnIndicesType_t,
) -> cudnnStatus_t {
(culib().cudnnSetReduceTensorDescriptor)(
reduceTensorDesc,
reduceTensorOp,
reduceTensorCompType,
reduceTensorNanOpt,
reduceTensorIndices,
reduceTensorIndicesType,
)
}
pub unsafe fn cudnnSetSeqDataDescriptor(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
axes: *const cudnnSeqDataAxis_t,
seqLengthArraySize: usize,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSetSeqDataDescriptor)(
seqDataDesc,
dataType,
nbDims,
dimA,
axes,
seqLengthArraySize,
seqLengthArray,
paddingFill,
)
}
pub unsafe fn cudnnSetSpatialTransformerNdDescriptor(
stDesc: cudnnSpatialTransformerDescriptor_t,
samplerType: cudnnSamplerType_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetSpatialTransformerNdDescriptor)(
stDesc,
samplerType,
dataType,
nbDims,
dimA,
)
}
pub unsafe fn cudnnSetStream(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t {
(culib().cudnnSetStream)(handle, streamId)
}
pub unsafe fn cudnnSetTensor(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
valuePtr: *const ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSetTensor)(handle, yDesc, y, valuePtr)
}
pub unsafe fn cudnnSetTensor4dDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetTensor4dDescriptor)(tensorDesc, format, dataType, n, c, h, w)
}
pub unsafe fn cudnnSetTensor4dDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
nStride: ::core::ffi::c_int,
cStride: ::core::ffi::c_int,
hStride: ::core::ffi::c_int,
wStride: ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetTensor4dDescriptorEx)(
tensorDesc, dataType, n, c, h, w, nStride, cStride, hStride, wStride,
)
}
pub unsafe fn cudnnSetTensorNdDescriptor(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetTensorNdDescriptor)(tensorDesc, dataType, nbDims, dimA, strideA)
}
pub unsafe fn cudnnSetTensorNdDescriptorEx(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t {
(culib().cudnnSetTensorNdDescriptorEx)(tensorDesc, format, dataType, nbDims, dimA)
}
pub unsafe fn cudnnSetTensorTransformDescriptor(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDims: u32,
destFormat: cudnnTensorFormat_t,
padBeforeA: *const i32,
padAfterA: *const i32,
foldA: *const u32,
direction: cudnnFoldingDirection_t,
) -> cudnnStatus_t {
(culib().cudnnSetTensorTransformDescriptor)(
transformDesc,
nbDims,
destFormat,
padBeforeA,
padAfterA,
foldA,
direction,
)
}
pub unsafe fn cudnnSoftmaxBackward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSoftmaxBackward)(
handle, algo, mode, alpha, yDesc, y, dyDesc, dy, beta, dxDesc, dx,
)
}
pub unsafe fn cudnnSoftmaxForward(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSoftmaxForward)(handle, algo, mode, alpha, xDesc, x, beta, yDesc, y)
}
pub unsafe fn cudnnSpatialTfGridGeneratorBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
dgrid: *const ::core::ffi::c_void,
dtheta: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSpatialTfGridGeneratorBackward)(handle, stDesc, dgrid, dtheta)
}
pub unsafe fn cudnnSpatialTfGridGeneratorForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
theta: *const ::core::ffi::c_void,
grid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSpatialTfGridGeneratorForward)(handle, stDesc, theta, grid)
}
pub unsafe fn cudnnSpatialTfSamplerBackward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
alphaDgrid: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
betaDgrid: *const ::core::ffi::c_void,
dgrid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSpatialTfSamplerBackward)(
handle, stDesc, alpha, xDesc, x, beta, dxDesc, dx, alphaDgrid, dyDesc, dy, grid,
betaDgrid, dgrid,
)
}
pub unsafe fn cudnnSpatialTfSamplerForward(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnSpatialTfSamplerForward)(
handle, stDesc, alpha, xDesc, x, grid, beta, yDesc, y,
)
}
pub unsafe fn cudnnTransformFilter(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnFilterDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnFilterDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnTransformFilter)(
handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData,
)
}
pub unsafe fn cudnnTransformTensor(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnTransformTensor)(handle, alpha, xDesc, x, beta, yDesc, y)
}
pub unsafe fn cudnnTransformTensorEx(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnTensorDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnTensorDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t {
(culib().cudnnTransformTensorEx)(
handle, transDesc, alpha, srcDesc, srcData, beta, destDesc, destData,
)
}
pub struct Lib {
__library: ::libloading::Library,
pub cudnnActivationBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnActivationForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
activationDesc: cudnnActivationDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnAddTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnAdvVersionCheck: unsafe extern "C" fn() -> cudnnStatus_t,
pub cudnnBackendCreateDescriptor: unsafe extern "C" fn(
descriptorType: cudnnBackendDescriptorType_t,
descriptor: *mut cudnnBackendDescriptor_t,
) -> cudnnStatus_t,
pub cudnnBackendDestroyDescriptor:
unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t,
pub cudnnBackendExecute: unsafe extern "C" fn(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
) -> cudnnStatus_t,
pub cudnnBackendFinalize:
unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t,
pub cudnnBackendGetAttribute: unsafe extern "C" fn(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
requestedElementCount: i64,
elementCount: *mut i64,
arrayOfElements: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnBackendInitialize:
unsafe extern "C" fn(descriptor: cudnnBackendDescriptor_t) -> cudnnStatus_t,
pub cudnnBackendPopulateCudaGraph: unsafe extern "C" fn(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t,
pub cudnnBackendSetAttribute: unsafe extern "C" fn(
descriptor: cudnnBackendDescriptor_t,
attributeName: cudnnBackendAttributeName_t,
attributeType: cudnnBackendAttributeType_t,
elementCount: i64,
arrayOfElements: *const ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnBackendUpdateCudaGraph: unsafe extern "C" fn(
handle: cudnnHandle_t,
executionPlan: cudnnBackendDescriptor_t,
variantPack: cudnnBackendDescriptor_t,
graph: cudaGraph_t,
) -> cudnnStatus_t,
pub cudnnBatchNormalizationBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
dBnScaleResult: *mut ::core::ffi::c_void,
dBnBiasResult: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnBatchNormalizationBackwardEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
bnScaleData: *const ::core::ffi::c_void,
bnBiasData: *const ::core::ffi::c_void,
dBnScaleData: *mut ::core::ffi::c_void,
dBnBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t,
pub cudnnBatchNormalizationForwardInference: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
epsilon: f64,
) -> cudnnStatus_t,
pub cudnnBatchNormalizationForwardTraining: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnBatchNormalizationForwardTrainingEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
bnScale: *const ::core::ffi::c_void,
bnBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
)
-> cudnnStatus_t,
pub cudnnBuildRNNDynamic: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
miniBatch: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnCTCLoss: unsafe extern "C" fn(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
hostLabels: *const ::core::ffi::c_int,
hostLabelLengths: *const ::core::ffi::c_int,
hostInputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t,
pub cudnnCTCLoss_v8: unsafe extern "C" fn(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
probs: *const ::core::ffi::c_void,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
costs: *mut ::core::ffi::c_void,
gradientsDesc: cudnnTensorDescriptor_t,
gradients: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnCnnVersionCheck: unsafe extern "C" fn() -> cudnnStatus_t,
pub cudnnConvolutionBackwardBias: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dbDesc: cudnnTensorDescriptor_t,
db: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnConvolutionBackwardData: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnConvolutionBackwardFilter: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnConvolutionBiasActivationForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha1: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
alpha2: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
biasDesc: cudnnTensorDescriptor_t,
bias: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnConvolutionForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnCreate: unsafe extern "C" fn(handle: *mut cudnnHandle_t) -> cudnnStatus_t,
pub cudnnCreateActivationDescriptor:
unsafe extern "C" fn(activationDesc: *mut cudnnActivationDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateAttnDescriptor:
unsafe extern "C" fn(attnDesc: *mut cudnnAttnDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateCTCLossDescriptor:
unsafe extern "C" fn(ctcLossDesc: *mut cudnnCTCLossDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateConvolutionDescriptor:
unsafe extern "C" fn(convDesc: *mut cudnnConvolutionDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateDropoutDescriptor:
unsafe extern "C" fn(dropoutDesc: *mut cudnnDropoutDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateFilterDescriptor:
unsafe extern "C" fn(filterDesc: *mut cudnnFilterDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateFusedOpsConstParamPack: unsafe extern "C" fn(
constPack: *mut cudnnFusedOpsConstParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t,
pub cudnnCreateFusedOpsPlan: unsafe extern "C" fn(
plan: *mut cudnnFusedOpsPlan_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t,
pub cudnnCreateFusedOpsVariantParamPack: unsafe extern "C" fn(
varPack: *mut cudnnFusedOpsVariantParamPack_t,
ops: cudnnFusedOps_t,
) -> cudnnStatus_t,
pub cudnnCreateLRNDescriptor:
unsafe extern "C" fn(normDesc: *mut cudnnLRNDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateOpTensorDescriptor:
unsafe extern "C" fn(opTensorDesc: *mut cudnnOpTensorDescriptor_t) -> cudnnStatus_t,
pub cudnnCreatePoolingDescriptor:
unsafe extern "C" fn(poolingDesc: *mut cudnnPoolingDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateRNNDataDescriptor:
unsafe extern "C" fn(rnnDataDesc: *mut cudnnRNNDataDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateRNNDescriptor:
unsafe extern "C" fn(rnnDesc: *mut cudnnRNNDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateReduceTensorDescriptor: unsafe extern "C" fn(
reduceTensorDesc: *mut cudnnReduceTensorDescriptor_t,
) -> cudnnStatus_t,
pub cudnnCreateSeqDataDescriptor:
unsafe extern "C" fn(seqDataDesc: *mut cudnnSeqDataDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateSpatialTransformerDescriptor:
unsafe extern "C" fn(stDesc: *mut cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateTensorDescriptor:
unsafe extern "C" fn(tensorDesc: *mut cudnnTensorDescriptor_t) -> cudnnStatus_t,
pub cudnnCreateTensorTransformDescriptor: unsafe extern "C" fn(
transformDesc: *mut cudnnTensorTransformDescriptor_t,
) -> cudnnStatus_t,
pub cudnnDeriveBNTensorDescriptor: unsafe extern "C" fn(
derivedBnDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnBatchNormMode_t,
) -> cudnnStatus_t,
pub cudnnDeriveNormTensorDescriptor: unsafe extern "C" fn(
derivedNormScaleBiasDesc: cudnnTensorDescriptor_t,
derivedNormMeanVarDesc: cudnnTensorDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
mode: cudnnNormMode_t,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnDestroy: unsafe extern "C" fn(handle: cudnnHandle_t) -> cudnnStatus_t,
pub cudnnDestroyActivationDescriptor:
unsafe extern "C" fn(activationDesc: cudnnActivationDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyAttnDescriptor:
unsafe extern "C" fn(attnDesc: cudnnAttnDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyCTCLossDescriptor:
unsafe extern "C" fn(ctcLossDesc: cudnnCTCLossDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyConvolutionDescriptor:
unsafe extern "C" fn(convDesc: cudnnConvolutionDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyDropoutDescriptor:
unsafe extern "C" fn(dropoutDesc: cudnnDropoutDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyFilterDescriptor:
unsafe extern "C" fn(filterDesc: cudnnFilterDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyFusedOpsConstParamPack:
unsafe extern "C" fn(constPack: cudnnFusedOpsConstParamPack_t) -> cudnnStatus_t,
pub cudnnDestroyFusedOpsPlan:
unsafe extern "C" fn(plan: cudnnFusedOpsPlan_t) -> cudnnStatus_t,
pub cudnnDestroyFusedOpsVariantParamPack:
unsafe extern "C" fn(varPack: cudnnFusedOpsVariantParamPack_t) -> cudnnStatus_t,
pub cudnnDestroyLRNDescriptor:
unsafe extern "C" fn(lrnDesc: cudnnLRNDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyOpTensorDescriptor:
unsafe extern "C" fn(opTensorDesc: cudnnOpTensorDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyPoolingDescriptor:
unsafe extern "C" fn(poolingDesc: cudnnPoolingDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyRNNDataDescriptor:
unsafe extern "C" fn(rnnDataDesc: cudnnRNNDataDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyRNNDescriptor:
unsafe extern "C" fn(rnnDesc: cudnnRNNDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyReduceTensorDescriptor:
unsafe extern "C" fn(reduceTensorDesc: cudnnReduceTensorDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroySeqDataDescriptor:
unsafe extern "C" fn(seqDataDesc: cudnnSeqDataDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroySpatialTransformerDescriptor:
unsafe extern "C" fn(stDesc: cudnnSpatialTransformerDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyTensorDescriptor:
unsafe extern "C" fn(tensorDesc: cudnnTensorDescriptor_t) -> cudnnStatus_t,
pub cudnnDestroyTensorTransformDescriptor:
unsafe extern "C" fn(transformDesc: cudnnTensorTransformDescriptor_t) -> cudnnStatus_t,
pub cudnnDivisiveNormalizationBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dXdMeansDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
dMeans: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnDivisiveNormalizationForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
mode: cudnnDivNormMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
means: *const ::core::ffi::c_void,
temp: *mut ::core::ffi::c_void,
temp2: *mut ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnDropoutBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
dydesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
dxdesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t,
pub cudnnDropoutForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
dropoutDesc: cudnnDropoutDescriptor_t,
xdesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
ydesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
) -> cudnnStatus_t,
pub cudnnDropoutGetReserveSpaceSize: unsafe extern "C" fn(
xdesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnDropoutGetStatesSize:
unsafe extern "C" fn(handle: cudnnHandle_t, sizeInBytes: *mut usize) -> cudnnStatus_t,
pub cudnnFindConvolutionBackwardDataAlgorithm: unsafe extern "C" fn(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
)
-> cudnnStatus_t,
pub cudnnFindConvolutionBackwardDataAlgorithmEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
)
-> cudnnStatus_t,
pub cudnnFindConvolutionBackwardFilterAlgorithm: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
)
-> cudnnStatus_t,
pub cudnnFindConvolutionBackwardFilterAlgorithmEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
dwDesc: cudnnFilterDescriptor_t,
dw: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
)
-> cudnnStatus_t,
pub cudnnFindConvolutionForwardAlgorithm: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t,
pub cudnnFindConvolutionForwardAlgorithmEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
w: *const ::core::ffi::c_void,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
) -> cudnnStatus_t,
pub cudnnFusedOpsExecute: unsafe extern "C" fn(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
varPack: cudnnFusedOpsVariantParamPack_t,
) -> cudnnStatus_t,
pub cudnnGetActivationDescriptor: unsafe extern "C" fn(
activationDesc: cudnnActivationDescriptor_t,
mode: *mut cudnnActivationMode_t,
reluNanOpt: *mut cudnnNanPropagation_t,
coef: *mut f64,
) -> cudnnStatus_t,
pub cudnnGetActivationDescriptorSwishBeta: unsafe extern "C" fn(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: *mut f64,
) -> cudnnStatus_t,
pub cudnnGetAttnDescriptor: unsafe extern "C" fn(
attnDesc: cudnnAttnDescriptor_t,
attnMode: *mut ::core::ffi::c_uint,
nHeads: *mut ::core::ffi::c_int,
smScaler: *mut f64,
dataType: *mut cudnnDataType_t,
computePrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
attnDropoutDesc: *mut cudnnDropoutDescriptor_t,
postDropoutDesc: *mut cudnnDropoutDescriptor_t,
qSize: *mut ::core::ffi::c_int,
kSize: *mut ::core::ffi::c_int,
vSize: *mut ::core::ffi::c_int,
qProjSize: *mut ::core::ffi::c_int,
kProjSize: *mut ::core::ffi::c_int,
vProjSize: *mut ::core::ffi::c_int,
oProjSize: *mut ::core::ffi::c_int,
qoMaxSeqLength: *mut ::core::ffi::c_int,
kvMaxSeqLength: *mut ::core::ffi::c_int,
maxBatchSize: *mut ::core::ffi::c_int,
maxBeamSize: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetBatchNormalizationBackwardExWorkspaceSize:
unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dBnScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize:
unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
bnScaleBiasMeanVarDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetBatchNormalizationTrainingExReserveSpaceSize:
unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnBatchNormMode_t,
bnOps: cudnnBatchNormOps_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetCTCLossDescriptor: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnGetCTCLossDescriptorEx: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t,
pub cudnnGetCTCLossDescriptor_v8: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
gradMode: *mut cudnnNanPropagation_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetCTCLossDescriptor_v9: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: *mut cudnnDataType_t,
normMode: *mut cudnnLossNormalizationMode_t,
ctcGradMode: *mut cudnnCTCGradMode_t,
maxLabelLength: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetCTCLossWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
labels: *const ::core::ffi::c_int,
labelLengths: *const ::core::ffi::c_int,
inputLengths: *const ::core::ffi::c_int,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetCTCLossWorkspaceSize_v8: unsafe extern "C" fn(
handle: cudnnHandle_t,
algo: cudnnCTCLossAlgo_t,
ctcLossDesc: cudnnCTCLossDescriptor_t,
probsDesc: cudnnTensorDescriptor_t,
gradientsDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetCallback: unsafe extern "C" fn(
mask: *mut ::core::ffi::c_uint,
udata: *mut *mut ::core::ffi::c_void,
fptr: *mut cudnnCallback_t,
) -> cudnnStatus_t,
pub cudnnGetConvolution2dDescriptor: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: *mut ::core::ffi::c_int,
pad_w: *mut ::core::ffi::c_int,
u: *mut ::core::ffi::c_int,
v: *mut ::core::ffi::c_int,
dilation_h: *mut ::core::ffi::c_int,
dilation_w: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnGetConvolution2dForwardOutputDim: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetConvolutionBackwardDataAlgorithmMaxCount: unsafe extern "C" fn(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionBackwardDataAlgorithm_v7: unsafe extern "C" fn(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdDataAlgoPerf_t,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionBackwardDataWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
wDesc: cudnnFilterDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionBwdDataAlgo_t,
sizeInBytes: *mut usize,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionBackwardFilterAlgorithmMaxCount:
unsafe extern "C" fn(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetConvolutionBackwardFilterAlgorithm_v7: unsafe extern "C" fn(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionBwdFilterAlgoPerf_t,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionBackwardFilterWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnFilterDescriptor_t,
algo: cudnnConvolutionBwdFilterAlgo_t,
sizeInBytes: *mut usize,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionForwardAlgorithmMaxCount: unsafe extern "C" fn(
handle: cudnnHandle_t,
count: *mut ::core::ffi::c_int,
)
-> cudnnStatus_t,
pub cudnnGetConvolutionForwardAlgorithm_v7: unsafe extern "C" fn(
handle: cudnnHandle_t,
srcDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
requestedAlgoCount: ::core::ffi::c_int,
returnedAlgoCount: *mut ::core::ffi::c_int,
perfResults: *mut cudnnConvolutionFwdAlgoPerf_t,
) -> cudnnStatus_t,
pub cudnnGetConvolutionForwardWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
algo: cudnnConvolutionFwdAlgo_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetConvolutionGroupCount: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetConvolutionMathType: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
mathType: *mut cudnnMathType_t,
) -> cudnnStatus_t,
pub cudnnGetConvolutionNdDescriptor: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
arrayLengthRequested: ::core::ffi::c_int,
arrayLength: *mut ::core::ffi::c_int,
padA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
dilationA: *mut ::core::ffi::c_int,
mode: *mut cudnnConvolutionMode_t,
computeType: *mut cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnGetConvolutionNdForwardOutputDim: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
filterDesc: cudnnFilterDescriptor_t,
nbDims: ::core::ffi::c_int,
tensorOuputDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetConvolutionReorderType: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: *mut cudnnReorderType_t,
) -> cudnnStatus_t,
pub cudnnGetCudartVersion: unsafe extern "C" fn() -> usize,
pub cudnnGetDropoutDescriptor: unsafe extern "C" fn(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: *mut f32,
states: *mut *mut ::core::ffi::c_void,
seed: *mut ::core::ffi::c_ulonglong,
) -> cudnnStatus_t,
pub cudnnGetErrorString:
unsafe extern "C" fn(status: cudnnStatus_t) -> *const ::core::ffi::c_char,
pub cudnnGetFilter4dDescriptor: unsafe extern "C" fn(
filterDesc: cudnnFilterDescriptor_t,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
k: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetFilterNdDescriptor: unsafe extern "C" fn(
filterDesc: cudnnFilterDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
format: *mut cudnnTensorFormat_t,
nbDims: *mut ::core::ffi::c_int,
filterDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetFilterSizeInBytes: unsafe extern "C" fn(
filterDesc: cudnnFilterDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetFoldedConvBackwardDataDescriptors: unsafe extern "C" fn(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
diffDesc: cudnnTensorDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
gradDesc: cudnnTensorDescriptor_t,
transformFormat: cudnnTensorFormat_t,
foldedFilterDesc: cudnnFilterDescriptor_t,
paddedDiffDesc: cudnnTensorDescriptor_t,
foldedConvDesc: cudnnConvolutionDescriptor_t,
foldedGradDesc: cudnnTensorDescriptor_t,
filterFoldTransDesc: cudnnTensorTransformDescriptor_t,
diffPadTransDesc: cudnnTensorTransformDescriptor_t,
gradFoldTransDesc: cudnnTensorTransformDescriptor_t,
gradUnfoldTransDesc: cudnnTensorTransformDescriptor_t,
)
-> cudnnStatus_t,
pub cudnnGetFusedOpsConstParamPackAttribute: unsafe extern "C" fn(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *mut ::core::ffi::c_void,
isNULL: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetFusedOpsVariantParamPackAttribute: unsafe extern "C" fn(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
)
-> cudnnStatus_t,
pub cudnnGetLRNDescriptor: unsafe extern "C" fn(
normDesc: cudnnLRNDescriptor_t,
lrnN: *mut ::core::ffi::c_uint,
lrnAlpha: *mut f64,
lrnBeta: *mut f64,
lrnK: *mut f64,
) -> cudnnStatus_t,
pub cudnnGetLastErrorString:
unsafe extern "C" fn(message: *mut ::core::ffi::c_char, max_size: usize),
pub cudnnGetMaxDeviceVersion: unsafe extern "C" fn() -> usize,
pub cudnnGetMultiHeadAttnBuffers: unsafe extern "C" fn(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
weightSizeInBytes: *mut usize,
workSpaceSizeInBytes: *mut usize,
reserveSpaceSizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetMultiHeadAttnWeights: unsafe extern "C" fn(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
wKind: cudnnMultiHeadAttnWeightKind_t,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
wDesc: cudnnTensorDescriptor_t,
wAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnGetNormalizationBackwardWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
dyDesc: cudnnTensorDescriptor_t,
dzDesc: cudnnTensorDescriptor_t,
dxDesc: cudnnTensorDescriptor_t,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
)
-> cudnnStatus_t,
pub cudnnGetNormalizationForwardTrainingWorkspaceSize:
unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
xDesc: cudnnTensorDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
normScaleBiasDesc: cudnnTensorDescriptor_t,
activationDesc: cudnnActivationDescriptor_t,
normMeanVarDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetNormalizationTrainingReserveSpaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
activationDesc: cudnnActivationDescriptor_t,
xDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
groupCnt: ::core::ffi::c_int,
)
-> cudnnStatus_t,
pub cudnnGetOpTensorDescriptor: unsafe extern "C" fn(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: *mut cudnnOpTensorOp_t,
opTensorCompType: *mut cudnnDataType_t,
opTensorNanOpt: *mut cudnnNanPropagation_t,
) -> cudnnStatus_t,
pub cudnnGetPooling2dDescriptor: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
windowHeight: *mut ::core::ffi::c_int,
windowWidth: *mut ::core::ffi::c_int,
verticalPadding: *mut ::core::ffi::c_int,
horizontalPadding: *mut ::core::ffi::c_int,
verticalStride: *mut ::core::ffi::c_int,
horizontalStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetPooling2dForwardOutputDim: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetPoolingNdDescriptor: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
mode: *mut cudnnPoolingMode_t,
maxpoolingNanOpt: *mut cudnnNanPropagation_t,
nbDims: *mut ::core::ffi::c_int,
windowDimA: *mut ::core::ffi::c_int,
paddingA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetPoolingNdForwardOutputDim: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
inputTensorDesc: cudnnTensorDescriptor_t,
nbDims: ::core::ffi::c_int,
outputTensorDimA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetProperty: unsafe extern "C" fn(
type_: libraryPropertyType,
value: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetRNNDataDescriptor: unsafe extern "C" fn(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: *mut cudnnDataType_t,
layout: *mut cudnnRNNDataLayout_t,
maxSeqLength: *mut ::core::ffi::c_int,
batchSize: *mut ::core::ffi::c_int,
vectorSize: *mut ::core::ffi::c_int,
arrayLengthRequested: ::core::ffi::c_int,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnGetRNNDescriptor_v8: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
algo: *mut cudnnRNNAlgo_t,
cellMode: *mut cudnnRNNMode_t,
biasMode: *mut cudnnRNNBiasMode_t,
dirMode: *mut cudnnDirectionMode_t,
inputMode: *mut cudnnRNNInputMode_t,
dataType: *mut cudnnDataType_t,
mathPrec: *mut cudnnDataType_t,
mathType: *mut cudnnMathType_t,
inputSize: *mut i32,
hiddenSize: *mut i32,
projSize: *mut i32,
numLayers: *mut i32,
dropoutDesc: *mut cudnnDropoutDescriptor_t,
auxFlags: *mut u32,
) -> cudnnStatus_t,
pub cudnnGetRNNTempSpaceSizes: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
xDesc: cudnnRNNDataDescriptor_t,
workSpaceSize: *mut usize,
reserveSpaceSize: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetRNNWeightParams: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
pseudoLayer: i32,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
linLayerID: i32,
mDesc: cudnnTensorDescriptor_t,
mAddr: *mut *mut ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
bAddr: *mut *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnGetRNNWeightSpaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
weightSpaceSize: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetReduceTensorDescriptor: unsafe extern "C" fn(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: *mut cudnnReduceTensorOp_t,
reduceTensorCompType: *mut cudnnDataType_t,
reduceTensorNanOpt: *mut cudnnNanPropagation_t,
reduceTensorIndices: *mut cudnnReduceTensorIndices_t,
reduceTensorIndicesType: *mut cudnnIndicesType_t,
) -> cudnnStatus_t,
pub cudnnGetReductionIndicesSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetReductionWorkspaceSize: unsafe extern "C" fn(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
aDesc: cudnnTensorDescriptor_t,
cDesc: cudnnTensorDescriptor_t,
sizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetSeqDataDescriptor: unsafe extern "C" fn(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
nbDimsRequested: ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
axes: *mut cudnnSeqDataAxis_t,
seqLengthArraySize: *mut usize,
seqLengthSizeRequested: usize,
seqLengthArray: *mut ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnGetStream: unsafe extern "C" fn(
handle: cudnnHandle_t,
streamId: *mut cudaStream_t,
) -> cudnnStatus_t,
pub cudnnGetTensor4dDescriptor: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
dataType: *mut cudnnDataType_t,
n: *mut ::core::ffi::c_int,
c: *mut ::core::ffi::c_int,
h: *mut ::core::ffi::c_int,
w: *mut ::core::ffi::c_int,
nStride: *mut ::core::ffi::c_int,
cStride: *mut ::core::ffi::c_int,
hStride: *mut ::core::ffi::c_int,
wStride: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetTensorNdDescriptor: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
nbDimsRequested: ::core::ffi::c_int,
dataType: *mut cudnnDataType_t,
nbDims: *mut ::core::ffi::c_int,
dimA: *mut ::core::ffi::c_int,
strideA: *mut ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnGetTensorSizeInBytes: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
size: *mut usize,
) -> cudnnStatus_t,
pub cudnnGetTensorTransformDescriptor: unsafe extern "C" fn(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDimsRequested: u32,
destFormat: *mut cudnnTensorFormat_t,
padBeforeA: *mut i32,
padAfterA: *mut i32,
foldA: *mut u32,
direction: *mut cudnnFoldingDirection_t,
) -> cudnnStatus_t,
pub cudnnGetVersion: unsafe extern "C" fn() -> usize,
pub cudnnGraphVersionCheck: unsafe extern "C" fn() -> cudnnStatus_t,
pub cudnnIm2Col: unsafe extern "C" fn(
handle: cudnnHandle_t,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
wDesc: cudnnFilterDescriptor_t,
convDesc: cudnnConvolutionDescriptor_t,
colBuffer: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnInitTransformDest: unsafe extern "C" fn(
transformDesc: cudnnTensorTransformDescriptor_t,
srcDesc: cudnnTensorDescriptor_t,
destDesc: cudnnTensorDescriptor_t,
destSizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnLRNCrossChannelBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnLRNCrossChannelForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
normDesc: cudnnLRNDescriptor_t,
lrnMode: cudnnLRNMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnMakeFusedOpsPlan: unsafe extern "C" fn(
handle: cudnnHandle_t,
plan: cudnnFusedOpsPlan_t,
constPack: cudnnFusedOpsConstParamPack_t,
workspaceSizeInBytes: *mut usize,
) -> cudnnStatus_t,
pub cudnnMultiHeadAttnBackwardData: unsafe extern "C" fn(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsDQDO: *const ::core::ffi::c_int,
devSeqLengthsDKDV: *const ::core::ffi::c_int,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
dqDesc: cudnnSeqDataDescriptor_t,
dqueries: *mut ::core::ffi::c_void,
queries: *const ::core::ffi::c_void,
dkDesc: cudnnSeqDataDescriptor_t,
dkeys: *mut ::core::ffi::c_void,
keys: *const ::core::ffi::c_void,
dvDesc: cudnnSeqDataDescriptor_t,
dvalues: *mut ::core::ffi::c_void,
values: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnMultiHeadAttnBackwardWeights: unsafe extern "C" fn(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
addGrad: cudnnWgradMode_t,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
doDesc: cudnnSeqDataDescriptor_t,
dout: *const ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
dweights: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnMultiHeadAttnForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
attnDesc: cudnnAttnDescriptor_t,
currIdx: ::core::ffi::c_int,
loWinIdx: *const ::core::ffi::c_int,
hiWinIdx: *const ::core::ffi::c_int,
devSeqLengthsQO: *const ::core::ffi::c_int,
devSeqLengthsKV: *const ::core::ffi::c_int,
qDesc: cudnnSeqDataDescriptor_t,
queries: *const ::core::ffi::c_void,
residuals: *const ::core::ffi::c_void,
kDesc: cudnnSeqDataDescriptor_t,
keys: *const ::core::ffi::c_void,
vDesc: cudnnSeqDataDescriptor_t,
values: *const ::core::ffi::c_void,
oDesc: cudnnSeqDataDescriptor_t,
out: *mut ::core::ffi::c_void,
weightSizeInBytes: usize,
weights: *const ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnNormalizationBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alphaDataDiff: *const ::core::ffi::c_void,
betaDataDiff: *const ::core::ffi::c_void,
alphaParamDiff: *const ::core::ffi::c_void,
betaParamDiff: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dyData: *const ::core::ffi::c_void,
dzDesc: cudnnTensorDescriptor_t,
dzData: *mut ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dxData: *mut ::core::ffi::c_void,
dNormScaleBiasDesc: cudnnTensorDescriptor_t,
normScaleData: *const ::core::ffi::c_void,
normBiasData: *const ::core::ffi::c_void,
dNormScaleData: *mut ::core::ffi::c_void,
dNormBiasData: *mut ::core::ffi::c_void,
epsilon: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
savedMean: *const ::core::ffi::c_void,
savedInvVariance: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
workSpace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnNormalizationForwardInference: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
normMeanVarDesc: cudnnTensorDescriptor_t,
estimatedMean: *const ::core::ffi::c_void,
estimatedVariance: *const ::core::ffi::c_void,
zDesc: cudnnTensorDescriptor_t,
z: *const ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
epsilon: f64,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnNormalizationForwardTraining: unsafe extern "C" fn(
handle: cudnnHandle_t,
mode: cudnnNormMode_t,
normOps: cudnnNormOps_t,
algo: cudnnNormAlgo_t,
alpha: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
xData: *const ::core::ffi::c_void,
normScaleBiasDesc: cudnnTensorDescriptor_t,
normScale: *const ::core::ffi::c_void,
normBias: *const ::core::ffi::c_void,
exponentialAverageFactor: f64,
normMeanVarDesc: cudnnTensorDescriptor_t,
resultRunningMean: *mut ::core::ffi::c_void,
resultRunningVariance: *mut ::core::ffi::c_void,
epsilon: f64,
resultSaveMean: *mut ::core::ffi::c_void,
resultSaveInvVariance: *mut ::core::ffi::c_void,
activationDesc: cudnnActivationDescriptor_t,
zDesc: cudnnTensorDescriptor_t,
zData: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
yData: *mut ::core::ffi::c_void,
workspace: *mut ::core::ffi::c_void,
workSpaceSizeInBytes: usize,
reserveSpace: *mut ::core::ffi::c_void,
reserveSpaceSizeInBytes: usize,
groupCnt: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnOpTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
opTensorDesc: cudnnOpTensorDescriptor_t,
alpha1: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
alpha2: *const ::core::ffi::c_void,
bDesc: cudnnTensorDescriptor_t,
B: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnOpsVersionCheck: unsafe extern "C" fn() -> cudnnStatus_t,
pub cudnnPoolingBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnPoolingForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
poolingDesc: cudnnPoolingDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnQueryRuntimeError: unsafe extern "C" fn(
handle: cudnnHandle_t,
rstatus: *mut cudnnStatus_t,
mode: cudnnErrQueryMode_t,
tag: *mut cudnnRuntimeTag_t,
) -> cudnnStatus_t,
pub cudnnRNNBackwardData_v8: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
devSeqLengths: *const i32,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
dy: *const ::core::ffi::c_void,
xDesc: cudnnRNNDataDescriptor_t,
dx: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
dhy: *const ::core::ffi::c_void,
dhx: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
dcy: *const ::core::ffi::c_void,
dcx: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnRNNBackwardWeights_v8: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
addGrad: cudnnWgradMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *const ::core::ffi::c_void,
weightSpaceSize: usize,
dweightSpace: *mut ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnRNNForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
rnnDesc: cudnnRNNDescriptor_t,
fwdMode: cudnnForwardMode_t,
devSeqLengths: *const i32,
xDesc: cudnnRNNDataDescriptor_t,
x: *const ::core::ffi::c_void,
yDesc: cudnnRNNDataDescriptor_t,
y: *mut ::core::ffi::c_void,
hDesc: cudnnTensorDescriptor_t,
hx: *const ::core::ffi::c_void,
hy: *mut ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
cx: *const ::core::ffi::c_void,
cy: *mut ::core::ffi::c_void,
weightSpaceSize: usize,
weightSpace: *const ::core::ffi::c_void,
workSpaceSize: usize,
workSpace: *mut ::core::ffi::c_void,
reserveSpaceSize: usize,
reserveSpace: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnRNNGetClip_v8: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
clipNanOpt: *mut cudnnNanPropagation_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t,
pub cudnnRNNGetClip_v9: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: *mut cudnnRNNClipMode_t,
lclip: *mut f64,
rclip: *mut f64,
) -> cudnnStatus_t,
pub cudnnRNNSetClip_v8: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
clipNanOpt: cudnnNanPropagation_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t,
pub cudnnRNNSetClip_v9: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
clipMode: cudnnRNNClipMode_t,
lclip: f64,
rclip: f64,
) -> cudnnStatus_t,
pub cudnnReduceTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
indices: *mut ::core::ffi::c_void,
indicesSizeInBytes: usize,
workspace: *mut ::core::ffi::c_void,
workspaceSizeInBytes: usize,
alpha: *const ::core::ffi::c_void,
aDesc: cudnnTensorDescriptor_t,
A: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
cDesc: cudnnTensorDescriptor_t,
C: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnReorderFilterAndBias: unsafe extern "C" fn(
handle: cudnnHandle_t,
filterDesc: cudnnFilterDescriptor_t,
reorderType: cudnnReorderType_t,
filterData: *const ::core::ffi::c_void,
reorderedFilterData: *mut ::core::ffi::c_void,
reorderBias: ::core::ffi::c_int,
biasData: *const ::core::ffi::c_void,
reorderedBiasData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnRestoreDropoutDescriptor: unsafe extern "C" fn(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t,
pub cudnnScaleTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
alpha: *const ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSetActivationDescriptor: unsafe extern "C" fn(
activationDesc: cudnnActivationDescriptor_t,
mode: cudnnActivationMode_t,
reluNanOpt: cudnnNanPropagation_t,
coef: f64,
) -> cudnnStatus_t,
pub cudnnSetActivationDescriptorSwishBeta: unsafe extern "C" fn(
activationDesc: cudnnActivationDescriptor_t,
swish_beta: f64,
) -> cudnnStatus_t,
pub cudnnSetAttnDescriptor: unsafe extern "C" fn(
attnDesc: cudnnAttnDescriptor_t,
attnMode: ::core::ffi::c_uint,
nHeads: ::core::ffi::c_int,
smScaler: f64,
dataType: cudnnDataType_t,
computePrec: cudnnDataType_t,
mathType: cudnnMathType_t,
attnDropoutDesc: cudnnDropoutDescriptor_t,
postDropoutDesc: cudnnDropoutDescriptor_t,
qSize: ::core::ffi::c_int,
kSize: ::core::ffi::c_int,
vSize: ::core::ffi::c_int,
qProjSize: ::core::ffi::c_int,
kProjSize: ::core::ffi::c_int,
vProjSize: ::core::ffi::c_int,
oProjSize: ::core::ffi::c_int,
qoMaxSeqLength: ::core::ffi::c_int,
kvMaxSeqLength: ::core::ffi::c_int,
maxBatchSize: ::core::ffi::c_int,
maxBeamSize: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetCTCLossDescriptor: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnSetCTCLossDescriptorEx: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
) -> cudnnStatus_t,
pub cudnnSetCTCLossDescriptor_v8: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
gradMode: cudnnNanPropagation_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetCTCLossDescriptor_v9: unsafe extern "C" fn(
ctcLossDesc: cudnnCTCLossDescriptor_t,
compType: cudnnDataType_t,
normMode: cudnnLossNormalizationMode_t,
ctcGradMode: cudnnCTCGradMode_t,
maxLabelLength: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetCallback: unsafe extern "C" fn(
mask: ::core::ffi::c_uint,
udata: *mut ::core::ffi::c_void,
fptr: cudnnCallback_t,
) -> cudnnStatus_t,
pub cudnnSetConvolution2dDescriptor: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
pad_h: ::core::ffi::c_int,
pad_w: ::core::ffi::c_int,
u: ::core::ffi::c_int,
v: ::core::ffi::c_int,
dilation_h: ::core::ffi::c_int,
dilation_w: ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnSetConvolutionGroupCount: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
groupCount: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetConvolutionMathType: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
mathType: cudnnMathType_t,
) -> cudnnStatus_t,
pub cudnnSetConvolutionNdDescriptor: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
arrayLength: ::core::ffi::c_int,
padA: *const ::core::ffi::c_int,
filterStrideA: *const ::core::ffi::c_int,
dilationA: *const ::core::ffi::c_int,
mode: cudnnConvolutionMode_t,
computeType: cudnnDataType_t,
) -> cudnnStatus_t,
pub cudnnSetConvolutionReorderType: unsafe extern "C" fn(
convDesc: cudnnConvolutionDescriptor_t,
reorderType: cudnnReorderType_t,
) -> cudnnStatus_t,
pub cudnnSetDropoutDescriptor: unsafe extern "C" fn(
dropoutDesc: cudnnDropoutDescriptor_t,
handle: cudnnHandle_t,
dropout: f32,
states: *mut ::core::ffi::c_void,
stateSizeInBytes: usize,
seed: ::core::ffi::c_ulonglong,
) -> cudnnStatus_t,
pub cudnnSetFilter4dDescriptor: unsafe extern "C" fn(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
k: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetFilterNdDescriptor: unsafe extern "C" fn(
filterDesc: cudnnFilterDescriptor_t,
dataType: cudnnDataType_t,
format: cudnnTensorFormat_t,
nbDims: ::core::ffi::c_int,
filterDimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetFusedOpsConstParamPackAttribute: unsafe extern "C" fn(
constPack: cudnnFusedOpsConstParamPack_t,
paramLabel: cudnnFusedOpsConstParamLabel_t,
param: *const ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSetFusedOpsVariantParamPackAttribute: unsafe extern "C" fn(
varPack: cudnnFusedOpsVariantParamPack_t,
paramLabel: cudnnFusedOpsVariantParamLabel_t,
ptr: *mut ::core::ffi::c_void,
)
-> cudnnStatus_t,
pub cudnnSetLRNDescriptor: unsafe extern "C" fn(
normDesc: cudnnLRNDescriptor_t,
lrnN: ::core::ffi::c_uint,
lrnAlpha: f64,
lrnBeta: f64,
lrnK: f64,
) -> cudnnStatus_t,
pub cudnnSetOpTensorDescriptor: unsafe extern "C" fn(
opTensorDesc: cudnnOpTensorDescriptor_t,
opTensorOp: cudnnOpTensorOp_t,
opTensorCompType: cudnnDataType_t,
opTensorNanOpt: cudnnNanPropagation_t,
) -> cudnnStatus_t,
pub cudnnSetPooling2dDescriptor: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
windowHeight: ::core::ffi::c_int,
windowWidth: ::core::ffi::c_int,
verticalPadding: ::core::ffi::c_int,
horizontalPadding: ::core::ffi::c_int,
verticalStride: ::core::ffi::c_int,
horizontalStride: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetPoolingNdDescriptor: unsafe extern "C" fn(
poolingDesc: cudnnPoolingDescriptor_t,
mode: cudnnPoolingMode_t,
maxpoolingNanOpt: cudnnNanPropagation_t,
nbDims: ::core::ffi::c_int,
windowDimA: *const ::core::ffi::c_int,
paddingA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetRNNDataDescriptor: unsafe extern "C" fn(
rnnDataDesc: cudnnRNNDataDescriptor_t,
dataType: cudnnDataType_t,
layout: cudnnRNNDataLayout_t,
maxSeqLength: ::core::ffi::c_int,
batchSize: ::core::ffi::c_int,
vectorSize: ::core::ffi::c_int,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSetRNNDescriptor_v8: unsafe extern "C" fn(
rnnDesc: cudnnRNNDescriptor_t,
algo: cudnnRNNAlgo_t,
cellMode: cudnnRNNMode_t,
biasMode: cudnnRNNBiasMode_t,
dirMode: cudnnDirectionMode_t,
inputMode: cudnnRNNInputMode_t,
dataType: cudnnDataType_t,
mathPrec: cudnnDataType_t,
mathType: cudnnMathType_t,
inputSize: i32,
hiddenSize: i32,
projSize: i32,
numLayers: i32,
dropoutDesc: cudnnDropoutDescriptor_t,
auxFlags: u32,
) -> cudnnStatus_t,
pub cudnnSetReduceTensorDescriptor: unsafe extern "C" fn(
reduceTensorDesc: cudnnReduceTensorDescriptor_t,
reduceTensorOp: cudnnReduceTensorOp_t,
reduceTensorCompType: cudnnDataType_t,
reduceTensorNanOpt: cudnnNanPropagation_t,
reduceTensorIndices: cudnnReduceTensorIndices_t,
reduceTensorIndicesType: cudnnIndicesType_t,
) -> cudnnStatus_t,
pub cudnnSetSeqDataDescriptor: unsafe extern "C" fn(
seqDataDesc: cudnnSeqDataDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
axes: *const cudnnSeqDataAxis_t,
seqLengthArraySize: usize,
seqLengthArray: *const ::core::ffi::c_int,
paddingFill: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSetSpatialTransformerNdDescriptor: unsafe extern "C" fn(
stDesc: cudnnSpatialTransformerDescriptor_t,
samplerType: cudnnSamplerType_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetStream:
unsafe extern "C" fn(handle: cudnnHandle_t, streamId: cudaStream_t) -> cudnnStatus_t,
pub cudnnSetTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
valuePtr: *const ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSetTensor4dDescriptor: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetTensor4dDescriptorEx: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
n: ::core::ffi::c_int,
c: ::core::ffi::c_int,
h: ::core::ffi::c_int,
w: ::core::ffi::c_int,
nStride: ::core::ffi::c_int,
cStride: ::core::ffi::c_int,
hStride: ::core::ffi::c_int,
wStride: ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetTensorNdDescriptor: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
strideA: *const ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetTensorNdDescriptorEx: unsafe extern "C" fn(
tensorDesc: cudnnTensorDescriptor_t,
format: cudnnTensorFormat_t,
dataType: cudnnDataType_t,
nbDims: ::core::ffi::c_int,
dimA: *const ::core::ffi::c_int,
) -> cudnnStatus_t,
pub cudnnSetTensorTransformDescriptor: unsafe extern "C" fn(
transformDesc: cudnnTensorTransformDescriptor_t,
nbDims: u32,
destFormat: cudnnTensorFormat_t,
padBeforeA: *const i32,
padAfterA: *const i32,
foldA: *const u32,
direction: cudnnFoldingDirection_t,
) -> cudnnStatus_t,
pub cudnnSoftmaxBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSoftmaxForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
algo: cudnnSoftmaxAlgorithm_t,
mode: cudnnSoftmaxMode_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSpatialTfGridGeneratorBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
dgrid: *const ::core::ffi::c_void,
dtheta: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSpatialTfGridGeneratorForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
theta: *const ::core::ffi::c_void,
grid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSpatialTfSamplerBackward: unsafe extern "C" fn(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
dxDesc: cudnnTensorDescriptor_t,
dx: *mut ::core::ffi::c_void,
alphaDgrid: *const ::core::ffi::c_void,
dyDesc: cudnnTensorDescriptor_t,
dy: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
betaDgrid: *const ::core::ffi::c_void,
dgrid: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnSpatialTfSamplerForward: unsafe extern "C" fn(
handle: cudnnHandle_t,
stDesc: cudnnSpatialTransformerDescriptor_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
grid: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnTransformFilter: unsafe extern "C" fn(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnFilterDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnFilterDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnTransformTensor: unsafe extern "C" fn(
handle: cudnnHandle_t,
alpha: *const ::core::ffi::c_void,
xDesc: cudnnTensorDescriptor_t,
x: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
yDesc: cudnnTensorDescriptor_t,
y: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
pub cudnnTransformTensorEx: unsafe extern "C" fn(
handle: cudnnHandle_t,
transDesc: cudnnTensorTransformDescriptor_t,
alpha: *const ::core::ffi::c_void,
srcDesc: cudnnTensorDescriptor_t,
srcData: *const ::core::ffi::c_void,
beta: *const ::core::ffi::c_void,
destDesc: cudnnTensorDescriptor_t,
destData: *mut ::core::ffi::c_void,
) -> cudnnStatus_t,
}
impl Lib {
pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
where
P: AsRef<::std::ffi::OsStr>,
{
let library = ::libloading::Library::new(path.as_ref())?;
Self::from_library(library)
}
pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
where
L: Into<::libloading::Library>,
{
let __library = library.into();
let cudnnActivationBackward = __library
.get(b"cudnnActivationBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnActivationForward = __library
.get(b"cudnnActivationForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnAddTensor = __library
.get(b"cudnnAddTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnAdvVersionCheck = __library
.get(b"cudnnAdvVersionCheck\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendCreateDescriptor = __library
.get(b"cudnnBackendCreateDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendDestroyDescriptor = __library
.get(b"cudnnBackendDestroyDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendExecute = __library
.get(b"cudnnBackendExecute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendFinalize = __library
.get(b"cudnnBackendFinalize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendGetAttribute = __library
.get(b"cudnnBackendGetAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendInitialize = __library
.get(b"cudnnBackendInitialize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendPopulateCudaGraph = __library
.get(b"cudnnBackendPopulateCudaGraph\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendSetAttribute = __library
.get(b"cudnnBackendSetAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBackendUpdateCudaGraph = __library
.get(b"cudnnBackendUpdateCudaGraph\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBatchNormalizationBackward = __library
.get(b"cudnnBatchNormalizationBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBatchNormalizationBackwardEx = __library
.get(b"cudnnBatchNormalizationBackwardEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBatchNormalizationForwardInference = __library
.get(b"cudnnBatchNormalizationForwardInference\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBatchNormalizationForwardTraining = __library
.get(b"cudnnBatchNormalizationForwardTraining\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBatchNormalizationForwardTrainingEx = __library
.get(b"cudnnBatchNormalizationForwardTrainingEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnBuildRNNDynamic = __library
.get(b"cudnnBuildRNNDynamic\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCTCLoss = __library
.get(b"cudnnCTCLoss\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCTCLoss_v8 = __library
.get(b"cudnnCTCLoss_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCnnVersionCheck = __library
.get(b"cudnnCnnVersionCheck\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnConvolutionBackwardBias = __library
.get(b"cudnnConvolutionBackwardBias\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnConvolutionBackwardData = __library
.get(b"cudnnConvolutionBackwardData\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnConvolutionBackwardFilter = __library
.get(b"cudnnConvolutionBackwardFilter\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnConvolutionBiasActivationForward = __library
.get(b"cudnnConvolutionBiasActivationForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnConvolutionForward = __library
.get(b"cudnnConvolutionForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreate = __library
.get(b"cudnnCreate\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateActivationDescriptor = __library
.get(b"cudnnCreateActivationDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateAttnDescriptor = __library
.get(b"cudnnCreateAttnDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateCTCLossDescriptor = __library
.get(b"cudnnCreateCTCLossDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateConvolutionDescriptor = __library
.get(b"cudnnCreateConvolutionDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateDropoutDescriptor = __library
.get(b"cudnnCreateDropoutDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateFilterDescriptor = __library
.get(b"cudnnCreateFilterDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateFusedOpsConstParamPack = __library
.get(b"cudnnCreateFusedOpsConstParamPack\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateFusedOpsPlan = __library
.get(b"cudnnCreateFusedOpsPlan\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateFusedOpsVariantParamPack = __library
.get(b"cudnnCreateFusedOpsVariantParamPack\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateLRNDescriptor = __library
.get(b"cudnnCreateLRNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateOpTensorDescriptor = __library
.get(b"cudnnCreateOpTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreatePoolingDescriptor = __library
.get(b"cudnnCreatePoolingDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateRNNDataDescriptor = __library
.get(b"cudnnCreateRNNDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateRNNDescriptor = __library
.get(b"cudnnCreateRNNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateReduceTensorDescriptor = __library
.get(b"cudnnCreateReduceTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateSeqDataDescriptor = __library
.get(b"cudnnCreateSeqDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateSpatialTransformerDescriptor = __library
.get(b"cudnnCreateSpatialTransformerDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateTensorDescriptor = __library
.get(b"cudnnCreateTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnCreateTensorTransformDescriptor = __library
.get(b"cudnnCreateTensorTransformDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDeriveBNTensorDescriptor = __library
.get(b"cudnnDeriveBNTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDeriveNormTensorDescriptor = __library
.get(b"cudnnDeriveNormTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroy = __library
.get(b"cudnnDestroy\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyActivationDescriptor = __library
.get(b"cudnnDestroyActivationDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyAttnDescriptor = __library
.get(b"cudnnDestroyAttnDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyCTCLossDescriptor = __library
.get(b"cudnnDestroyCTCLossDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyConvolutionDescriptor = __library
.get(b"cudnnDestroyConvolutionDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyDropoutDescriptor = __library
.get(b"cudnnDestroyDropoutDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyFilterDescriptor = __library
.get(b"cudnnDestroyFilterDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyFusedOpsConstParamPack = __library
.get(b"cudnnDestroyFusedOpsConstParamPack\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyFusedOpsPlan = __library
.get(b"cudnnDestroyFusedOpsPlan\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyFusedOpsVariantParamPack = __library
.get(b"cudnnDestroyFusedOpsVariantParamPack\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyLRNDescriptor = __library
.get(b"cudnnDestroyLRNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyOpTensorDescriptor = __library
.get(b"cudnnDestroyOpTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyPoolingDescriptor = __library
.get(b"cudnnDestroyPoolingDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyRNNDataDescriptor = __library
.get(b"cudnnDestroyRNNDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyRNNDescriptor = __library
.get(b"cudnnDestroyRNNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyReduceTensorDescriptor = __library
.get(b"cudnnDestroyReduceTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroySeqDataDescriptor = __library
.get(b"cudnnDestroySeqDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroySpatialTransformerDescriptor = __library
.get(b"cudnnDestroySpatialTransformerDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyTensorDescriptor = __library
.get(b"cudnnDestroyTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDestroyTensorTransformDescriptor = __library
.get(b"cudnnDestroyTensorTransformDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDivisiveNormalizationBackward = __library
.get(b"cudnnDivisiveNormalizationBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDivisiveNormalizationForward = __library
.get(b"cudnnDivisiveNormalizationForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDropoutBackward = __library
.get(b"cudnnDropoutBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDropoutForward = __library
.get(b"cudnnDropoutForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDropoutGetReserveSpaceSize = __library
.get(b"cudnnDropoutGetReserveSpaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnDropoutGetStatesSize = __library
.get(b"cudnnDropoutGetStatesSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionBackwardDataAlgorithm = __library
.get(b"cudnnFindConvolutionBackwardDataAlgorithm\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionBackwardDataAlgorithmEx = __library
.get(b"cudnnFindConvolutionBackwardDataAlgorithmEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionBackwardFilterAlgorithm = __library
.get(b"cudnnFindConvolutionBackwardFilterAlgorithm\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionBackwardFilterAlgorithmEx = __library
.get(b"cudnnFindConvolutionBackwardFilterAlgorithmEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionForwardAlgorithm = __library
.get(b"cudnnFindConvolutionForwardAlgorithm\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFindConvolutionForwardAlgorithmEx = __library
.get(b"cudnnFindConvolutionForwardAlgorithmEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnFusedOpsExecute = __library
.get(b"cudnnFusedOpsExecute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetActivationDescriptor = __library
.get(b"cudnnGetActivationDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetActivationDescriptorSwishBeta = __library
.get(b"cudnnGetActivationDescriptorSwishBeta\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetAttnDescriptor = __library
.get(b"cudnnGetAttnDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetBatchNormalizationBackwardExWorkspaceSize = __library
.get(b"cudnnGetBatchNormalizationBackwardExWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize = __library
.get(b"cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetBatchNormalizationTrainingExReserveSpaceSize = __library
.get(b"cudnnGetBatchNormalizationTrainingExReserveSpaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossDescriptor = __library
.get(b"cudnnGetCTCLossDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossDescriptorEx = __library
.get(b"cudnnGetCTCLossDescriptorEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossDescriptor_v8 = __library
.get(b"cudnnGetCTCLossDescriptor_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossDescriptor_v9 = __library
.get(b"cudnnGetCTCLossDescriptor_v9\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossWorkspaceSize = __library
.get(b"cudnnGetCTCLossWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCTCLossWorkspaceSize_v8 = __library
.get(b"cudnnGetCTCLossWorkspaceSize_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCallback = __library
.get(b"cudnnGetCallback\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolution2dDescriptor = __library
.get(b"cudnnGetConvolution2dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolution2dForwardOutputDim = __library
.get(b"cudnnGetConvolution2dForwardOutputDim\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardDataAlgorithmMaxCount = __library
.get(b"cudnnGetConvolutionBackwardDataAlgorithmMaxCount\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardDataAlgorithm_v7 = __library
.get(b"cudnnGetConvolutionBackwardDataAlgorithm_v7\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardDataWorkspaceSize = __library
.get(b"cudnnGetConvolutionBackwardDataWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardFilterAlgorithmMaxCount = __library
.get(b"cudnnGetConvolutionBackwardFilterAlgorithmMaxCount\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardFilterAlgorithm_v7 = __library
.get(b"cudnnGetConvolutionBackwardFilterAlgorithm_v7\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionBackwardFilterWorkspaceSize = __library
.get(b"cudnnGetConvolutionBackwardFilterWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionForwardAlgorithmMaxCount = __library
.get(b"cudnnGetConvolutionForwardAlgorithmMaxCount\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionForwardAlgorithm_v7 = __library
.get(b"cudnnGetConvolutionForwardAlgorithm_v7\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionForwardWorkspaceSize = __library
.get(b"cudnnGetConvolutionForwardWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionGroupCount = __library
.get(b"cudnnGetConvolutionGroupCount\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionMathType = __library
.get(b"cudnnGetConvolutionMathType\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionNdDescriptor = __library
.get(b"cudnnGetConvolutionNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionNdForwardOutputDim = __library
.get(b"cudnnGetConvolutionNdForwardOutputDim\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetConvolutionReorderType = __library
.get(b"cudnnGetConvolutionReorderType\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetCudartVersion = __library
.get(b"cudnnGetCudartVersion\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetDropoutDescriptor = __library
.get(b"cudnnGetDropoutDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetErrorString = __library
.get(b"cudnnGetErrorString\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFilter4dDescriptor = __library
.get(b"cudnnGetFilter4dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFilterNdDescriptor = __library
.get(b"cudnnGetFilterNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFilterSizeInBytes = __library
.get(b"cudnnGetFilterSizeInBytes\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFoldedConvBackwardDataDescriptors = __library
.get(b"cudnnGetFoldedConvBackwardDataDescriptors\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFusedOpsConstParamPackAttribute = __library
.get(b"cudnnGetFusedOpsConstParamPackAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetFusedOpsVariantParamPackAttribute = __library
.get(b"cudnnGetFusedOpsVariantParamPackAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetLRNDescriptor = __library
.get(b"cudnnGetLRNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetLastErrorString = __library
.get(b"cudnnGetLastErrorString\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetMaxDeviceVersion = __library
.get(b"cudnnGetMaxDeviceVersion\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetMultiHeadAttnBuffers = __library
.get(b"cudnnGetMultiHeadAttnBuffers\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetMultiHeadAttnWeights = __library
.get(b"cudnnGetMultiHeadAttnWeights\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetNormalizationBackwardWorkspaceSize = __library
.get(b"cudnnGetNormalizationBackwardWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetNormalizationForwardTrainingWorkspaceSize = __library
.get(b"cudnnGetNormalizationForwardTrainingWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetNormalizationTrainingReserveSpaceSize = __library
.get(b"cudnnGetNormalizationTrainingReserveSpaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetOpTensorDescriptor = __library
.get(b"cudnnGetOpTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetPooling2dDescriptor = __library
.get(b"cudnnGetPooling2dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetPooling2dForwardOutputDim = __library
.get(b"cudnnGetPooling2dForwardOutputDim\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetPoolingNdDescriptor = __library
.get(b"cudnnGetPoolingNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetPoolingNdForwardOutputDim = __library
.get(b"cudnnGetPoolingNdForwardOutputDim\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetProperty = __library
.get(b"cudnnGetProperty\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetRNNDataDescriptor = __library
.get(b"cudnnGetRNNDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetRNNDescriptor_v8 = __library
.get(b"cudnnGetRNNDescriptor_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetRNNTempSpaceSizes = __library
.get(b"cudnnGetRNNTempSpaceSizes\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetRNNWeightParams = __library
.get(b"cudnnGetRNNWeightParams\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetRNNWeightSpaceSize = __library
.get(b"cudnnGetRNNWeightSpaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetReduceTensorDescriptor = __library
.get(b"cudnnGetReduceTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetReductionIndicesSize = __library
.get(b"cudnnGetReductionIndicesSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetReductionWorkspaceSize = __library
.get(b"cudnnGetReductionWorkspaceSize\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetSeqDataDescriptor = __library
.get(b"cudnnGetSeqDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetStream = __library
.get(b"cudnnGetStream\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetTensor4dDescriptor = __library
.get(b"cudnnGetTensor4dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetTensorNdDescriptor = __library
.get(b"cudnnGetTensorNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetTensorSizeInBytes = __library
.get(b"cudnnGetTensorSizeInBytes\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetTensorTransformDescriptor = __library
.get(b"cudnnGetTensorTransformDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGetVersion = __library
.get(b"cudnnGetVersion\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnGraphVersionCheck = __library
.get(b"cudnnGraphVersionCheck\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnIm2Col = __library
.get(b"cudnnIm2Col\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnInitTransformDest = __library
.get(b"cudnnInitTransformDest\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnLRNCrossChannelBackward = __library
.get(b"cudnnLRNCrossChannelBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnLRNCrossChannelForward = __library
.get(b"cudnnLRNCrossChannelForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnMakeFusedOpsPlan = __library
.get(b"cudnnMakeFusedOpsPlan\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnMultiHeadAttnBackwardData = __library
.get(b"cudnnMultiHeadAttnBackwardData\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnMultiHeadAttnBackwardWeights = __library
.get(b"cudnnMultiHeadAttnBackwardWeights\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnMultiHeadAttnForward = __library
.get(b"cudnnMultiHeadAttnForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnNormalizationBackward = __library
.get(b"cudnnNormalizationBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnNormalizationForwardInference = __library
.get(b"cudnnNormalizationForwardInference\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnNormalizationForwardTraining = __library
.get(b"cudnnNormalizationForwardTraining\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnOpTensor = __library
.get(b"cudnnOpTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnOpsVersionCheck = __library
.get(b"cudnnOpsVersionCheck\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnPoolingBackward = __library
.get(b"cudnnPoolingBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnPoolingForward = __library
.get(b"cudnnPoolingForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnQueryRuntimeError = __library
.get(b"cudnnQueryRuntimeError\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNBackwardData_v8 = __library
.get(b"cudnnRNNBackwardData_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNBackwardWeights_v8 = __library
.get(b"cudnnRNNBackwardWeights_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNForward = __library
.get(b"cudnnRNNForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNGetClip_v8 = __library
.get(b"cudnnRNNGetClip_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNGetClip_v9 = __library
.get(b"cudnnRNNGetClip_v9\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNSetClip_v8 = __library
.get(b"cudnnRNNSetClip_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRNNSetClip_v9 = __library
.get(b"cudnnRNNSetClip_v9\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnReduceTensor = __library
.get(b"cudnnReduceTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnReorderFilterAndBias = __library
.get(b"cudnnReorderFilterAndBias\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnRestoreDropoutDescriptor = __library
.get(b"cudnnRestoreDropoutDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnScaleTensor = __library
.get(b"cudnnScaleTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetActivationDescriptor = __library
.get(b"cudnnSetActivationDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetActivationDescriptorSwishBeta = __library
.get(b"cudnnSetActivationDescriptorSwishBeta\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetAttnDescriptor = __library
.get(b"cudnnSetAttnDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetCTCLossDescriptor = __library
.get(b"cudnnSetCTCLossDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetCTCLossDescriptorEx = __library
.get(b"cudnnSetCTCLossDescriptorEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetCTCLossDescriptor_v8 = __library
.get(b"cudnnSetCTCLossDescriptor_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetCTCLossDescriptor_v9 = __library
.get(b"cudnnSetCTCLossDescriptor_v9\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetCallback = __library
.get(b"cudnnSetCallback\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetConvolution2dDescriptor = __library
.get(b"cudnnSetConvolution2dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetConvolutionGroupCount = __library
.get(b"cudnnSetConvolutionGroupCount\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetConvolutionMathType = __library
.get(b"cudnnSetConvolutionMathType\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetConvolutionNdDescriptor = __library
.get(b"cudnnSetConvolutionNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetConvolutionReorderType = __library
.get(b"cudnnSetConvolutionReorderType\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetDropoutDescriptor = __library
.get(b"cudnnSetDropoutDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetFilter4dDescriptor = __library
.get(b"cudnnSetFilter4dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetFilterNdDescriptor = __library
.get(b"cudnnSetFilterNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetFusedOpsConstParamPackAttribute = __library
.get(b"cudnnSetFusedOpsConstParamPackAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetFusedOpsVariantParamPackAttribute = __library
.get(b"cudnnSetFusedOpsVariantParamPackAttribute\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetLRNDescriptor = __library
.get(b"cudnnSetLRNDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetOpTensorDescriptor = __library
.get(b"cudnnSetOpTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetPooling2dDescriptor = __library
.get(b"cudnnSetPooling2dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetPoolingNdDescriptor = __library
.get(b"cudnnSetPoolingNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetRNNDataDescriptor = __library
.get(b"cudnnSetRNNDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetRNNDescriptor_v8 = __library
.get(b"cudnnSetRNNDescriptor_v8\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetReduceTensorDescriptor = __library
.get(b"cudnnSetReduceTensorDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetSeqDataDescriptor = __library
.get(b"cudnnSetSeqDataDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetSpatialTransformerNdDescriptor = __library
.get(b"cudnnSetSpatialTransformerNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetStream = __library
.get(b"cudnnSetStream\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensor = __library
.get(b"cudnnSetTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensor4dDescriptor = __library
.get(b"cudnnSetTensor4dDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensor4dDescriptorEx = __library
.get(b"cudnnSetTensor4dDescriptorEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensorNdDescriptor = __library
.get(b"cudnnSetTensorNdDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensorNdDescriptorEx = __library
.get(b"cudnnSetTensorNdDescriptorEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSetTensorTransformDescriptor = __library
.get(b"cudnnSetTensorTransformDescriptor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSoftmaxBackward = __library
.get(b"cudnnSoftmaxBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSoftmaxForward = __library
.get(b"cudnnSoftmaxForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSpatialTfGridGeneratorBackward = __library
.get(b"cudnnSpatialTfGridGeneratorBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSpatialTfGridGeneratorForward = __library
.get(b"cudnnSpatialTfGridGeneratorForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSpatialTfSamplerBackward = __library
.get(b"cudnnSpatialTfSamplerBackward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnSpatialTfSamplerForward = __library
.get(b"cudnnSpatialTfSamplerForward\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnTransformFilter = __library
.get(b"cudnnTransformFilter\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnTransformTensor = __library
.get(b"cudnnTransformTensor\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
let cudnnTransformTensorEx = __library
.get(b"cudnnTransformTensorEx\0")
.map(|sym| *sym)
.expect("Expected symbol in library");
Ok(Self {
__library,
cudnnActivationBackward,
cudnnActivationForward,
cudnnAddTensor,
cudnnAdvVersionCheck,
cudnnBackendCreateDescriptor,
cudnnBackendDestroyDescriptor,
cudnnBackendExecute,
cudnnBackendFinalize,
cudnnBackendGetAttribute,
cudnnBackendInitialize,
cudnnBackendPopulateCudaGraph,
cudnnBackendSetAttribute,
cudnnBackendUpdateCudaGraph,
cudnnBatchNormalizationBackward,
cudnnBatchNormalizationBackwardEx,
cudnnBatchNormalizationForwardInference,
cudnnBatchNormalizationForwardTraining,
cudnnBatchNormalizationForwardTrainingEx,
cudnnBuildRNNDynamic,
cudnnCTCLoss,
cudnnCTCLoss_v8,
cudnnCnnVersionCheck,
cudnnConvolutionBackwardBias,
cudnnConvolutionBackwardData,
cudnnConvolutionBackwardFilter,
cudnnConvolutionBiasActivationForward,
cudnnConvolutionForward,
cudnnCreate,
cudnnCreateActivationDescriptor,
cudnnCreateAttnDescriptor,
cudnnCreateCTCLossDescriptor,
cudnnCreateConvolutionDescriptor,
cudnnCreateDropoutDescriptor,
cudnnCreateFilterDescriptor,
cudnnCreateFusedOpsConstParamPack,
cudnnCreateFusedOpsPlan,
cudnnCreateFusedOpsVariantParamPack,
cudnnCreateLRNDescriptor,
cudnnCreateOpTensorDescriptor,
cudnnCreatePoolingDescriptor,
cudnnCreateRNNDataDescriptor,
cudnnCreateRNNDescriptor,
cudnnCreateReduceTensorDescriptor,
cudnnCreateSeqDataDescriptor,
cudnnCreateSpatialTransformerDescriptor,
cudnnCreateTensorDescriptor,
cudnnCreateTensorTransformDescriptor,
cudnnDeriveBNTensorDescriptor,
cudnnDeriveNormTensorDescriptor,
cudnnDestroy,
cudnnDestroyActivationDescriptor,
cudnnDestroyAttnDescriptor,
cudnnDestroyCTCLossDescriptor,
cudnnDestroyConvolutionDescriptor,
cudnnDestroyDropoutDescriptor,
cudnnDestroyFilterDescriptor,
cudnnDestroyFusedOpsConstParamPack,
cudnnDestroyFusedOpsPlan,
cudnnDestroyFusedOpsVariantParamPack,
cudnnDestroyLRNDescriptor,
cudnnDestroyOpTensorDescriptor,
cudnnDestroyPoolingDescriptor,
cudnnDestroyRNNDataDescriptor,
cudnnDestroyRNNDescriptor,
cudnnDestroyReduceTensorDescriptor,
cudnnDestroySeqDataDescriptor,
cudnnDestroySpatialTransformerDescriptor,
cudnnDestroyTensorDescriptor,
cudnnDestroyTensorTransformDescriptor,
cudnnDivisiveNormalizationBackward,
cudnnDivisiveNormalizationForward,
cudnnDropoutBackward,
cudnnDropoutForward,
cudnnDropoutGetReserveSpaceSize,
cudnnDropoutGetStatesSize,
cudnnFindConvolutionBackwardDataAlgorithm,
cudnnFindConvolutionBackwardDataAlgorithmEx,
cudnnFindConvolutionBackwardFilterAlgorithm,
cudnnFindConvolutionBackwardFilterAlgorithmEx,
cudnnFindConvolutionForwardAlgorithm,
cudnnFindConvolutionForwardAlgorithmEx,
cudnnFusedOpsExecute,
cudnnGetActivationDescriptor,
cudnnGetActivationDescriptorSwishBeta,
cudnnGetAttnDescriptor,
cudnnGetBatchNormalizationBackwardExWorkspaceSize,
cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize,
cudnnGetBatchNormalizationTrainingExReserveSpaceSize,
cudnnGetCTCLossDescriptor,
cudnnGetCTCLossDescriptorEx,
cudnnGetCTCLossDescriptor_v8,
cudnnGetCTCLossDescriptor_v9,
cudnnGetCTCLossWorkspaceSize,
cudnnGetCTCLossWorkspaceSize_v8,
cudnnGetCallback,
cudnnGetConvolution2dDescriptor,
cudnnGetConvolution2dForwardOutputDim,
cudnnGetConvolutionBackwardDataAlgorithmMaxCount,
cudnnGetConvolutionBackwardDataAlgorithm_v7,
cudnnGetConvolutionBackwardDataWorkspaceSize,
cudnnGetConvolutionBackwardFilterAlgorithmMaxCount,
cudnnGetConvolutionBackwardFilterAlgorithm_v7,
cudnnGetConvolutionBackwardFilterWorkspaceSize,
cudnnGetConvolutionForwardAlgorithmMaxCount,
cudnnGetConvolutionForwardAlgorithm_v7,
cudnnGetConvolutionForwardWorkspaceSize,
cudnnGetConvolutionGroupCount,
cudnnGetConvolutionMathType,
cudnnGetConvolutionNdDescriptor,
cudnnGetConvolutionNdForwardOutputDim,
cudnnGetConvolutionReorderType,
cudnnGetCudartVersion,
cudnnGetDropoutDescriptor,
cudnnGetErrorString,
cudnnGetFilter4dDescriptor,
cudnnGetFilterNdDescriptor,
cudnnGetFilterSizeInBytes,
cudnnGetFoldedConvBackwardDataDescriptors,
cudnnGetFusedOpsConstParamPackAttribute,
cudnnGetFusedOpsVariantParamPackAttribute,
cudnnGetLRNDescriptor,
cudnnGetLastErrorString,
cudnnGetMaxDeviceVersion,
cudnnGetMultiHeadAttnBuffers,
cudnnGetMultiHeadAttnWeights,
cudnnGetNormalizationBackwardWorkspaceSize,
cudnnGetNormalizationForwardTrainingWorkspaceSize,
cudnnGetNormalizationTrainingReserveSpaceSize,
cudnnGetOpTensorDescriptor,
cudnnGetPooling2dDescriptor,
cudnnGetPooling2dForwardOutputDim,
cudnnGetPoolingNdDescriptor,
cudnnGetPoolingNdForwardOutputDim,
cudnnGetProperty,
cudnnGetRNNDataDescriptor,
cudnnGetRNNDescriptor_v8,
cudnnGetRNNTempSpaceSizes,
cudnnGetRNNWeightParams,
cudnnGetRNNWeightSpaceSize,
cudnnGetReduceTensorDescriptor,
cudnnGetReductionIndicesSize,
cudnnGetReductionWorkspaceSize,
cudnnGetSeqDataDescriptor,
cudnnGetStream,
cudnnGetTensor4dDescriptor,
cudnnGetTensorNdDescriptor,
cudnnGetTensorSizeInBytes,
cudnnGetTensorTransformDescriptor,
cudnnGetVersion,
cudnnGraphVersionCheck,
cudnnIm2Col,
cudnnInitTransformDest,
cudnnLRNCrossChannelBackward,
cudnnLRNCrossChannelForward,
cudnnMakeFusedOpsPlan,
cudnnMultiHeadAttnBackwardData,
cudnnMultiHeadAttnBackwardWeights,
cudnnMultiHeadAttnForward,
cudnnNormalizationBackward,
cudnnNormalizationForwardInference,
cudnnNormalizationForwardTraining,
cudnnOpTensor,
cudnnOpsVersionCheck,
cudnnPoolingBackward,
cudnnPoolingForward,
cudnnQueryRuntimeError,
cudnnRNNBackwardData_v8,
cudnnRNNBackwardWeights_v8,
cudnnRNNForward,
cudnnRNNGetClip_v8,
cudnnRNNGetClip_v9,
cudnnRNNSetClip_v8,
cudnnRNNSetClip_v9,
cudnnReduceTensor,
cudnnReorderFilterAndBias,
cudnnRestoreDropoutDescriptor,
cudnnScaleTensor,
cudnnSetActivationDescriptor,
cudnnSetActivationDescriptorSwishBeta,
cudnnSetAttnDescriptor,
cudnnSetCTCLossDescriptor,
cudnnSetCTCLossDescriptorEx,
cudnnSetCTCLossDescriptor_v8,
cudnnSetCTCLossDescriptor_v9,
cudnnSetCallback,
cudnnSetConvolution2dDescriptor,
cudnnSetConvolutionGroupCount,
cudnnSetConvolutionMathType,
cudnnSetConvolutionNdDescriptor,
cudnnSetConvolutionReorderType,
cudnnSetDropoutDescriptor,
cudnnSetFilter4dDescriptor,
cudnnSetFilterNdDescriptor,
cudnnSetFusedOpsConstParamPackAttribute,
cudnnSetFusedOpsVariantParamPackAttribute,
cudnnSetLRNDescriptor,
cudnnSetOpTensorDescriptor,
cudnnSetPooling2dDescriptor,
cudnnSetPoolingNdDescriptor,
cudnnSetRNNDataDescriptor,
cudnnSetRNNDescriptor_v8,
cudnnSetReduceTensorDescriptor,
cudnnSetSeqDataDescriptor,
cudnnSetSpatialTransformerNdDescriptor,
cudnnSetStream,
cudnnSetTensor,
cudnnSetTensor4dDescriptor,
cudnnSetTensor4dDescriptorEx,
cudnnSetTensorNdDescriptor,
cudnnSetTensorNdDescriptorEx,
cudnnSetTensorTransformDescriptor,
cudnnSoftmaxBackward,
cudnnSoftmaxForward,
cudnnSpatialTfGridGeneratorBackward,
cudnnSpatialTfGridGeneratorForward,
cudnnSpatialTfSamplerBackward,
cudnnSpatialTfSamplerForward,
cudnnTransformFilter,
cudnnTransformTensor,
cudnnTransformTensorEx,
})
}
}
pub unsafe fn is_culib_present() -> bool {
let lib_names = ["cudnn"];
let choices = lib_names
.iter()
.map(|l| crate::get_lib_name_candidates(l))
.flatten();
for choice in choices {
if Lib::new(choice).is_ok() {
return true;
}
}
false
}
pub unsafe fn culib() -> &'static Lib {
static LIB: std::sync::OnceLock<Lib> = std::sync::OnceLock::new();
LIB.get_or_init(|| {
let lib_names = std::vec!["cudnn"];
let choices: std::vec::Vec<_> = lib_names
.iter()
.map(|l| crate::get_lib_name_candidates(l))
.flatten()
.collect();
for choice in choices.iter() {
if let Ok(lib) = Lib::new(choice) {
return lib;
}
}
crate::panic_no_lib_found(lib_names[0], &choices);
})
}
}
#[cfg(feature = "dynamic-loading")]
pub use loaded::*;