Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
gemm.hpp File Reference

Fixed-output Tensor GEMM front end. More...

#include <uni20/linalg/backends/cpu/gemm.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_scalar.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/linalg/precision.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/output.hpp>
#include <uni20/tensor/precision.hpp>
#include <utility>
Include dependency graph for linalg/ops/gemm.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<class BackendSelector , uni20::MutableRankedTensorView< 2 > OutputTensor, class Alpha , class Beta , uni20::RankedTensorView< 2 > LhsTensor, uni20::RankedTensorView< 2 > RhsTensor>
requires (OperationScalar<Alpha, tensor_element_t<OutputTensor>> && OperationScalar<Beta, tensor_element_t<OutputTensor>>)
void uni20::linalg::gemm (BackendSelector &&selector, OutputTensor &&output, Alpha alpha, LhsTensor const &lhs, RhsTensor const &rhs, Beta beta, std::optional< Precision > requested={})
 Update a fixed-size matrix as output = alpha * lhs * rhs + beta * output.
 
template<uni20::MutableRankedTensorView< 2 > OutputTensor, class Alpha , class Beta , uni20::RankedTensorView< 2 > LhsTensor, uni20::RankedTensorView< 2 > RhsTensor>
requires (OperationScalar<Alpha, tensor_element_t<OutputTensor>> && OperationScalar<Beta, tensor_element_t<OutputTensor>>)
void uni20::linalg::gemm (OutputTensor &&output, Alpha alpha, LhsTensor const &lhs, RhsTensor const &rhs, Beta beta, std::optional< Precision > p={})
 Apply the fixed-storage gemm contract using the operands' default backend selector.
 

Detailed Description

Fixed-output Tensor GEMM front end.