CUDNN APIs支持状态(v1.5)

更新时间:
复制为 MD 格式

对比 cudnn 8.5.0,cudnn APIs支持状况如下表:

  • 目前常用的NN场景使用的APIs大部分均已支持并调优;

  • 对标Ampere所有API都是软件可支持的,目前无PPU硬件限制的因素;后续软件版本将根据优先级逐步完善;

  • 目前API支持率为: 196/263 = 74.5%;

  • 去除 26个 deprecated APIs,API支持率为: 196/237 = 82.7%;

api

cudnn 8.5.0

PPU 1.5

状态

功能说明

cudnnCreateRNNDescriptor

Yes

Yes

cudnnDestroyRNNDescriptor

Yes

Yes

cudnnSetRNNDescriptor_v8

Yes

Yes

cudnnGetRNNDescriptor_v8

Yes

Yes

cudnnSetRNNDescriptor_v6

Yes

Yes

cudnnGetRNNDescriptor_v6

Yes

Yes

cudnnSetRNNMatrixMathType

Yes

Yes

cudnnGetRNNMatrixMathType

Yes

Yes

cudnnSetRNNBiasMode

Yes

Yes

cudnnGetRNNBiasMode

Yes

Yes

cudnnRNNSetClip_v8

Yes

Yes

cudnnRNNGetClip_v8

Yes

Yes

cudnnRNNSetClip

Yes

Yes

cudnnRNNGetClip

Yes

Yes

cudnnSetRNNProjectionLayers

Yes

Yes

cudnnGetRNNProjectionLayers

Yes

Yes

cudnnGetRNNWorkspaceSize

Yes

Yes

cudnnGetRNNTrainingReserveSize

Yes

Yes

cudnnGetRNNTempSpaceSizes

Yes

Yes

cudnnGetRNNParamsSize

Yes

Yes

cudnnGetRNNWeightSpaceSize

Yes

Yes

cudnnGetRNNLinLayerMatrixParams

Yes

Yes

cudnnGetRNNLinLayerBiasParams

Yes

Yes

cudnnGetRNNWeightParams

Yes

Yes

cudnnRNNForwardInference

Yes

Yes

cudnnCreateRNNDataDescriptor

Yes

Yes

cudnnDestroyRNNDataDescriptor

Yes

Yes

cudnnSetRNNDataDescriptor

Yes

Yes

cudnnGetRNNDataDescriptor

Yes

Yes

cudnnRNNForward

Yes

Yes

cudnnCreateSeqDataDescriptor

Yes

Yes

cudnnDestroySeqDataDescriptor

Yes

Yes

cudnnSetSeqDataDescriptor

Yes

Yes

cudnnGetSeqDataDescriptor

Yes

Yes

cudnnCreateAttnDescriptor

Yes

Yes

cudnnDestroyAttnDescriptor

Yes

Yes

cudnnSetAttnDescriptor

Yes

Yes

cudnnGetAttnDescriptor

Yes

Yes

cudnnGetMultiHeadAttnBuffers

Yes

Yes

cudnnGetMultiHeadAttnWeights

Yes

Yes

cudnnMultiHeadAttnForward

Yes

Yes

cudnnAdvInferVersionCheck

Yes

Yes

cudnnRNNForwardTraining

Yes

Yes

cudnnRNNBackwardData

Yes

Yes

cudnnRNNBackwardData_v8

Yes

Yes

cudnnRNNBackwardWeights

Yes

Yes

cudnnRNNBackwardWeights_v8

Yes

Yes

cudnnDestroyCTCLossDescriptor

Yes

Yes

cudnnCreateCTCLossDescriptor

Yes

Yes

cudnnSetCTCLossDescriptor

Yes

Yes

cudnnGetCTCLossDescriptor

Yes

Yes

cudnnSetCTCLossDescriptorEx

Yes

Yes

cudnnGetCTCLossDescriptorEx

Yes

Yes

cudnnSetCTCLossDescriptor_v8

Yes

Yes

cudnnGetCTCLossDescriptor_v8

Yes

Yes

cudnnGetCTCLossWorkspaceSize_v8

Yes

Yes

cudnnCTCLoss

Yes

Yes

cudnnGetCTCLossWorkspaceSize

Yes

Yes

cudnnCTCLoss_v8

Yes

Yes

cudnnAdvTrainVersionCheck

Yes

Yes

cudnnBackendCreateDescriptor

Yes

Yes

cudnnBackendDestroyDescriptor

Yes

Yes

cudnnBackendInitialize

Yes

Yes

cudnnBackendFinalize

Yes

Yes

cudnnBackendSetAttribute

Yes

Yes

cudnnBackendGetAttribute

