pub struct OperationCapability {
pub backend: BackendId,
pub op: PrimitiveOpKind,
pub dtype: DType,
pub output_dtype: DType,
pub result: SupportLevel,
pub read_inputs: SupportLevel,
pub write_output: SupportLevel,
pub strided_output: SupportLevel,
pub accumulation: SupportLevel,
}Expand description
One backend capability entry for a primitive op and input dtype.
§Examples
use tenferro_core_ops::PrimitiveOpKind;
use tenferro_tensor::{
BackendId, CapabilityAxis, DType, OperationCapability, SupportLevel,
};
let entry = OperationCapability {
backend: BackendId::Cpu,
op: PrimitiveOpKind::Add,
dtype: DType::F64,
output_dtype: DType::F64,
result: SupportLevel::Native,
read_inputs: SupportLevel::Native,
write_output: SupportLevel::Native,
strided_output: SupportLevel::Native,
accumulation: SupportLevel::Unsupported,
};
assert_eq!(entry.axis(CapabilityAxis::OwnedResult), SupportLevel::Native);Fields§
§backend: BackendId§op: PrimitiveOpKind§dtype: DType§output_dtype: DType§result: SupportLevel§read_inputs: SupportLevel§write_output: SupportLevel§strided_output: SupportLevel§accumulation: SupportLevelImplementations§
Source§impl OperationCapability
impl OperationCapability
Sourcepub const fn axis(&self, axis: CapabilityAxis) -> SupportLevel
pub const fn axis(&self, axis: CapabilityAxis) -> SupportLevel
Return the support level for one capability axis.
§Examples
use tenferro_core_ops::PrimitiveOpKind;
use tenferro_tensor::{
BackendId, CapabilityAxis, DType, OperationCapability, SupportLevel,
};
let entry = OperationCapability {
backend: BackendId::Cuda,
op: PrimitiveOpKind::ReduceSum,
dtype: DType::I32,
output_dtype: DType::I32,
result: SupportLevel::Native,
read_inputs: SupportLevel::FallbackCopy,
write_output: SupportLevel::Unsupported,
strided_output: SupportLevel::Unsupported,
accumulation: SupportLevel::Unsupported,
};
assert_eq!(entry.axis(CapabilityAxis::ReadInputs), SupportLevel::FallbackCopy);Trait Implementations§
Source§impl Clone for OperationCapability
impl Clone for OperationCapability
Source§fn clone(&self) -> OperationCapability
fn clone(&self) -> OperationCapability
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OperationCapability
impl Debug for OperationCapability
Source§impl Hash for OperationCapability
impl Hash for OperationCapability
Source§impl PartialEq for OperationCapability
impl PartialEq for OperationCapability
Source§fn eq(&self, other: &OperationCapability) -> bool
fn eq(&self, other: &OperationCapability) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for OperationCapability
impl Eq for OperationCapability
impl StructuralPartialEq for OperationCapability
Auto Trait Implementations§
impl Freeze for OperationCapability
impl RefUnwindSafe for OperationCapability
impl Send for OperationCapability
impl Sync for OperationCapability
impl Unpin for OperationCapability
impl UnsafeUnpin for OperationCapability
impl UnwindSafe for OperationCapability
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