Skip to main content

Operator

Trait Operator 

Source
pub trait Operator {
    // Required methods
    fn validate_tensors(
        &self,
        inputs: &[Option<Tensor>],
        outputs: &[Option<Tensor>],
    ) -> SimResult;
    fn compute_delay_ticks(
        &self,
        compute_capabilities: &Rc<ComputeCapabilities>,
        inputs: &[Option<TensorView>],
        outputs: &[Option<TensorView>],
    ) -> Result<usize, SimError>;
    fn compute_machine_ops(
        &self,
        inputs: &[Option<TensorView>],
        outputs: &[Option<TensorView>],
    ) -> Result<MachineOpCounts, SimError>;
    fn partition_views(
        &self,
        input_views: &[Option<TensorView>],
        output_views: &[Option<TensorView>],
        num_partitions: usize,
    ) -> Result<Vec<TensorPartition>, SimError>;

    // Provided method
    fn compute_flops(
        &self,
        inputs: &[Option<TensorView>],
        outputs: &[Option<TensorView>],
    ) -> Result<usize, SimError> { ... }
}

Required Methods§

Source

fn validate_tensors( &self, inputs: &[Option<Tensor>], outputs: &[Option<Tensor>], ) -> SimResult

Validate that the input and output tensors are valid shapes and datatypes

Source

fn compute_delay_ticks( &self, compute_capabilities: &Rc<ComputeCapabilities>, inputs: &[Option<TensorView>], outputs: &[Option<TensorView>], ) -> Result<usize, SimError>

Returns the number of clock ticks needed to perform the specified computation give the machine capabilities

Source

fn compute_machine_ops( &self, inputs: &[Option<TensorView>], outputs: &[Option<TensorView>], ) -> Result<MachineOpCounts, SimError>

Returns the number of machine operations performed by the specified computation, broken down by operation type.

Source

fn partition_views( &self, input_views: &[Option<TensorView>], output_views: &[Option<TensorView>], num_partitions: usize, ) -> Result<Vec<TensorPartition>, SimError>

Partition the operation into one or more views that can be executed in parallel. Implementations may return fewer than num_partitions if the operator cannot be split that finely.

Provided Methods§

Source

fn compute_flops( &self, inputs: &[Option<TensorView>], outputs: &[Option<TensorView>], ) -> Result<usize, SimError>

Returns the total number of FLOPs performed by the specified computation.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§