Yes

Yes

cudnnBackendExecute

Yes

Yes

cudnnCreateConvolutionDescriptor

Yes

Yes

cudnnDestroyConvolutionDescriptor

Yes

Yes

cudnnSetConvolution2dDescriptor

Yes

Yes

cudnnGetConvolution2dDescriptor

Yes

Yes

cudnnSetConvolutionNdDescriptor

Yes

Yes

cudnnGetConvolutionNdDescriptor

Yes

Yes

cudnnSetConvolutionMathType

Yes

Yes

cudnnGetConvolutionMathType

Yes

Yes

cudnnSetConvolutionGroupCount

Yes

Yes

cudnnGetConvolutionGroupCount

Yes

Yes

cudnnGetConvolution2dForwardOutputDim

Yes

Yes

cudnnGetConvolutionNdForwardOutputDim

Yes

Yes

cudnnGetConvolutionForwardAlgorithmMaxCount

Yes

Yes

cudnnGetConvolutionBackwardDataAlgorithmMaxCount

Yes

Yes

cudnnGetConvolutionForwardWorkspaceSize

Yes

Yes

cudnnGetConvolutionForwardAlgorithm_v7

Yes

Yes

cudnnFindConvolutionForwardAlgorithm

Yes

Yes

cudnnFindConvolutionForwardAlgorithmEx

Yes

Yes

cudnnConvolutionForward

Yes

Yes

cudnnConvolutionBiasActivationForward

Yes

Yes

cudnnGetConvolutionBackwardDataWorkspaceSize

Yes

Yes

cudnnFindConvolutionBackwardDataAlgorithm

Yes

Yes

cudnnFindConvolutionBackwardDataAlgorithmEx

Yes

Yes

cudnnGetConvolutionBackwardDataAlgorithm_v7

Yes

Yes

cudnnConvolutionBackwardData

Yes

Yes

cudnnGetFoldedConvBackwardDataDescriptors

Yes

Yes

cudnnCnnInferVersionCheck

Yes

Yes

cudnnGetConvolutionBackwardFilterWorkspaceSize

Yes

Yes

cudnnGetConvolutionBackwardFilterAlgorithmMaxCount

Yes

Yes

cudnnFindConvolutionBackwardFilterAlgorithm

Yes

Yes

cudnnFindConvolutionBackwardFilterAlgorithmEx

Yes

Yes

cudnnGetConvolutionBackwardFilterAlgorithm_v7

Yes

Yes

cudnnConvolutionBackwardFilter

Yes

Yes

cudnnCnnTrainVersionCheck

Yes

Yes

cudnnGetVersion

Yes

Yes

cudnnGetProperty

Yes

Yes

cudnnGetErrorString

Yes

Yes

cudnnCreate

Yes

Yes

cudnnDestroy

Yes

Yes

cudnnSetStream

Yes

Yes

cudnnGetStream

Yes

Yes

cudnnGetCudartVersion

Yes

Yes

cudnnCreateTensorDescriptor

Yes

Yes

cudnnDestroyTensorDescriptor

Yes

Yes

cudnnSetTensor4dDescriptor

Yes

Yes

cudnnSetTensor4dDescriptorEx

Yes

Yes

cudnnGetTensor4dDescriptor

Yes

Yes

cudnnSetTensorNdDescriptor

Yes

Yes

cudnnSetTensorNdDescriptorEx

Yes

Yes

cudnnGetTensorNdDescriptor

Yes

Yes

cudnnGetTensorSizeInBytes

Yes

Yes

cudnnCreateFilterDescriptor

Yes

Yes

cudnnDestroyFilterDescriptor

Yes

Yes

cudnnSetFilter4dDescriptor

Yes

Yes

cudnnGetFilter4dDescriptor

Yes

Yes

cudnnSetFilterNdDescriptor

Yes

Yes

cudnnGetFilterNdDescriptor

Yes

Yes

cudnnGetFilterSizeInBytes

Yes

Yes

cudnnDeriveBNTensorDescriptor

Yes

Yes

cudnnBatchNormalizationForwardInference

Yes

Yes

cudnnCreateOpTensorDescriptor

Yes

Yes

cudnnDestroyOpTensorDescriptor

Yes

Yes

cudnnSetOpTensorDescriptor

Yes

Yes

cudnnGetOpTensorDescriptor

Yes

Yes

cudnnCreatePoolingDescriptor

Yes

Yes

cudnnSetPooling2dDescriptor

Yes

Yes

cudnnSetPoolingNdDescriptor

Yes

Yes

cudnnGetPoolingNdForwardOutputDim

Yes

Yes

cudnnGetPooling2dForwardOutputDim

