pub trait Backend {
// Required methods
fn add(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>;
fn mul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>;
fn matmul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>;
fn sum_all(a: &Tensor) -> EtensorResult<Tensor>;
fn mean_all(a: &Tensor) -> EtensorResult<Tensor>;
fn max_all(a: &Tensor) -> EtensorResult<Tensor>;
fn relu(a: &Tensor) -> EtensorResult<Tensor>;
fn sigmoid(a: &Tensor) -> EtensorResult<Tensor>;
fn add_relu(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>;
fn linear(x: &Tensor, w: &Tensor, b: &Tensor) -> EtensorResult<Tensor>;
}Expand description
The foundational contract that all physical hardware backends must fulfill.
Required Methods§
Sourcefn add(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
fn add(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
Executes an element-wise addition (a + b) and returns a dynamically allocated output tensor.
Sourcefn mul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
fn mul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
Executes an element-wise multiplication (a * b) and returns a dynamically allocated output tensor.
Sourcefn matmul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
fn matmul(a: &Tensor, b: &Tensor) -> EtensorResult<Tensor>
Executes matrix multiplication (a @ b) and returns a dynamically allocated output tensor.
Sourcefn sum_all(a: &Tensor) -> EtensorResult<Tensor>
fn sum_all(a: &Tensor) -> EtensorResult<Tensor>
Executes a global sum reduction, collapsing the tensor into a single scalar.
Sourcefn mean_all(a: &Tensor) -> EtensorResult<Tensor>
fn mean_all(a: &Tensor) -> EtensorResult<Tensor>
Executes a global mean reduction, collapsing the tensor into a single scalar.
Sourcefn max_all(a: &Tensor) -> EtensorResult<Tensor>
fn max_all(a: &Tensor) -> EtensorResult<Tensor>
Executes a global max reduction, collapsing the tensor into a single scalar.
Sourcefn relu(a: &Tensor) -> EtensorResult<Tensor>
fn relu(a: &Tensor) -> EtensorResult<Tensor>
Executes the Rectified Linear Unit (ReLU) activation function.
Sourcefn sigmoid(a: &Tensor) -> EtensorResult<Tensor>
fn sigmoid(a: &Tensor) -> EtensorResult<Tensor>
Executes the Sigmoid activation function.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.