pub struct DefaultConvolutionOps { /* private fields */ }Expand description
Default convolution operations implementation
Implementations§
Source§impl DefaultConvolutionOps
impl DefaultConvolutionOps
pub fn new() -> Self
pub fn with_performance_hints(self, hints: ConvolutionPerformanceHints) -> Self
Trait Implementations§
Source§impl ConvolutionOps for DefaultConvolutionOps
impl ConvolutionOps for DefaultConvolutionOps
Source§fn convolution<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_config: &'life6 ConvolutionConfig,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
fn convolution<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_config: &'life6 ConvolutionConfig,
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
Execute a convolution operation
Source§fn conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
_dilation: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
_dilation: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Execute a 2D convolution
Source§fn depthwise_conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn depthwise_conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Execute a depthwise convolution
Source§fn conv_transpose2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
_output_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn conv_transpose2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_stride: (usize, usize),
_padding: (usize, usize),
_output_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Execute a transposed convolution
Source§fn grouped_conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_groups: usize,
_stride: (usize, usize),
_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn grouped_conv2d<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
_device: &'life1 Device,
_input: &'life2 Buffer,
_kernel: &'life3 Buffer,
_bias: Option<&'life4 Buffer>,
_output: &'life5 Buffer,
_groups: usize,
_stride: (usize, usize),
_padding: (usize, usize),
) -> Pin<Box<dyn Future<Output = BackendResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Execute a grouped convolution
Source§fn select_algorithm(&self, config: &ConvolutionConfig) -> ConvolutionAlgorithm
fn select_algorithm(&self, config: &ConvolutionConfig) -> ConvolutionAlgorithm
Get the best algorithm for given configuration
Source§fn supports_convolution(&self) -> bool
fn supports_convolution(&self) -> bool
Check if convolution operations are supported
Source§fn supported_conv_types(&self) -> Vec<ConvolutionType>
fn supported_conv_types(&self) -> Vec<ConvolutionType>
Get supported convolution types
Source§fn supported_algorithms(&self) -> Vec<ConvolutionAlgorithm>
fn supported_algorithms(&self) -> Vec<ConvolutionAlgorithm>
Get supported algorithms
Auto Trait Implementations§
impl Freeze for DefaultConvolutionOps
impl RefUnwindSafe for DefaultConvolutionOps
impl Send for DefaultConvolutionOps
impl Sync for DefaultConvolutionOps
impl Unpin for DefaultConvolutionOps
impl UnsafeUnpin for DefaultConvolutionOps
impl UnwindSafe for DefaultConvolutionOps
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more