Yes

Yes

cudnnDestroyPoolingDescriptor

Yes

Yes

cudnnPoolingForward

Yes

Yes

cudnnCreateActivationDescriptor

Yes

Yes

cudnnSetActivationDescriptor

Yes

Yes

cudnnGetActivationDescriptor

Yes

Yes

cudnnDestroyActivationDescriptor

Yes

Yes

cudnnActivationForward

Yes

Yes

cudnnCreateDropoutDescriptor

Yes

Yes

cudnnDestroyDropoutDescriptor

Yes

Yes

cudnnDropoutGetStatesSize

Yes

Yes

cudnnDropoutGetReserveSpaceSize

Yes

Yes

cudnnSetDropoutDescriptor

Yes

Yes

cudnnRestoreDropoutDescriptor

Yes

Yes

cudnnGetDropoutDescriptor

Yes

Yes

cudnnDropoutForward

Yes

Yes

cudnnSoftmaxForward

Yes

Yes

cudnnAddTensor

Yes

Yes

cudnnScaleTensor

Yes

Yes

cudnnOpTensor

Yes

Yes

cudnnTransformTensor

Yes

Yes

cudnnCreateTensorTransformDescriptor

Yes

Yes

cudnnDestroyTensorTransformDescriptor

Yes

Yes

cudnnSetTensorTransformDescriptor

Yes

Yes

cudnnGetTensorTransformDescriptor

Yes

Yes

cudnnTransformTensorEx

Yes

Yes

cudnnInitTransformDest

Yes

Yes

cudnnTransformFilter

Yes

Yes

cudnnCreateReduceTensorDescriptor

Yes

Yes

cudnnDestroyReduceTensorDescriptor

Yes

Yes

cudnnSetReduceTensorDescriptor

Yes

Yes

cudnnGetReduceTensorDescriptor

Yes

Yes

cudnnReduceTensor

Yes

Yes

cudnnGetReductionWorkspaceSize

Yes

Yes

cudnnGetReductionIndicesSize

Yes

Yes

cudnnCreateLRNDescriptor

Yes

Yes

cudnnDestroyLRNDescriptor

Yes

Yes

cudnnGetLRNDescriptor

Yes

Yes

cudnnSetLRNDescriptor

Yes

Yes

cudnnLRNCrossChannelForward

Yes

Yes

cudnnCreateSpatialTransformerDescriptor

Yes

Yes

cudnnDestroySpatialTransformerDescriptor

Yes

Yes

cudnnSetSpatialTransformerNdDescriptor

Yes

Yes

cudnnSpatialTfGridGeneratorForward

Yes

Yes

cudnnSpatialTfSamplerForward

Yes

Yes

cudnnOpsInferVersionCheck

Yes

Yes

cudnnGetBatchNormalizationForwardTrainingExWorkspaceSize

Yes

Yes

cudnnGetBatchNormalizationBackwardExWorkspaceSize

Yes

Yes

cudnnGetBatchNormalizationTrainingExReserveSpaceSize

Yes

Yes

cudnnBatchNormalizationForwardTraining

Yes

Yes

cudnnBatchNormalizationForwardTrainingEx

Yes

Yes

cudnnBatchNormalizationBackward

Yes

Yes

cudnnBatchNormalizationBackwardEx

Yes

Yes

cudnnPoolingBackward

Yes

Yes

cudnnActivationBackward

Yes

Yes

cudnnDropoutBackward

Yes

Yes

cudnnSoftmaxBackward

Yes

Yes

cudnnLRNCrossChannelBackward

Yes

Yes

cudnnSpatialTfSamplerBackward

Yes

Yes

cudnnSpatialTfGridGeneratorBackward

Yes

Yes

cudnnOpsTrainVersionCheck

Yes

Yes

cudnnQueryRuntimeError

Yes

No

辅助函数,用于检查 BN是否有numerical overflows

cudnnSetTensor

Yes

No

辅助函数,设置Tensor 为定值

cudnnGetPooling2dDescriptor

Yes

No

辅助函数,get pooling Nd Descriptor

cudnnGetPoolingNdDescriptor

Yes

No

cudnnSetActivationDescriptorSwishBeta

Yes

No

activation函数中swish_betaset/get

cudnnGetActivationDescriptorSwishBeta

Yes

No

cudnnCreateAlgorithmDescriptor

Yes

No

deprecated in cuDNN 8.0

AlgorithmDescriptor 参数相关操作

cudnnSetAlgorithmDescriptor

Yes

No

cudnnGetAlgorithmDescriptor

Yes

No

cudnnCopyAlgorithmDescriptor

Yes

No

cudnnDestroyAlgorithmDescriptor

