Enum coaster_nn::ConvForwardAlgo
source · pub enum ConvForwardAlgo {
Auto,
GEMM,
ImplicitGEMM,
ImplicitPrecompiledGEMM,
FFT,
FFTTiling,
Direct,
Winograd,
WinogradNonFused,
}
Expand description
Different algorithms to compute the convolution forward algorithm.
Variants§
Auto
Attempt to automatically find the best algorithm of all the other available ones.
GEMM
Compute the convolution as explicit matrix product.
Needs a significant memory workspace.
ImplicitGEMM
Compute the convolution as matrix product without forming the matrix that holds the input data.
Does not need any memory workspace.
ImplicitPrecompiledGEMM
Similar to ImplicitGEMM
but needs some workspace to precompile the implicit indices.
FFT
Compute the convolution as Fast-Fourier Transform.
Needs a significant memory workspace.
FFTTiling
Compute the convolution as Fast-Fourier Transform with 32x32 tiles.
Needs a significant memory workspace.
Direct
Compute the convolution without implicit or explicit matrix-multiplication. Do not try to use this.
Listed in cuDNN docs but cuDNN does not provide a implementation.
Winograd
Winograd Transform
WinogradNonFused
Winograd Transform Non-Fused
Implementations§
Trait Implementations§
source§impl Clone for ConvForwardAlgo
impl Clone for ConvForwardAlgo
source§fn clone(&self) -> ConvForwardAlgo
fn clone(&self) -> ConvForwardAlgo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ConvForwardAlgo
impl Debug for ConvForwardAlgo
source§impl PartialEq for ConvForwardAlgo
impl PartialEq for ConvForwardAlgo
source§fn eq(&self, other: &ConvForwardAlgo) -> bool
fn eq(&self, other: &ConvForwardAlgo) -> bool
self
and other
values to be equal, and is used
by ==
.