Skip to main content

TensorMeta

Trait TensorMeta 

Source
pub trait TensorMeta<D: Device, K: DTypeKind<D> + Sized>:
    Default
    + Send
    + Sync {
Show 22 methods // Required methods fn on_binary(lhs: &Tensor<D, K>, rhs: &Tensor<D, K>, op: BinaryOp) -> Self; fn on_binary_scalar( lhs: &Tensor<D, K>, rhs: K::Scalar, op: BinaryOp, ) -> Self; fn on_unary(t: &Tensor<D, K>, op: UnaryOp<K::Scalar>) -> Self; fn on_float_unary(t: &Tensor<D, K>, op: FloatUnaryOp) -> Self; fn on_reduce(t: &Tensor<D, K>, dims: &[usize], op: ReduceOp) -> Self; fn on_matmul(lhs: &Tensor<D, K>, rhs: &Tensor<D, K>) -> Self; fn on_broadcast(t: &Tensor<D, K>) -> Self; fn on_narrow(t: &Tensor<D, K>, dim: usize, start: usize, len: usize) -> Self; fn on_slice( t: &Tensor<D, K>, dim: usize, start: usize, end: usize, step: usize, ) -> Self; fn on_reshape(t: &Tensor<D, K>) -> Self; fn on_transpose(t: &Tensor<D, K>, dim1: usize, dim2: usize) -> Self; fn on_permute(t: &Tensor<D, K>, dims: Vec<usize>) -> Self; fn on_cat<A: AsRef<Tensor<D, K>>>(args: &[A], dim: usize) -> Self; fn on_copy(t: &Tensor<D, K>) -> Self; fn on_cast(t: &Tensor<D, K>) -> Self; fn on_index_select( t: &Tensor<D, K>, idx: &Tensor<D, Int>, dim: usize, ) -> Self; fn on_gather(src: &Tensor<D, K>, idx: &Tensor<D, Int>, dim: usize) -> Self; fn on_index_add( init: &Tensor<D, K>, idx: &Tensor<D, Int>, src: &Tensor<D, K>, dim: usize, ) -> Self; fn on_scatter_add( init: &Tensor<D, K>, idx: &Tensor<D, Int>, src: &Tensor<D, K>, dim: usize, ) -> Self; fn on_pick( mask: &Tensor<D, Bool>, tv: Option<&Tensor<D, K>>, fv: Option<&Tensor<D, K>>, ) -> Self; fn on_rms_norm( input: &Tensor<D, K>, weight: &Tensor<D, K>, eps: f64, ) -> Self; fn on_softmax(input: &Tensor<D, K>, dim: usize) -> Self;
}
Expand description

Trait for metadata that knows how to construct itself when a tensor operation is performed.

Required Methods§

Source

fn on_binary(lhs: &Tensor<D, K>, rhs: &Tensor<D, K>, op: BinaryOp) -> Self

Source

fn on_binary_scalar(lhs: &Tensor<D, K>, rhs: K::Scalar, op: BinaryOp) -> Self

Source

fn on_unary(t: &Tensor<D, K>, op: UnaryOp<K::Scalar>) -> Self

Source

fn on_float_unary(t: &Tensor<D, K>, op: FloatUnaryOp) -> Self

Source

fn on_reduce(t: &Tensor<D, K>, dims: &[usize], op: ReduceOp) -> Self

Source

fn on_matmul(lhs: &Tensor<D, K>, rhs: &Tensor<D, K>) -> Self

Source

fn on_broadcast(t: &Tensor<D, K>) -> Self

Source

fn on_narrow(t: &Tensor<D, K>, dim: usize, start: usize, len: usize) -> Self

Source

fn on_slice( t: &Tensor<D, K>, dim: usize, start: usize, end: usize, step: usize, ) -> Self

Source

fn on_reshape(t: &Tensor<D, K>) -> Self

Source

fn on_transpose(t: &Tensor<D, K>, dim1: usize, dim2: usize) -> Self

