|
Uni20
Asynchronous tensor and runtime library.
|
Tensor-level matrix product update and overwrite operations. More...
#include <uni20/common/trace.hpp>#include <uni20/linalg/matrix_product_shape.hpp>#include <uni20/linalg/ops/gemm.hpp>#include <uni20/mdspan/mdspan.hpp>#include <uni20/tensor/output.hpp>#include <concepts>#include <memory>#include <type_traits>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
| namespace | uni20::linalg |
Functions | |
| template<MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B, class Alpha > requires detail::CompatibleMatrixProductTensors<Output, A, B> && OperationScalar<Alpha, tensor_element_t<Output>> | |
| void | uni20::linalg::add_product (Output &&output, A const &a, B const &b, Alpha const &alpha, std::optional< Precision > p={}) |
| Apply add_product using the storage-selected backend. | |
| template<MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B> requires detail::CompatibleMatrixProductTensors<Output, A, B> | |
| void | uni20::linalg::add_product (Output &&output, A const &a, B const &b, std::optional< Precision > p={}) |
| Apply unit-coefficient add_product using storage-selected backends. | |
| template<KernelBackendSelector Selector, MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B, class Alpha > requires detail::CompatibleMatrixProductTensors<Output, A, B> && OperationScalar<Alpha, tensor_element_t<Output>> | |
| void | uni20::linalg::add_product (Selector &&selector, Output &&output, A const &a, B const &b, Alpha const &alpha, std::optional< Precision > requested={}) |
| Accumulate alpha * a * b into an existing fixed-shape output. | |
| template<KernelBackendSelector Selector, MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B> requires detail::CompatibleMatrixProductTensors<Output, A, B> | |
| void | uni20::linalg::add_product (Selector &&selector, Output &&output, A const &a, B const &b, std::optional< Precision > p={}) |
| Apply add_product with an exact unit coefficient and optional precision. | |
| template<MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B, class Alpha > requires detail::CompatibleMatrixProductTensors<Output, A, B> && OperationScalar<Alpha, tensor_element_t<Output>> | |
| void | uni20::linalg::assign_product (Output &&output, A const &a, B const &b, Alpha const &alpha, std::optional< Precision > p={}) |
| Apply assign_product using the storage-selected backend. | |
| template<MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B> requires detail::CompatibleMatrixProductTensors<Output, A, B> | |
| void | uni20::linalg::assign_product (Output &&output, A const &a, B const &b, std::optional< Precision > p={}) |
| Apply unit-coefficient assign_product using storage-selected backends. | |
| template<KernelBackendSelector Selector, MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B, class Alpha > requires detail::CompatibleMatrixProductTensors<Output, A, B> && OperationScalar<Alpha, tensor_element_t<Output>> | |
| void | uni20::linalg::assign_product (Selector &&selector, Output &&output, A const &a, B const &b, Alpha const &alpha, std::optional< Precision > requested={}) |
| Overwrite a resizable or already-compatible output with alpha * a * b. | |
| template<KernelBackendSelector Selector, MutableRankedTensorView< 2 > Output, RankedTensorView< 2 > A, RankedTensorView< 2 > B> requires detail::CompatibleMatrixProductTensors<Output, A, B> | |
| void | uni20::linalg::assign_product (Selector &&selector, Output &&output, A const &a, B const &b, std::optional< Precision > p={}) |
| Apply assign_product with an exact unit coefficient and optional precision. | |
Tensor-level matrix product update and overwrite operations.