pub struct MatMulKernel;Expand description
Naive 2-D matrix multiplication kernel.
Computes output = left × right for rank-2 matrices.
leftshape:[m, n]rightshape:[n, d]outputshape:[m, d]
Data is interpreted as row-major contiguous storage.
§Errors
Returns KernelError::InvalidArguments if inputs.len() != 2.
Returns KernelError::InvalidRank if either input is not rank-2.
Returns KernelError::ShapeMismatch if inner dimensions do not match or output has the
wrong shape.
§Examples
let a = Tensor::from_vec(vec![2, 3], vec![1.0, 2.0, 3.0,
4.0, 5.0, 6.0]).unwrap();
let b = Tensor::from_vec(vec![3, 2], vec![7.0, 8.0,
9.0, 10.0,
11.0, 12.0]).unwrap();
let mut out = Tensor::zeros(vec![2, 2]).unwrap();
MatMulKernel.compute(&[&a, &b], &mut out).unwrap();
assert_eq!(out.data(), &[58.0, 64.0, 139.0, 154.0]);Trait Implementations§
Auto Trait Implementations§
impl Freeze for MatMulKernel
impl RefUnwindSafe for MatMulKernel
impl Send for MatMulKernel
impl Sync for MatMulKernel
impl Unpin for MatMulKernel
impl UnsafeUnpin for MatMulKernel
impl UnwindSafe for MatMulKernel
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