Enum cudnnRNNAlgo
cudnnRNNAlgo_t is an enumerated type used to specify the algorithm used in the cudnnRNNForwardInference(), cudnnRNNForwardTraining(), cudnnRNNBackwardData() and cudnnRNNBackwardWeights() routines.
Namespace: ManagedCuda.CudaDNN
Assembly: CudaDNN.dll
Syntax
public enum cudnnRNNAlgo
Fields
Name | Description |
---|---|
PersistDynamic | The recurrent parts of the network are executed using a persistent kernel approach. This method is expected to be fast when the first dimension of the input tensor is small (ie. a small minibatch). When using CUDNN_RNN_ALGO_PERSIST_DYNAMIC persistent kernels are prepared at runtime and are able to optimized using the specific parameters of the network and active GPU.As such, when using CUDNN_RNN_ALGO_PERSIST_DYNAMIC a one-time plan preparation stage must be executed.These plans can then be reused in repeated calls with the same model parameters. The limits on the maximum number of hidden units supported when using CUDNN_RNN_ALGO_PERSIST_DYNAMIC are significantly higher than the limits when using CUDNN_RNN_ALGO_PERSIST_STATIC, however throughput is likely to significantly reduce when exceeding the maximums supported by CUDNN_RNN_ALGO_PERSIST_STATIC.In this regime this method will still outperform CUDNN_RNN_ALGO_STANDARD for some cases. CUDNN_RNN_ALGO_PERSIST_DYNAMIC is only supported on devices with compute capability >= 6.0 on Linux machines. |
PersistStatic | The recurrent parts of the network are executed using a persistent kernel approach. This method is expected to be fast when the first dimension of the input tensor is small (ie. a small minibatch). CUDNN_RNN_ALGO_PERSIST_STATIC is only supported on devices with compute capability >= 6.0. |
Standard | Each RNN layer is executed as a sequence of operations. This algorithm is expected to have robust performance across a wide range of network parameters. |