# CUDNN API supported by HIP ## **1. CUDNN Data types** | **type** | **CUDA** | **HIP** |**HIP value** (if differs) | |-------------:|---------------------------------------------------------------|------------------------------------------------------------|---------------------------| | define |`CUDNN_VERSION` |`HIPDNN_VERSION` | | struct |`cudnnContext` | | | struct* |`cudnnHandle_t` |`hipdnnHandle_t` | | enum |***`cudnnStatus_t`*** |***`hipdnnStatus_t`*** | | 0 |*`CUDNN_STATUS_SUCCESS`* |*`HIPDNN_STATUS_SUCCESS`* | | 1 |*`CUDNN_STATUS_NOT_INITIALIZED`* |*`HIPDNN_STATUS_NOT_INITIALIZED`* | | 2 |*`CUDNN_STATUS_ALLOC_FAILED`* |*`HIPDNN_STATUS_ALLOC_FAILED`* | | 3 |*`CUDNN_STATUS_BAD_PARAM`* |*`HIPDNN_STATUS_BAD_PARAM`* | | 4 |*`CUDNN_STATUS_INTERNAL_ERROR`* |*`HIPDNN_STATUS_INTERNAL_ERROR`* | | 5 |*`CUDNN_STATUS_INVALID_VALUE`* |*`HIPDNN_STATUS_INVALID_VALUE`* | | 6 |*`CUDNN_STATUS_ARCH_MISMATCH`* |*`HIPDNN_STATUS_ARCH_MISMATCH`* | | 7 |*`CUDNN_STATUS_MAPPING_ERROR`* |*`HIPDNN_STATUS_MAPPING_ERROR`* | | 8 |*`CUDNN_STATUS_EXECUTION_FAILED`* |*`HIPDNN_STATUS_EXECUTION_FAILED`* | | 9 |*`CUDNN_STATUS_NOT_SUPPORTED`* |*`HIPDNN_STATUS_NOT_SUPPORTED`* | | 10 |*`CUDNN_STATUS_LICENSE_ERROR`* |*`HIPDNN_STATUS_LICENSE_ERROR`* | | 11 |*`CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSING`* |*`HIPDNN_STATUS_RUNTIME_PREREQUISITE_MISSING`* | | 12 |*`CUDNN_STATUS_RUNTIME_IN_PROGRESS`* | | | 13 |*`CUDNN_STATUS_RUNTIME_FP_OVERFLOW`* | | | struct |`cudnnRuntimeTag_t` | | | enum |***`cudnnErrQueryMode_t`*** | | | 0 |*`CUDNN_ERRQUERY_RAWCODE`* | | | 1 |*`CUDNN_ERRQUERY_NONBLOCKING`* | | | 2 |*`CUDNN_ERRQUERY_BLOCKING`* | | | struct |`cudnnTensorStruct` | | | struct* |`cudnnTensorDescriptor_t` |`hipdnnTensorDescriptor_t` | | struct |`cudnnConvolutionStruct` | | | struct* |`cudnnConvolutionDescriptor_t` |`hipdnnConvolutionDescriptor_t` | | struct |`cudnnPoolingStruct` | | | struct* |`cudnnPoolingDescriptor_t` |`hipdnnPoolingDescriptor_t` | | struct |`cudnnFilterStruct` | | | struct* |`cudnnFilterDescriptor_t` |`hipdnnFilterDescriptor_t` | | struct |`cudnnLRNStruct` | | | struct* |`cudnnLRNDescriptor_t` |`hipdnnLRNDescriptor_t` | | struct |`cudnnActivationStruct` | | | struct* |`cudnnActivationDescriptor_t` |`hipdnnActivationDescriptor_t` | | struct |`cudnnSpatialTransformerStruct` | | | struct* |`cudnnSpatialTransformerDescriptor_t` | | | struct |`cudnnOpTensorStruct` | | | struct* |`cudnnOpTensorDescriptor_t` |`hipdnnOpTensorDescriptor_t` | | struct |`cudnnReduceTensorStruct` | | | struct* |`cudnnReduceTensorDescriptor_t` |`hipdnnReduceTensorDescriptor_t` | | struct |`cudnnCTCLossStruct` | | | struct* |`cudnnCTCLossDescriptor_t` | | | struct |`cudnnTensorTransformStruct` | | | struct* |`cudnnTensorTransformDescriptor_t` | | | enum |***`cudnnDataType_t`*** |***`hipdnnDataType_t`*** | | 0 |*`CUDNN_DATA_FLOAT`* |*`HIPDNN_DATA_FLOAT`* | | 1 |*`CUDNN_DATA_DOUBLE`* |*`HIPDNN_DATA_DOUBLE`* | | 2 |*`CUDNN_DATA_HALF`* |*`HIPDNN_DATA_HALF`* | | 3 |*`CUDNN_DATA_INT8`* |*`HIPDNN_DATA_INT8`* | | 4 |*`CUDNN_DATA_INT32`* |*`HIPDNN_DATA_INT32`* | | 5 |*`CUDNN_DATA_INT8x4`* |*`HIPDNN_DATA_INT8x4`* | | 6 |*`CUDNN_DATA_UINT8`* | | | 7 |*`CUDNN_DATA_UINT8x4`* | | | 8 |*`CUDNN_DATA_INT8x32`* | | | enum |***`cudnnMathType_t`*** |***`hipdnnMathType_t`*** | | 0 |*`CUDNN_DEFAULT_MATH`* |*`HIPDNN_DEFAULT_MATH`* | | 1 |*`CUDNN_TENSOR_OP_MATH`* |*`HIPDNN_TENSOR_OP_MATH`* | | enum |***`cudnnNanPropagation_t`*** |***`hipdnnNanPropagation_t`*** | | 0 |*`CUDNN_NOT_PROPAGATE_NAN`* |*`HIPDNN_NOT_PROPAGATE_NAN`* | | 1 |*`CUDNN_PROPAGATE_NAN`* |*`HIPDNN_PROPAGATE_NAN`* | | enum |***`cudnnDeterminism_t`*** | | | 0 |*`CUDNN_NON_DETERMINISTIC`* | | | 1 |*`CUDNN_DETERMINISTIC`* | | | define |`CUDNN_DIM_MAX` | | | enum |***`cudnnTensorFormat_t`*** |***`hipdnnTensorFormat_t`*** | | 0 |*`CUDNN_TENSOR_NCHW`* |*`HIPDNN_TENSOR_NCHW`* | | 1 |*`CUDNN_TENSOR_NHWC`* |*`HIPDNN_TENSOR_NHWC`* | | 2 |*`CUDNN_TENSOR_NCHW_VECT_C`* |*`HIPDNN_TENSOR_NCHW_VECT_C`* | | enum |***`cudnnFoldingDirection_t`*** | | | 0 |*`CUDNN_TRANSFORM_FOLD`* | | | 1 |*`CUDNN_TRANSFORM_UNFOLD`* | | | enum |***`cudnnOpTensorOp_t`*** |***`hipdnnOpTensorOp_t`*** | | 0 |*`CUDNN_OP_TENSOR_ADD`* |*`HIPDNN_OP_TENSOR_ADD`* | | 1 |*`CUDNN_OP_TENSOR_MUL`* |*`HIPDNN_OP_TENSOR_MUL`* | | 2 |*`CUDNN_OP_TENSOR_MIN`* |*`HIPDNN_OP_TENSOR_MIN`* | | 3 |*`CUDNN_OP_TENSOR_MAX`* |*`HIPDNN_OP_TENSOR_MAX`* | | 4 |*`CUDNN_OP_TENSOR_SQRT`* |*`HIPDNN_OP_TENSOR_SQRT`* | | 5 |*`CUDNN_OP_TENSOR_NOT`* |*`HIPDNN_OP_TENSOR_NOT`* | | enum |***`cudnnReduceTensorOp_t`*** |***`hipdnnReduceTensorOp_t`*** | | 0 |*`CUDNN_REDUCE_TENSOR_ADD`* |*`HIPDNN_REDUCE_TENSOR_ADD`* | | 1 |*`CUDNN_REDUCE_TENSOR_MUL`* |*`HIPDNN_REDUCE_TENSOR_MUL`* | | 2 |*`CUDNN_REDUCE_TENSOR_MIN`* |*`HIPDNN_REDUCE_TENSOR_MIN`* | | 3 |*`CUDNN_REDUCE_TENSOR_MAX`* |*`HIPDNN_REDUCE_TENSOR_MAX`* | | 4 |*`CUDNN_REDUCE_TENSOR_AMAX`* |*`HIPDNN_REDUCE_TENSOR_AMAX`* | | 5 |*`CUDNN_REDUCE_TENSOR_AVG`* |*`HIPDNN_REDUCE_TENSOR_AVG`* | | 6 |*`CUDNN_REDUCE_TENSOR_NORM1`* |*`HIPDNN_REDUCE_TENSOR_NORM1`* | | 7 |*`CUDNN_REDUCE_TENSOR_NORM2`* |*`HIPDNN_REDUCE_TENSOR_NORM2`* | | 8 |*`CUDNN_REDUCE_TENSOR_MUL_NO_ZEROS`* |*`HIPDNN_REDUCE_TENSOR_MUL_NO_ZEROS`* | | enum |***`cudnnReduceTensorIndices_t`*** |***`hipdnnReduceTensorIndices_t`*** | | 0 |*`CUDNN_REDUCE_TENSOR_NO_INDICES`* |*`HIPDNN_REDUCE_TENSOR_NO_INDICES`* | | 1 |*`CUDNN_REDUCE_TENSOR_FLATTENED_INDICES`* |*`HIPDNN_REDUCE_TENSOR_FLATTENED_INDICES`* | | enum |***`cudnnIndicesType_t`*** |***`hipdnnIndicesType_t`*** | | 0 |*`CUDNN_32BIT_INDICES`* |*`HIPDNN_32BIT_INDICES`* | | 1 |*`CUDNN_64BIT_INDICES`* |*`HIPDNN_64BIT_INDICES`* | | 2 |*`CUDNN_16BIT_INDICES`* |*`HIPDNN_16BIT_INDICES`* | | 3 |*`CUDNN_8BIT_INDICES`* |*`HIPDNN_8BIT_INDICES`* | | enum |***`cudnnConvolutionMode_t`*** |***`hipdnnConvolutionMode_t`*** | | 0 |*`CUDNN_CONVOLUTION`* |*`HIPDNN_CONVOLUTION`* | | 1 |*`CUDNN_CROSS_CORRELATION`* |*`HIPDNN_CROSS_CORRELATION`* | | enum |***`cudnnConvolutionFwdPreference_t`*** |***`hipdnnConvolutionFwdPreference_t`*** | | 0 |*`CUDNN_CONVOLUTION_FWD_NO_WORKSPACE`* |*`HIPDNN_CONVOLUTION_FWD_NO_WORKSPACE`* | | 1 |*`CUDNN_CONVOLUTION_FWD_PREFER_FASTEST`* |*`HIPDNN_CONVOLUTION_FWD_PREFER_FASTEST`* | | 2 |*`CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT`* |*`HIPDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT`* | | enum |***`cudnnConvolutionFwdAlgo_t`*** |***`hipdnnConvolutionFwdAlgo_t`*** | | 0 |*`CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM`* | | 1 |*`CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM`* | | 2 |*`CUDNN_CONVOLUTION_FWD_ALGO_GEMM`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_GEMM`* | | 3 |*`CUDNN_CONVOLUTION_FWD_ALGO_DIRECT`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_DIRECT`* | | 4 |*`CUDNN_CONVOLUTION_FWD_ALGO_FFT`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_FFT`* | | 5 |*`CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_FFT_TILING`* | | 6 |*`CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_WINOGRAD`* | | 7 |*`CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED`* | | 8 |*`CUDNN_CONVOLUTION_FWD_ALGO_COUNT`* |*`HIPDNN_CONVOLUTION_FWD_ALGO_COUNT`* | | struct |`cudnnConvolutionFwdAlgoPerf_t` |`hipdnnConvolutionFwdAlgoPerf_t` | | enum |***`cudnnConvolutionBwdFilterPreference_t`*** |***`hipdnnConvolutionBwdFilterPreference_t`*** | | 0 |*`CUDNN_CONVOLUTION_BWD_FILTER_NO_WORKSPACE`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_NO_WORKSPACE`* | | 1 |*`CUDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_PREFER_FASTEST`* | | 2 |*`CUDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT`* | | enum |***`cudnnConvolutionBwdFilterAlgo_t`*** |***`hipdnnConvolutionBwdFilterAlgo_t`*** | | 0 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_0`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_0`* | | 1 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_1`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_1`* | | 2 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT`* | | 3 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_3`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_3`* | | 4 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD`* | | 5 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_WINOGRAD_NONFUSED`* | | 6 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT_TILING`* | | 7 |*`CUDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT`* |*`HIPDNN_CONVOLUTION_BWD_FILTER_ALGO_COUNT`* | | struct |`cudnnConvolutionBwdDataAlgoPerf_t` |`hipdnnConvolutionBwdDataAlgoPerf_t` | | enum |***`cudnnSoftmaxAlgorithm_t`*** |***`hipdnnSoftmaxAlgorithm_t`*** | | 0 |*`CUDNN_SOFTMAX_FAST`* |*`HIPDNN_SOFTMAX_FAST`* | | 1 |*`CUDNN_SOFTMAX_ACCURATE`* |*`HIPDNN_SOFTMAX_ACCURATE`* | | 2 |*`CUDNN_SOFTMAX_LOG`* |*`HIPDNN_SOFTMAX_LOG`* | | enum |***`cudnnSoftmaxMode_t`*** |***`hipdnnSoftmaxMode_t`*** | | 0 |*`CUDNN_SOFTMAX_MODE_INSTANCE`* |*`HIPDNN_SOFTMAX_MODE_INSTANCE`* | | 1 |*`CUDNN_SOFTMAX_MODE_CHANNEL`* |*`HIPDNN_SOFTMAX_MODE_CHANNEL`* | | enum |***`cudnnPoolingMode_t`*** |***`hipdnnPoolingMode_t`*** | | 0 |*`CUDNN_POOLING_MAX`* |*`HIPDNN_POOLING_MAX`* | | 1 |*`CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING`* |*`HIPDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING`* | | 2 |*`CUDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING`* |*`HIPDNN_POOLING_AVERAGE_COUNT_EXCLUDE_PADDING`* | | 3 |*`CUDNN_POOLING_MAX_DETERMINISTIC`* |*`HIPDNN_POOLING_MAX_DETERMINISTIC`* | | enum |***`cudnnActivationMode_t`*** |***`hipdnnActivationMode_t`*** | | 0 |*`CUDNN_ACTIVATION_SIGMOID`* |*`HIPDNN_ACTIVATION_SIGMOID`* | | 1 |*`CUDNN_ACTIVATION_RELU`* |*`HIPDNN_ACTIVATION_RELU`* | | 2 |*`CUDNN_ACTIVATION_TANH`* |*`HIPDNN_ACTIVATION_TANH`* | | 3 |*`CUDNN_ACTIVATION_CLIPPED_RELU`* |*`HIPDNN_ACTIVATION_CLIPPED_RELU`* | | 4 |*`CUDNN_ACTIVATION_ELU`* |*`HIPDNN_ACTIVATION_ELU`* | | 5 |*`CUDNN_ACTIVATION_IDENTITY`* |*`HIPDNN_ACTIVATION_PATHTRU`* | | define |`CUDNN_LRN_MIN_N` | | | define |`CUDNN_LRN_MAX_N` | | | define |`CUDNN_LRN_MIN_K` | | | define |`CUDNN_LRN_MIN_BETA` | | | enum |***`cudnnLRNMode_t`*** |***`hipdnnLRNMode_t`*** | | 0 |*`CUDNN_LRN_CROSS_CHANNEL_DIM1`* |*`HIPDNN_LRN_CROSS_CHANNEL`* | | enum |***`cudnnDivNormMode_t`*** | | | 0 |*`CUDNN_DIVNORM_PRECOMPUTED_MEANS`* | | | enum |***`cudnnBatchNormMode_t`*** |***`hipdnnBatchNormMode_t`*** | | 0 |*`CUDNN_BATCHNORM_PER_ACTIVATION`* |*`HIPDNN_BATCHNORM_PER_ACTIVATION`* | | 1 |*`CUDNN_BATCHNORM_SPATIAL`* |*`HIPDNN_BATCHNORM_SPATIAL`* | | 2 |*`CUDNN_BATCHNORM_SPATIAL_PERSISTENT`* |*`HIPDNN_BATCHNORM_SPATIAL_PERSISTENT`* | | define |`CUDNN_BN_MIN_EPSILON` |`HIPDNN_BN_MIN_EPSILON` | | enum |***`cudnnSamplerType_t`*** | | | 0 |*`CUDNN_SAMPLER_BILINEAR`* | | | struct |`cudnnDropoutStruct` | | | struct* |`cudnnDropoutDescriptor_t` |`hipdnnDropoutDescriptor_t` | | enum |***`cudnnRNNMode_t`*** |***`hipdnnRNNMode_t`*** | | 0 |*`CUDNN_RNN_RELU`* |*`HIPDNN_RNN_RELU`* | | 1 |*`CUDNN_RNN_TANH`* |*`HIPDNN_RNN_TANH`* | | 2 |*`CUDNN_LSTM`* |*`HIPDNN_LSTM`* | | 3 |*`CUDNN_GRU`* |*`HIPDNN_GRU`* | | enum |***`cudnnRNNBiasMode_t`*** |***`hipdnnRNNBiasMode_t`*** | | 0 |*`CUDNN_RNN_NO_BIAS`* |*`HIPDNN_RNN_NO_BIAS`* | | 1 |*`CUDNN_RNN_SINGLE_INP_BIAS`* |*`HIPDNN_RNN_WITH_BIAS`* | | 2 |*`CUDNN_RNN_DOUBLE_BIAS`* |*`HIPDNN_RNN_WITH_BIAS`* | 1 | | 3 |*`CUDNN_RNN_SINGLE_REC_BIAS`* |*`HIPDNN_RNN_WITH_BIAS`* | 1 | | enum |***`cudnnDirectionMode_t`*** |***`hipdnnDirectionMode_t`*** | | 0 |*`CUDNN_UNIDIRECTIONAL`* |*`HIPDNN_UNIDIRECTIONAL`* | | 1 |*`CUDNN_BIDIRECTIONAL`* |*`HIPDNN_BIDIRECTIONAL`* | | enum |***`cudnnRNNAlgo_t`*** |***`hipdnnRNNAlgo_t`*** | | 0 |*`CUDNN_RNN_ALGO_STANDARD`* |*`HIPDNN_RNN_ALGO_STANDARD`* | | 1 |*`CUDNN_RNN_ALGO_PERSIST_STATIC`* |*`HIPDNN_RNN_ALGO_PERSIST_STATIC`* | | 2 |*`CUDNN_RNN_ALGO_PERSIST_DYNAMIC`* |*`HIPDNN_RNN_ALGO_PERSIST_DYNAMIC`* | | 3 |*`CUDNN_RNN_ALGO_COUNT`* | | | struct |`cudnnAlgorithmStruct` | | | struct* |`cudnnAlgorithmDescriptor_t` | | | struct |`cudnnAlgorithmPerformanceStruct` | | | struct* |`cudnnAlgorithmPerformance_t` | | | struct |`cudnnRNNStruct` | | | struct* |`cudnnRNNDescriptor_t` |`hipdnnRNNDescriptor_t` | | struct |`cudnnPersistentRNNPlan` | | | struct* |`cudnnPersistentRNNPlan_t` |`hipdnnPersistentRNNPlan_t` | | enum |***`cudnnCTCLossAlgo_t`*** | | | 0 |*`CUDNN_CTC_LOSS_ALGO_DETERMINISTIC`* | | | 1 |*`CUDNN_CTC_LOSS_ALGO_NON_DETERMINISTIC`* | | | struct |`cudnnAlgorithm_t` | | | enum |***`cudnnSeverity_t`*** | | | 0 |*`CUDNN_SEV_FATAL`* | | | 1 |*`CUDNN_SEV_ERROR`* | | | 2 |*`CUDNN_SEV_WARNING`* | | | 3 |*`CUDNN_SEV_INFO`* | | | define |`CUDNN_SEV_ERROR_EN` | | | define |`CUDNN_SEV_WARNING_EN` | | | define |`CUDNN_SEV_INFO_EN` | | | struct |`cudnnDebug_t` | | | struct |`cudnnCallback_t` | | | enum |***`cudnnBatchNormOps_t`*** | | | 0 |*`CUDNN_BATCHNORM_OPS_BN`* | | | 1 |*`CUDNN_BATCHNORM_OPS_BN_ACTIVATION`* | | | 2 |*`CUDNN_BATCHNORM_OPS_BN_ADD_ACTIVATION`* | | | enum |***`cudnnRNNClipMode_t`*** | | | 0 |*`CUDNN_RNN_CLIP_NONE`* | | | 1 |*`CUDNN_RNN_CLIP_MINMAX`* | | | struct |`cudnnRNNDataStruct` | | | struct* |`cudnnRNNDataDescriptor_t` | | | enum |***`cudnnRNNDataLayout_t`*** | | | 0 |*`CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED`* | | | 1 |*`CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED`* | | | 2 |*`CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED`* | | | enum |***`cudnnRNNPaddingMode_t`*** | | | 0 |*`CUDNN_RNN_PADDED_IO_DISABLED`* | | | 1 |*`CUDNN_RNN_PADDED_IO_ENABLED`* | | | enum |***`cudnnSeqDataAxis_t`*** | | | 0 |*`CUDNN_SEQDATA_TIME_DIM`* | | | 1 |*`CUDNN_SEQDATA_BATCH_DIM`* | | | 2 |*`CUDNN_SEQDATA_BEAM_DIM`* | | | 3 |*`CUDNN_SEQDATA_VECT_DIM`* | | | define |`CUDNN_SEQDATA_DIM_COUNT` | | | struct |`cudnnSeqDataStruct` | | | struct* |`cudnnSeqDataDescriptor_t` | | | enum |***`cudnnAttnQueryMap_t`*** | | | 0 |*`CUDNN_ATTN_QUERYMAP_ALL_TO_ONE`* | | | 1 |*`CUDNN_ATTN_QUERYMAP_ONE_TO_ONE`* | | | struct |`cudnnAttnStruct` | | | struct* |`cudnnAttnDescriptor_t` | | | enum |***`cudnnMultiHeadAttnWeightKind_t`*** | | | 0 |*`CUDNN_MH_ATTN_Q_WEIGHTS`* | | | 1 |*`CUDNN_MH_ATTN_K_WEIGHTS`* | | | 2 |*`CUDNN_MH_ATTN_V_WEIGHTS`* | | | 3 |*`CUDNN_MH_ATTN_O_WEIGHTS`* | | | enum |***`cudnnWgradMode_t`*** | | | 0 |*`CUDNN_WGRAD_MODE_ADD`* | | | 1 |*`CUDNN_WGRAD_MODE_SET`* | | | enum |***`cudnnReorderType_t`*** | | | 0 |*`CUDNN_DEFAULT_REORDER`* | | | 1 |*`CUDNN_NO_REORDER`* | | | enum |***`cudnnLossNormalizationMode_t`*** | | | 0 |*`CUDNN_LOSS_NORMALIZATION_NONE`* | | | 1 |*`CUDNN_LOSS_NORMALIZATION_SOFTMAX`* | | | struct |`cudnnFusedOpsConstParamStruct` | | | struct* |`cudnnFusedOpsConstParamPack_t` | | | struct |`cudnnFusedOpsVariantParamStruct` | | | struct* |`cudnnFusedOpsVariantParamPack_t` | | | struct |`cudnnFusedOpsPlanStruct` | | | struct* |`cudnnFusedOpsPlan_t` | | | enum |***`cudnnFusedOps_t`*** | | | 0 |*`CUDNN_FUSED_SCALE_BIAS_ACTIVATION_CONV_BNSTATS`* | | | 1 |*`CUDNN_FUSED_SCALE_BIAS_ACTIVATION_WGRAD`* | | | 2 |*`CUDNN_FUSED_BN_FINALIZE_STATISTICS_TRAINING`* | | | 3 |*`CUDNN_FUSED_BN_FINALIZE_STATISTICS_INFERENCE`* | | | 4 |*`CUDNN_FUSED_CONV_SCALE_BIAS_ADD_ACTIVATION`* | | | 5 |*`CUDNN_FUSED_SCALE_BIAS_ADD_ACTIVATION_GEN_BITMASK`* | | | 6 |*`CUDNN_FUSED_DACTIVATION_FORK_DBATCHNORM`* | | | enum |***`cudnnFusedOpsConstParamLabel_t`*** | | | 0 |*`CUDNN_PARAM_XDESC`* | | | 1 |*`CUDNN_PARAM_XDATA_PLACEHOLDER`* | | | 2 |*`CUDNN_PARAM_BN_MODE`* | | | 3 |*`CUDNN_PARAM_BN_EQSCALEBIAS_DESC`* | | | 4 |*`CUDNN_PARAM_BN_EQSCALE_PLACEHOLDER`* | | | 5 |*`CUDNN_PARAM_BN_EQBIAS_PLACEHOLDER`* | | | 6 |*`CUDNN_PARAM_ACTIVATION_DESC`* | | | 7 |*`CUDNN_PARAM_CONV_DESC`* | | | 8 |*`CUDNN_PARAM_WDESC`* | | | 9 |*`CUDNN_PARAM_WDATA_PLACEHOLDER`* | | | 10 |*`CUDNN_PARAM_DWDESC`* | | | 11 |*`CUDNN_PARAM_DWDATA_PLACEHOLDER`* | | | 12 |*`CUDNN_PARAM_YDESC`* | | | 13 |*`CUDNN_PARAM_YDATA_PLACEHOLDER`* | | | 14 |*`CUDNN_PARAM_DYDESC`* | | | 15 |*`CUDNN_PARAM_DYDATA_PLACEHOLDER`* | | | 16 |*`CUDNN_PARAM_YSTATS_DESC`* | | | 17 |*`CUDNN_PARAM_YSUM_PLACEHOLDER`* | | | 18 |*`CUDNN_PARAM_YSQSUM_PLACEHOLDER`* | | | 19 |*`CUDNN_PARAM_BN_SCALEBIAS_MEANVAR_DESC`* | | | 20 |*`CUDNN_PARAM_BN_SCALE_PLACEHOLDER`* | | | 21 |*`CUDNN_PARAM_BN_BIAS_PLACEHOLDER`* | | | 22 |*`CUDNN_PARAM_BN_SAVED_MEAN_PLACEHOLDER`* | | | 23 |*`CUDNN_PARAM_BN_SAVED_INVSTD_PLACEHOLDER`* | | | 24 |*`CUDNN_PARAM_BN_RUNNING_MEAN_PLACEHOLDER`* | | | 25 |*`CUDNN_PARAM_BN_RUNNING_VAR_PLACEHOLDER`* | | | 26 |*`CUDNN_PARAM_ZDESC`* | | | 27 |*`CUDNN_PARAM_ZDATA_PLACEHOLDER`* | | | 28 |*`CUDNN_PARAM_BN_Z_EQSCALEBIAS_DESC`* | | | 29 |*`CUDNN_PARAM_BN_Z_EQSCALE_PLACEHOLDER`* | | | 30 |*`CUDNN_PARAM_BN_Z_EQBIAS_PLACEHOLDER`* | | | 31 |*`CUDNN_PARAM_ACTIVATION_BITMASK_DESC`* | | | 32 |*`CUDNN_PARAM_ACTIVATION_BITMASK_PLACEHOLDER`* | | | 33 |*`CUDNN_PARAM_DXDESC`* | | | 34 |*`CUDNN_PARAM_DXDATA_PLACEHOLDER`* | | | 35 |*`CUDNN_PARAM_DZDESC`* | | | 36 |*`CUDNN_PARAM_DZDATA_PLACEHOLDER`* | | | 37 |*`CUDNN_PARAM_BN_DSCALE_PLACEHOLDER`* | | | 38 |*`CUDNN_PARAM_BN_DBIAS_PLACEHOLDER`* | | | enum |***`cudnnFusedOpsPointerPlaceHolder_t`*** | | | 0 |*`CUDNN_PTR_NULL`* | | | 1 |*`CUDNN_PTR_ELEM_ALIGNED`* | | | 2 |*`CUDNN_PTR_16B_ALIGNED`* | | | enum |***`cudnnFusedOpsVariantParamLabel_t`*** | | | 0 |*`CUDNN_PTR_XDATA`* | | | 1 |*`CUDNN_PTR_BN_EQSCALE`* | | | 2 |*`CUDNN_PTR_BN_EQBIAS`* | | | 3 |*`CUDNN_PTR_WDATA`* | | | 4 |*`CUDNN_PTR_DWDATA`* | | | 5 |*`CUDNN_PTR_YDATA`* | | | 6 |*`CUDNN_PTR_DYDATA`* | | | 7 |*`CUDNN_PTR_YSUM`* | | | 8 |*`CUDNN_PTR_YSQSUM`* | | | 9 |*`CUDNN_PTR_WORKSPACE`* | | | 10 |*`CUDNN_PTR_BN_SCALE`* | | | 11 |*`CUDNN_PTR_BN_BIAS`* | | | 12 |*`CUDNN_PTR_BN_SAVED_MEAN`* | | | 13 |*`CUDNN_PTR_BN_SAVED_INVSTD`* | | | 14 |*`CUDNN_PTR_BN_RUNNING_MEAN`* | | | 15 |*`CUDNN_PTR_BN_RUNNING_VAR`* | | | 16 |*`CUDNN_PTR_ZDATA`* | | | 17 |*`CUDNN_PTR_BN_Z_EQSCALE`* | | | 18 |*`CUDNN_PTR_BN_Z_EQBIAS`* | | | 19 |*`CUDNN_PTR_ACTIVATION_BITMASK`* | | | 20 |*`CUDNN_PTR_DXDATA`* | | | 21 |*`CUDNN_PTR_DZDATA`* | | | 22 |*`CUDNN_PTR_BN_DSCALE`* | | | 23 |*`CUDNN_PTR_BN_DBIAS`* | | | 100 |*`CUDNN_SCALAR_SIZE_T_WORKSPACE_SIZE_IN_BYTES`* | | | 101 |*`CUDNN_SCALAR_INT64_T_BN_ACCUMULATION_COUNT`* | | | 102 |*`CUDNN_SCALAR_DOUBLE_BN_EXP_AVG_FACTOR`* | | | 103 |*`CUDNN_SCALAR_DOUBLE_BN_EPSILON`* | | ## **2. CUDNN API functions** | **CUDA** | **HIP** | |-----------------------------------------------------------|-------------------------------------------------| |`cudnnGetVersion` |`hipdnnGetVersion` | |`cudnnGetCudartVersion` | | |`cudnnGetErrorString` |`hipdnnGetErrorString` | |`cudnnQueryRuntimeError` | | |`cudnnGetProperty` | | |`cudnnCreate` |`hipdnnCreate` | |`cudnnDestroy` |`hipdnnDestroy` | |`cudnnSetStream` |`hipdnnSetStream` | |`cudnnSetStream` |`hipdnnGetStream` | |`cudnnCreateTensorDescriptor` |`hipdnnCreateTensorDescriptor` | |`cudnnSetTensor4dDescriptor` |`hipdnnSetTensor4dDescriptor` | |`cudnnSetTensor4dDescriptorEx` |`hipdnnSetTensor4dDescriptorEx` | |`cudnnGetTensor4dDescriptor` |`hipdnnGetTensor4dDescriptor` | |`cudnnSetTensorNdDescriptor` |`hipdnnSetTensorNdDescriptor` | |`cudnnSetTensorNdDescriptorEx` | | |`cudnnGetTensorNdDescriptor` |`hipdnnGetTensorNdDescriptor` | |`cudnnGetTensorSizeInBytes` | | |`cudnnDestroyTensorDescriptor` |`hipdnnDestroyTensorDescriptor` | |`cudnnTransformTensor` | | |`cudnnTransformTensorEx` | | |`cudnnInitTransformDest` | | |`cudnnCreateTensorTransformDescriptor` | | |`cudnnSetTensorTransformDescriptor` | | |`cudnnGetTensorTransformDescriptor` | | |`cudnnDestroyTensorTransformDescriptor` | | |`cudnnAddTensor` |`hipdnnAddTensor` | |`cudnnCreateOpTensorDescriptor` |`hipdnnCreateOpTensorDescriptor` | |`cudnnSetOpTensorDescriptor` |`hipdnnSetOpTensorDescriptor` | |`cudnnGetOpTensorDescriptor` |`hipdnnGetOpTensorDescriptor` | |`cudnnDestroyOpTensorDescriptor` |`hipdnnDestroyOpTensorDescriptor` | |`cudnnOpTensor` |`hipdnnOpTensor` | |`cudnnGetFoldedConvBackwardDataDescriptors` | | |`cudnnCreateReduceTensorDescriptor` |`hipdnnCreateReduceTensorDescriptor` | |`cudnnSetReduceTensorDescriptor` |`hipdnnSetReduceTensorDescriptor` | |`cudnnGetReduceTensorDescriptor` |`hipdnnGetReduceTensorDescriptor` | |`cudnnDestroyReduceTensorDescriptor` |`hipdnnDestroyReduceTensorDescriptor` | |`cudnnGetReductionIndicesSize` | | |`cudnnGetReductionWorkspaceSize` |`hipdnnGetReductionWorkspaceSize` | |`cudnnReduceTensor` |`hipdnnReduceTensor` | |`cudnnSetTensor` |`hipdnnSetTensor` | |`cudnnScaleTensor` |`hipdnnScaleTensor` | |`cudnnCreateFilterDescriptor` |`hipdnnCreateFilterDescriptor` | |`cudnnSetFilter4dDescriptor` |`hipdnnSetFilter4dDescriptor` | |`cudnnGetFilter4dDescriptor` |`hipdnnGetFilter4dDescriptor` | |`cudnnSetFilterNdDescriptor` |`hipdnnSetFilterNdDescriptor` | |`cudnnGetFilterNdDescriptor` |`hipdnnGetFilterNdDescriptor` | |`cudnnGetFilterSizeInBytes` | | |`cudnnTransformFilter` | | |`cudnnDestroyFilterDescriptor` |`hipdnnDestroyFilterDescriptor` | |`cudnnReorderFilterAndBias` | | |`cudnnCreateConvolutionDescriptor` |`hipdnnCreateConvolutionDescriptor` | |`cudnnSetConvolutionMathType` |`hipdnnSetConvolutionMathType` | |`cudnnGetConvolutionMathType` | | |`cudnnSetConvolutionGroupCount` |`hipdnnSetConvolutionGroupCount` | |`cudnnGetConvolutionGroupCount` | | |`cudnnSetConvolutionReorderType` | | |`cudnnGetConvolutionReorderType` | | |`cudnnSetConvolution2dDescriptor` |`hipdnnSetConvolution2dDescriptor` | |`cudnnGetConvolution2dDescriptor` |`hipdnnGetConvolution2dDescriptor` | |`cudnnGetConvolution2dForwardOutputDim` |`hipdnnGetConvolution2dForwardOutputDim` | |`cudnnSetConvolutionNdDescriptor` |`hipdnnSetConvolutionNdDescriptor` | |`cudnnGetConvolutionNdDescriptor` | | |`cudnnGetConvolutionNdForwardOutputDim` | | |`cudnnDestroyConvolutionDescriptor` | | |`cudnnGetConvolutionForwardAlgorithmMaxCount` | | |`cudnnFindConvolutionForwardAlgorithm` |`hipdnnFindConvolutionForwardAlgorithm` | |`cudnnFindConvolutionForwardAlgorithmEx` |`hipdnnFindConvolutionForwardAlgorithmEx` | |`cudnnGetConvolutionForwardAlgorithm` |`hipdnnGetConvolutionForwardAlgorithm` | |`cudnnGetConvolutionForwardAlgorithm_v7` | | |`cudnnGetConvolutionForwardWorkspaceSize` |`hipdnnGetConvolutionForwardWorkspaceSize` | |`cudnnConvolutionForward` |`hipdnnConvolutionForward` | |`cudnnConvolutionBiasActivationForward` | | |`cudnnConvolutionBackwardBias` |`hipdnnConvolutionBackwardBias` | |`cudnnGetConvolutionBackwardFilterAlgorithmMaxCount` | | |`cudnnFindConvolutionBackwardFilterAlgorithm` |`hipdnnFindConvolutionBackwardFilterAlgorithm` | |`cudnnFindConvolutionBackwardFilterAlgorithmEx` |`hipdnnFindConvolutionBackwardFilterAlgorithmEx` | |`cudnnGetConvolutionBackwardFilterAlgorithm` |`hipdnnGetConvolutionBackwardFilterAlgorithm` | |`cudnnGetConvolutionBackwardFilterAlgorithm_v7` | | |`cudnnGetConvolutionBackwardFilterWorkspaceSize` |`hipdnnGetConvolutionBackwardFilterWorkspaceSize`| |`cudnnConvolutionBackwardFilter` |`hipdnnConvolutionBackwardFilter` | |`cudnnGetConvolutionBackwardDataAlgorithmMaxCount` | | |`cudnnFindConvolutionBackwardDataAlgorithm` |`hipdnnFindConvolutionBackwardDataAlgorithm` | |`cudnnFindConvolutionBackwardDataAlgorithmEx` |`hipdnnFindConvolutionBackwardDataAlgorithmEx` | |`cudnnGetConvolutionBackwardDataAlgorithm` |`hipdnnGetConvolutionBackwardDataAlgorithm` | |`cudnnGetConvolutionBackwardDataAlgorithm_v7` | | |`cudnnGetConvolutionBackwardDataWorkspaceSize` |`hipdnnGetConvolutionBackwardDataWorkspaceSize` | |`cudnnConvolutionBackwardData` |`hipdnnConvolutionBackwardData` | |`cudnnIm2Col` | | |`cudnnSoftmaxForward` |`hipdnnSoftmaxForward` | |`cudnnSoftmaxBackward` |`hipdnnSoftmaxBackward` | |`cudnnCreatePoolingDescriptor` |`hipdnnCreatePoolingDescriptor` | |`cudnnSetPooling2dDescriptor` |`hipdnnSetPooling2dDescriptor` | |`cudnnGetPooling2dDescriptor` |`hipdnnGetPooling2dDescriptor` | |`cudnnSetPoolingNdDescriptor` |`hipdnnSetPoolingNdDescriptor` | |`cudnnGetPoolingNdDescriptor` | | |`cudnnGetPoolingNdForwardOutputDim` | | |`cudnnGetPooling2dForwardOutputDim` |`hipdnnGetPooling2dForwardOutputDim` | |`cudnnDestroyPoolingDescriptor` |`hipdnnDestroyPoolingDescriptor` | |`cudnnPoolingForward` |`hipdnnPoolingForward` | |`cudnnPoolingBackward` |`hipdnnPoolingBackward` | |`cudnnCreateActivationDescriptor` |`hipdnnCreateActivationDescriptor` | |`cudnnSetActivationDescriptor` |`hipdnnSetActivationDescriptor` | |`cudnnGetActivationDescriptor` |`hipdnnGetActivationDescriptor` | |`cudnnDestroyActivationDescriptor` |`hipdnnDestroyActivationDescriptor` | |`cudnnActivationForward` |`hipdnnActivationForward` | |`cudnnActivationBackward` |`hipdnnActivationBackward` | |`cudnnCreateLRNDescriptor` |`hipdnnCreateLRNDescriptor` | |`cudnnSetLRNDescriptor` |`hipdnnSetLRNDescriptor` | |`cudnnGetLRNDescriptor` |`hipdnnGetLRNDescriptor` | |`cudnnDestroyLRNDescriptor` |`hipdnnDestroyLRNDescriptor` | |`cudnnLRNCrossChannelForward` |`hipdnnLRNCrossChannelForward` | |`cudnnLRNCrossChannelBackward` |`hipdnnLRNCrossChannelBackward` | |`cudnnDivisiveNormalizationForward` | | |`cudnnDivisiveNormalizationBackward` | | |`cudnnDeriveBNTensorDescriptor` |`hipdnnDeriveBNTensorDescriptor` | |`cudnnBatchNormalizationForwardTraining` |`hipdnnBatchNormalizationForwardTraining` | |`cudnnBatchNormalizationForwardTrainingEx` | | |`cudnnBatchNormalizationForwardInference` |`hipdnnBatchNormalizationForwardInference` | |`cudnnBatchNormalizationBackward` |`hipdnnBatchNormalizationBackward` | |`cudnnBatchNormalizationBackwardEx` | | |`cudnnCreateSpatialTransformerDescriptor` | | |`cudnnSetSpatialTransformerNdDescriptor` | | |`cudnnDestroySpatialTransformerDescriptor` | | |`cudnnSpatialTfGridGeneratorForward` | | |`cudnnSpatialTfGridGeneratorBackward` | | |`cudnnSpatialTfSamplerForward` | | |`cudnnSpatialTfSamplerBackward` | | |`cudnnCreateDropoutDescriptor` |`hipdnnCreateDropoutDescriptor` | |`cudnnDestroyDropoutDescriptor` |`hipdnnDestroyDropoutDescriptor` | |`cudnnDropoutGetStatesSize` |`hipdnnDropoutGetStatesSize` | |`cudnnDropoutGetReserveSpaceSize` | | |`cudnnSetDropoutDescriptor` |`hipdnnSetDropoutDescriptor` | |`cudnnGetDropoutDescriptor` | | |`cudnnRestoreDropoutDescriptor` | | |`cudnnDropoutForward` | | |`cudnnDropoutBackward` | | |`cudnnCreateRNNDescriptor` |`hipdnnCreateRNNDescriptor` | |`cudnnDestroyRNNDescriptor` |`hipdnnDestroyRNNDescriptor` | |`cudnnGetRNNForwardInferenceAlgorithmMaxCount` | | |`cudnnFindRNNForwardInferenceAlgorithmEx` | | |`cudnnGetRNNForwardTrainingAlgorithmMaxCount` | | |`cudnnFindRNNForwardTrainingAlgorithmEx` | | |`cudnnGetRNNBackwardDataAlgorithmMaxCount` | | |`cudnnFindRNNBackwardDataAlgorithmEx` | | |`cudnnGetRNNBackwardWeightsAlgorithmMaxCount` | | |`cudnnFindRNNBackwardWeightsAlgorithmEx` | | |`cudnnCreatePersistentRNNPlan` |`hipdnnCreatePersistentRNNPlan` | |`cudnnSetPersistentRNNPlan` |`hipdnnSetPersistentRNNPlan` | |`cudnnDestroyPersistentRNNPlan` |`hipdnnDestroyPersistentRNNPlan` | |`cudnnSetRNNDescriptor` |`hipdnnSetRNNDescriptor` | |`cudnnGetRNNDescriptor` |`hipdnnGetRNNDescriptor` | |`cudnnSetRNNProjectionLayers` | | |`cudnnGetRNNProjectionLayers` | | |`cudnnSetRNNAlgorithmDescriptor` | | |`cudnnSetRNNMatrixMathType` | | |`cudnnGetRNNMatrixMathType` | | |`cudnnGetRNNWorkspaceSize` |`hipdnnGetRNNWorkspaceSize` | |`cudnnGetRNNTrainingReserveSize` |`hipdnnGetRNNTrainingReserveSize` | |`cudnnGetRNNParamsSize` |`hipdnnGetRNNParamsSize` | |`cudnnGetRNNLinLayerMatrixParams` |`hipdnnGetRNNLinLayerMatrixParams` | |`cudnnGetRNNLinLayerBiasParams` |`hipdnnGetRNNLinLayerBiasParams` | |`cudnnRNNForwardInference` |`hipdnnRNNForwardInference` | |`cudnnRNNForwardInferenceEx` | | |`cudnnRNNForwardTraining` |`hipdnnRNNForwardTraining` | |`cudnnRNNForwardTrainingEx` | | |`cudnnRNNBackwardData` |`hipdnnRNNBackwardData` | |`cudnnRNNBackwardDataEx` | | |`cudnnRNNBackwardWeights` |`hipdnnRNNBackwardWeights` | |`cudnnRNNBackwardWeightsEx` | | |`cudnnSetRNNPaddingMode` | | |`cudnnGetRNNPaddingMode` | | |`cudnnCreateRNNDataDescriptor` | | |`cudnnDestroyRNNDataDescriptor` | | |`cudnnSetRNNDataDescriptor` | | |`cudnnGetRNNDataDescriptor` | | |`cudnnSetRNNBiasMode` | | |`cudnnGetRNNBiasMode` | | |`cudnnCreateCTCLossDescriptor` | | |`cudnnSetCTCLossDescriptor` | | |`cudnnSetCTCLossDescriptorEx` | | |`cudnnGetCTCLossDescriptor` | | |`cudnnGetCTCLossDescriptorEx` | | |`cudnnDestroyCTCLossDescriptor` | | |`cudnnCTCLoss` | | |`cudnnGetCTCLossWorkspaceSize` | | |`cudnnCreateAlgorithmDescriptor` | | |`cudnnSetAlgorithmDescriptor` | | |`cudnnGetAlgorithmDescriptor` | | |`cudnnCopyAlgorithmDescriptor` | | |`cudnnDestroyAlgorithmDescriptor` | | |`cudnnCreateAlgorithmPerformance` | | |`cudnnSetAlgorithmPerformance` | | |`cudnnGetAlgorithmPerformance` | | |`cudnnDestroyAlgorithmPerformance` | | |`cudnnGetAlgorithmSpaceSize` | | |`cudnnSaveAlgorithm` | | |`cudnnRestoreAlgorithm` | | |`cudnnSetRNNDescriptor_v5` |`hipdnnSetRNNDescriptor_v5` | |`cudnnSetRNNDescriptor_v6` |`hipdnnSetRNNDescriptor_v6` | |`cudnnSetCallback` | | |`cudnnGetCallback` | | |`cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize` | | |`cudnnGetBatchNormalizationBackwardExWorkspaceSize` | | |`cudnnGetBatchNormalizationTrainingExReserveSpaceSize` | | |`cudnnRNNSetClip` | | |`cudnnRNNGetClip` | | |`cudnnCreateSeqDataDescriptor` | | |`cudnnDestroySeqDataDescriptor` | | |`cudnnSetSeqDataDescriptor` | | |`cudnnGetSeqDataDescriptor` | | |`cudnnCreateAttnDescriptor` | | |`cudnnDestroyAttnDescriptor` | | |`cudnnSetAttnDescriptor` | | |`cudnnGetAttnDescriptor` | | |`cudnnGetMultiHeadAttnBuffers` | | |`cudnnGetMultiHeadAttnWeights` | | |`cudnnMultiHeadAttnForward` | | |`cudnnMultiHeadAttnBackwardData` | | |`cudnnMultiHeadAttnBackwardWeights` | | |`cudnnCreateFusedOpsConstParamPack` | | |`cudnnDestroyFusedOpsConstParamPack` | | |`cudnnSetFusedOpsConstParamPackAttribute` | | |`cudnnGetFusedOpsConstParamPackAttribute` | | |`cudnnCreateFusedOpsVariantParamPack` | | |`cudnnDestroyFusedOpsVariantParamPack` | | |`cudnnSetFusedOpsVariantParamPackAttribute` | | |`cudnnGetFusedOpsVariantParamPackAttribute` | | |`cudnnCreateFusedOpsPlan` | | |`cudnnDestroyFusedOpsPlan` | | |`cudnnMakeFusedOpsPlan` | | |`cudnnFusedOpsExecute` | |