[HIPIFY][DNN] cuDNN support revise
+ add doc for CUDDN API supported by HIP
+ cuDNN softMax test
[ROCm/hip commit: 7ef05de0d5]
This commit is contained in:
@@ -0,0 +1,379 @@
|
||||
# CUDNN API supported by HIP
|
||||
|
||||
## **1. CUDNN Data types**
|
||||
|
||||
| **type** | **CUDA** | **HIP** |
|
||||
|-------------:|---------------------------------------------------------------|------------------------------------------------------------|
|
||||
| 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`* | |
|
||||
| enum |***`libraryPropertyType_t`*** | |
|
||||
| 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` | |
|
||||
| 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`* |*`HIPDNN_DATA_UINT8`* |
|
||||
| 7 |*`CUDNN_DATA_UINT8x4`* |*`HIPDNN_DATA_UINT8x4`* |
|
||||
| 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 |***`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`* | |
|
||||
| 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 |***`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` | |
|
||||
|
||||
## **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` | |
|
||||
|`cudnnGetTensor4dDescriptor` |`hipdnnGetTensor4dDescriptor` |
|
||||
|`cudnnSetTensorNdDescriptor` |`hipdnnSetTensorNdDescriptor` |
|
||||
|`cudnnSetTensorNdDescriptorEx` | |
|
||||
|`cudnnGetTensorNdDescriptor` |`hipdnnGetTensorNdDescriptor` |
|
||||
|`cudnnGetTensorSizeInBytes` | |
|
||||
|`cudnnDestroyTensorDescriptor` |`hipdnnDestroyTensorDescriptor` |
|
||||
|`cudnnTransformTensor` | |
|
||||
|`cudnnAddTensor` |`hipdnnAddTensor` |
|
||||
|`cudnnCreateOpTensorDescriptor` |`hipdnnCreateOpTensorDescriptor` |
|
||||
|`cudnnSetOpTensorDescriptor` |`hipdnnSetOpTensorDescriptor` |
|
||||
|`cudnnGetOpTensorDescriptor` |`hipdnnGetOpTensorDescriptor` |
|
||||
|`cudnnDestroyOpTensorDescriptor` |`hipdnnDestroyOpTensorDescriptor` |
|
||||
|`cudnnOpTensor` |`hipdnnOpTensor` |
|
||||
|`cudnnCreateReduceTensorDescriptor` |`hipdnnCreateReduceTensorDescriptor` |
|
||||
|`cudnnSetReduceTensorDescriptor` |`hipdnnSetReduceTensorDescriptor` |
|
||||
|`cudnnGetReduceTensorDescriptor` |`hipdnnGetReduceTensorDescriptor` |
|
||||
|`cudnnDestroyReduceTensorDescriptor` |`hipdnnDestroyReduceTensorDescriptor` |
|
||||
|`cudnnGetReductionIndicesSize` | |
|
||||
|`cudnnGetReductionWorkspaceSize` |`hipdnnGetReductionWorkspaceSize` |
|
||||
|`cudnnReduceTensor` |`hipdnnReduceTensor` |
|
||||
|`cudnnSetTensor` |`hipdnnSetTensor` |
|
||||
|`cudnnScaleTensor` |`hipdnnScaleTensor` |
|
||||
|`cudnnCreateFilterDescriptor` |`hipdnnCreateFilterDescriptor` |
|
||||
|`cudnnSetFilter4dDescriptor` | |
|
||||
|`cudnnGetFilter4dDescriptor` | |
|
||||
|`cudnnSetFilterNdDescriptor` |`hipdnnSetFilterNdDescriptor` |
|
||||
|`cudnnGetFilterNdDescriptor` |`hipdnnGetFilterNdDescriptor` |
|
||||
|`cudnnDestroyFilterDescriptor` |`hipdnnDestroyFilterDescriptor` |
|
||||
|`cudnnCreateConvolutionDescriptor` |`hipdnnCreateConvolutionDescriptor` |
|
||||
|`cudnnSetConvolutionMathType` |`hipdnnSetConvolutionMathType` |
|
||||
|`cudnnGetConvolutionMathType` | |
|
||||
|`cudnnSetConvolutionGroupCount` | |
|
||||
|`cudnnGetConvolutionGroupCount` | |
|
||||
|`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` |
|
||||
|`cudnnBatchNormalizationForwardInference` |`hipdnnBatchNormalizationForwardInference` |
|
||||
|`cudnnBatchNormalizationBackward` |`hipdnnBatchNormalizationBackward` |
|
||||
|`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` | |
|
||||
|`cudnnSetRNNProjectionLayers` | |
|
||||
|`cudnnGetRNNProjectionLayers` | |
|
||||
|`cudnnSetRNNAlgorithmDescriptor` | |
|
||||
|`cudnnSetRNNMatrixMathType` | |
|
||||
|`cudnnGetRNNMatrixMathType` | |
|
||||
|`cudnnGetRNNWorkspaceSize` |`hipdnnGetRNNWorkspaceSize` |
|
||||
|`cudnnGetRNNTrainingReserveSize` |`hipdnnGetRNNTrainingReserveSize` |
|
||||
|`cudnnGetRNNParamsSize` |`hipdnnGetRNNParamsSize` |
|
||||
|`cudnnGetRNNLinLayerMatrixParams` |`hipdnnGetRNNLinLayerMatrixParams` |
|
||||
|`cudnnGetRNNLinLayerBiasParams` |`hipdnnGetRNNLinLayerBiasParams` |
|
||||
|`cudnnRNNForwardInference` |`hipdnnRNNForwardInference` |
|
||||
|`cudnnRNNForwardTraining` |`hipdnnRNNForwardTraining` |
|
||||
|`cudnnRNNBackwardData` |`hipdnnRNNBackwardData` |
|
||||
|`cudnnRNNBackwardWeights` |`hipdnnRNNBackwardWeights` |
|
||||
|`cudnnCreateCTCLossDescriptor` | |
|
||||
|`cudnnSetCTCLossDescriptor` | |
|
||||
|`cudnnGetCTCLossDescriptor` | |
|
||||
|`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` | |
|
||||
Reference in New Issue
Block a user