Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Concepts | Functions
uni20::linalg::cpu Namespace Reference

Concepts

concept  ContractionCompatible
 Report whether resolved mdspans support reference contraction expressions.
 
concept  GemmCompatible
 Report whether resolved mdspans support reference CPU GEMM expressions.
 
concept  GemvCompatible
 Report whether resolved mdspans support reference CPU GEMV expressions.
 

Functions

template<class OutputMdspan , uni20::Scalar Scalar, class LhsMdspan , class RhsMdspan , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
requires ContractionCompatible<OutputMdspan, Scalar, LhsMdspan, RhsMdspan, LhsRank, RhsRank, ContractedRank>
void contract (OutputMdspan &output, Scalar alpha, LhsMdspan &lhs, RhsMdspan &rhs, Scalar beta, ContractionAxes< LhsRank, RhsRank, ContractedRank > const &axes)
 Execute a fixed-output pairwise contraction over resolved host mdspans.
 
template<class OutputMdspan , uni20::Scalar Scalar, class LhsMdspan , class RhsMdspan >
requires GemmCompatible<OutputMdspan, Scalar, LhsMdspan, RhsMdspan>
void gemm (OutputMdspan &&output, Scalar alpha, LhsMdspan &&lhs, RhsMdspan &&rhs, Scalar beta)
 Execute reference CPU GEMM on resolved mdspans.
 
template<class OutputMdspan , uni20::Scalar Scalar, class MatrixMdspan , class InputMdspan >
requires GemvCompatible<OutputMdspan, Scalar, MatrixMdspan, InputMdspan>
void gemv (OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta)
 Execute reference CPU GEMV on resolved mdspans.
 

Function Documentation

◆ contract()

template<class OutputMdspan , uni20::Scalar Scalar, class LhsMdspan , class RhsMdspan , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank>
requires ContractionCompatible<OutputMdspan, Scalar, LhsMdspan, RhsMdspan, LhsRank, RhsRank, ContractedRank>
void uni20::linalg::cpu::contract ( OutputMdspan &  output,
Scalar  alpha,
LhsMdspan &  lhs,
RhsMdspan &  rhs,
Scalar  beta,
ContractionAxes< LhsRank, RhsRank, ContractedRank > const &  axes 
)

Execute a fixed-output pairwise contraction over resolved host mdspans.

Rank-two contractions with a generalized-diagonal operand read its rank-one stored components directly. The general correctness path evaluates every operand through its accessor and supports rank-zero operands, outer products, empty contracted extents, and arbitrary mdspan mappings.

◆ gemm()

template<class OutputMdspan , uni20::Scalar Scalar, class LhsMdspan , class RhsMdspan >
requires GemmCompatible<OutputMdspan, Scalar, LhsMdspan, RhsMdspan>
void uni20::linalg::cpu::gemm ( OutputMdspan &&  output,
Scalar  alpha,
LhsMdspan &&  lhs,
RhsMdspan &&  rhs,
Scalar  beta 
)

Execute reference CPU GEMM on resolved mdspans.

◆ gemv()

template<class OutputMdspan , uni20::Scalar Scalar, class MatrixMdspan , class InputMdspan >
requires GemvCompatible<OutputMdspan, Scalar, MatrixMdspan, InputMdspan>
void uni20::linalg::cpu::gemv ( OutputMdspan &&  output,
Scalar  alpha,
MatrixMdspan &&  matrix,
InputMdspan &&  input,
Scalar  beta 
)

Execute reference CPU GEMV on resolved mdspans.