CUDNN入坑指南(0)卷积算法实现类型

cuDNN目前提供以下几种卷积算法的实现方式[1]

  • CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM

该实现方式将卷积隐式转换成矩阵乘法,完成计算。不需要显式将输入张量数据转换成矩阵形式保存。

  • CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM

该实现方式将卷积隐式转换成矩阵乘法,完成计算。但是需要一些额外的内存空间去保存预计算得到的索引值,以便隐式地将输入张量数据转换成矩阵形式。

  • CUDNN_CONVOLUTION_FWD_ALGO_GEMM

该实现方式将卷积显式转换成矩阵乘法,完成计算。在显式完成矩阵乘法过程中,需要额外申请内存空间,将输入转换成矩阵形式。

  • CUDNN_CONVOLUTION_FWD_ALGO_DIRECT

该实现方式即直接完成卷积计算,不会隐式或显式的将卷积转换成矩阵乘法。

  • CUDNN_CONVOLUTION_FWD_ALGO_FFT

该实现方式利用快速傅里叶变换完成卷积计算。需要额外申请内存空间,保存中间结果。

  • CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING

该实现方式利用快速傅里叶变换完成卷积计算,但是需要对输入进行分块。同样需要额外申请内存空间,保存中间结果,但是对大尺寸的输入,所需内存空间小于CUDNN_CONVOLUTION_FWD_ALGO_FFT算法

  • CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD

该实现方式利用Winograd变换完成卷积计算。需要额外申请内存空间,保存中间结果。

  • CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED

该实现方式利用Winograd变换完成卷积计算。需要额外申请内存空间,保存中间结果。


  1. cudnnConvolutionFwdAlgo_t https://docs.nvidia.com/deeplearning/cudnn/api/index.html#cudnnConvolutionFwdAlgo_t

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容