CUDNN v3特性

原文链接:https://developer.nvidia.com/rdp/cudnn-download


(1)为所有层增加了FP16支持(仅用于存储,所有中间计算仍然使用FP32;

(2)为所有层增加3D支持;

(3)增加新的2D卷积实现:前向和后向计算利用FFT加速。具体参考文档

CUDNN_CONVOLUTION_FWD_ALGO_FFT,

CUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFT,

CUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT。

2DFFT卷积是确定的。

(4)后向Data和Filter 2D卷积目前支持新的确定算法,相应地为CUDNN_CONVOLUTION_BWD_DATA_ALGO1和CUDNN_CONVOLUTION_BWD_FILTER_ALGO1。这些算法在一些场景下优于非确定算法。

类似于前向,用户可以查询最快的算法或根据需要选一个特定算法。

(5)增加了通道间局部响应归一化层(LRN CrossChannel);

(6)增加了可分离的归一化层。该层可以用于实现通道内 2D或3D LRN和LCN;

(7)增加了对数软最大化层(Log Softmax);

(8)增加三个新函数

cudnnFindConvolutionForwardAlgorithm,

cudnnFindConvolutionBackwardFilterAlgorithm,

cudnnFindConvolutionBackwardDataAlgorithm。

它们尝试每个可用的卷积算法,按速度和内存需求量排序。

(9)目前下采样层(pooling)支持负补边操作(negative padding);


Maxwell性能提升

(10)前向卷积算法CUDNN_CONVOLUTION_FWD_ALGO1和data后向卷积算法CUDNN_CONVOLUTION_BWD_DATA_ALGO1在Maxwell架构下的性能大大提升;

后向API兼容性

(11)为了保持后向兼容cuDNN v2.0,更新了几个带后缀_v3的API函数:

cudnnSetConvolutionDescriptor_v3

cudnnGetConvolutionDescriptor_v3

cudnnConvolutionBackwardFilter_v3

cudnnConvolutionBackwardData_v3

原先的函数已经过期。


cuBLAS依赖

(12)新的FFT卷积算法使用了一些cuBLAS函数。在cuDNN应用程序中使用cuDNN动态库无需显式链接cuBLAS库,而使用cuDNN静态库则需要显式链接cuBLAS库。

已知的问题

(13)在Maxwell架构下,当选择CUDNN_CONVOLUTION_BWD_DATA_ALGO1算法,而且补边数目大于滤波器尺寸时函数cudnnConvolutionBackwardData_v3可能给出错误结果。

你可能感兴趣的:(nVidia,fft,cudnn,caffe,cublas)