Source

fn on_permute(t: &Tensor<D, K>, dims: Vec<usize>) -> Self

Source

fn on_cat<A: AsRef<Tensor<D, K>>>(args: &[A], dim: usize) -> Self

Source

fn on_copy(t: &Tensor<D, K>) -> Self

Source

fn on_cast(t: &Tensor<D, K>) -> Self

Source

fn on_index_select(t: &Tensor<D, K>, idx: &Tensor<D, Int>, dim: usize) -> Self

Source

fn on_gather(src: &Tensor<D, K>, idx: &Tensor<D, Int>, dim: usize) -> Self

Source

fn on_index_add( init: &Tensor<D, K>, idx: &Tensor<D, Int>, src: &Tensor<D, K>, dim: usize, ) -> Self

Source

fn on_scatter_add( init: &Tensor<D, K>, idx: &Tensor<D, Int>, src: &Tensor<D, K>, dim: usize, ) -> Self

Source

fn on_pick( mask: &Tensor<D, Bool>, tv: Option<&Tensor<D, K>>, fv: Option<&Tensor<D, K>>, ) -> Self

Source

fn on_rms_norm(input: &Tensor<D, K>, weight: &Tensor<D, K>, eps: f64) -> Self

Source

fn on_softmax(input: &Tensor<D, K>, dim: usize) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<D: Device, K: DTypeKind<D>> TensorMeta<D, K> for ()

Source§

fn on_binary(_: &Tensor<D, K>, _: &Tensor<D, K>, _: BinaryOp) -> Self

Source§

fn on_binary_scalar(_: &Tensor<D, K>, _: K::Scalar, _: BinaryOp) -> Self

Source§

fn on_unary(_: &Tensor<D, K>, _: UnaryOp<K::Scalar>) -> Self

Source§

fn on_float_unary(_: &Tensor<D, K>, _: FloatUnaryOp) -> Self

Source§

fn on_reduce(_: &Tensor<D, K>, _: &[usize], _: ReduceOp) -> Self

Source§

fn on_matmul(_: &Tensor<D, K>, _: &Tensor<D, K>) -> Self

Source§

fn on_broadcast(_: &Tensor<D, K>) -> Self

Source§

fn on_narrow(_: &Tensor<D, K>, _: usize, _: usize, _: usize) -> Self

Source§

fn on_slice(_: &Tensor<D, K>, _: usize, _: usize, _: usize, _: usize) -> Self

Source§

fn on_reshape(_: &Tensor<D, K>) -> Self

Source§

fn on_transpose(_: &Tensor<D, K>, _: usize, _: usize) -> Self

Source§

fn on_permute(_: &Tensor<D, K>, _: Vec<usize>) -> Self

Source§

fn on_cat<A: AsRef<Tensor<D, K>>>(_: &[A], _: usize) -> Self

Source§

fn on_copy(_: &Tensor<D, K>) -> Self

Source§

fn on_cast(_: &Tensor<D, K>) -> Self

Source§

fn on_index_select(_: &Tensor<D, K>, _: &Tensor<D, Int>, _: usize) -> Self

Source§

fn on_gather(_: &Tensor<D, K>, _: &Tensor<D, Int>, _: usize) -> Self

Source§

fn on_index_add( _: &Tensor<D, K>, _: &Tensor<D, Int>, _: &Tensor<D, K>, _: usize, ) -> Self

Source§

fn on_scatter_add( _: &Tensor<D, K>, _: &Tensor<D, Int>, _: &Tensor<D, K>, _: usize, ) -> Self

Source§

fn on_pick( _: &Tensor<D, Bool>, _: Option<&Tensor<D, K>>, _: Option<&Tensor<D, K>>, ) -> Self

Source§

fn on_rms_norm(_: &Tensor<D, K>, _: &Tensor<D, K>, _: f64) -> Self

Source§

fn on_softmax(_: &Tensor<D, K>, _: usize) -> Self

Implementors§