pub struct CpuConvolutionOps { /* private fields */ }Expand description
CPU convolution operations implementation
Implementations§
Trait Implementations§
Source§impl Clone for CpuConvolutionOps
impl Clone for CpuConvolutionOps
Source§fn clone(&self) -> CpuConvolutionOps
fn clone(&self) -> CpuConvolutionOps
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ConvolutionOps for CpuConvolutionOps
impl ConvolutionOps for CpuConvolutionOps
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 CpuConvolutionOps
impl RefUnwindSafe for CpuConvolutionOps
impl Send for CpuConvolutionOps
impl Sync for CpuConvolutionOps
impl Unpin for CpuConvolutionOps
impl UnsafeUnpin for CpuConvolutionOps
impl UnwindSafe for CpuConvolutionOps
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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