Yes

No

cudnnCreateAlgorithmPerformance

Yes

No

AlgorithmPerformance 参数相关操作

cudnnSetAlgorithmPerformance

Yes

No

cudnnGetAlgorithmPerformance

Yes

No

cudnnDestroyAlgorithmPerformance

Yes

No

cudnnGetAlgorithmSpaceSize

Yes

No

deprecated in cuDNN 8.0

Algo 的 metadata的存储

cudnnSaveAlgorithm

Yes

No

cudnnRestoreAlgorithm

Yes

No

cudnnSetCallback

Yes

No

回调函数相关

cudnnGetCallback

Yes

No

cudnnSetConvolutionReorderType

Yes

No

conv ReorderTypeset/get

cudnnGetConvolutionReorderType

Yes

No

cudnnIm2Col

Yes

No

im2Col, 构造前向相关矩阵

cudnnReorderFilterAndBias

Yes

No

reorder the filter and bias.

cudnnConvolutionBackwardBias

Yes

No

compute conv grad with bias.

cudnnCreateFusedOpsConstParamPack

Yes

No

cudnnFusedOps 相关计算,可用backend API替换

cudnnDestroyFusedOpsConstParamPack

Yes

No

cudnnSetFusedOpsConstParamPackAttribute

Yes

No

cudnnGetFusedOpsConstParamPackAttribute

Yes

No

cudnnCreateFusedOpsVariantParamPack

Yes

No

cudnnDestroyFusedOpsVariantParamPack

Yes

No

cudnnSetFusedOpsVariantParamPackAttribute

Yes

No

cudnnGetFusedOpsVariantParamPackAttribute

Yes

No

cudnnCreateFusedOpsPlan

Yes

No

cudnnDestroyFusedOpsPlan

Yes

No

cudnnMakeFusedOpsPlan

Yes

No

cudnnFusedOpsExecute

Yes

No

cudnnCreatePersistentRNNPlan

Yes

No

deprecated in cuDNN 8.0

rnn Persistent 新算法相关操作

cudnnDestroyPersistentRNNPlan

Yes

No

cudnnSetPersistentRNNPlan

Yes

No

cudnnBuildRNNDynamic

Yes

No

cudnnSetRNNPaddingMode

Yes

No

deprecated in cuDNN 8.0

rnn Padding相关操作。可用acdnnSetRNNDescriptor_v8()

cudnnGetRNNPaddingMode

Yes

No

cudnnRNNForwardInferenceEx

Yes

No

可用 acdnnRNNForward()

cudnnSetRNNAlgorithmDescriptor

Yes

No

rnn 算法寻优

cudnnGetRNNForwardInferenceAlgorithmMaxCount

Yes

No

cudnnFindRNNForwardInferenceAlgorithmEx

Yes

No

cudnnRNNForwardTrainingEx

Yes

No

deprecated in cuDNN 8.0

可用 acdnnRNNForward()

cudnnRNNBackwardDataEx

Yes

No

可用 acdnnRNNBackwardData_v8()

cudnnRNNBackwardWeightsEx

Yes

No

可用 acdnnRNNBackwardWeights_v8()

cudnnGetRNNForwardTrainingAlgorithmMaxCount

Yes

No

rnn 算法寻优

cudnnFindRNNForwardTrainingAlgorithmEx

Yes

No

cudnnGetRNNBackwardDataAlgorithmMaxCount

Yes

No

cudnnFindRNNBackwardDataAlgorithmEx

Yes

No

cudnnGetRNNBackwardWeightsAlgorithmMaxCount

Yes

No

cudnnFindRNNBackwardWeightsAlgorithmEx

Yes

No

cudnnMultiHeadAttnBackwardData

Yes

No

MultiHeadAttn 反向

cudnnMultiHeadAttnBackwardWeights

Yes

No

cudnnDivisiveNormalizationForward

Yes

No

前向 DivisiveNormalization 层计算

cudnnDeriveNormTensorDescriptor

Yes

No

导出normalization 层Tensor描述

cudnnNormalizationForwardInference

Yes

No

前向 Normalization 层计算

cudnnDivisiveNormalizationBackward

Yes

No

反向 DivisiveNormalization 层计算

cudnnGetNormalizationForwardTrainingWorkspaceSize

Yes

No

Normalization 层辅助api,ws 大小获取

cudnnGetNormalizationBackwardWorkspaceSize

Yes

No

cudnnGetNormalizationTrainingReserveSpaceSize

Yes

No

cudnnNormalizationForwardTraining

Yes

No

前向 Normalization 层计算

cudnnNormalizationBackward

Yes

No

反向 Normalization 层计算