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

Direct mdspan GEMM wrappers over the configured BLAS provider. More...

#include <uni20/backend/blas/backend_blas.hpp>
#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/blas/mdspan_matrix.hpp>
#include <uni20/linalg/kernel_attempt.hpp>
#include <concepts>
#include <type_traits>
Include dependency graph for linalg/blas/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
 
namespace  uni20::linalg::blas
 

Functions

template<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspan_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<RhsMdspan>, Scalar>
void uni20::linalg::blas::gemm (OutputMdspan &&output, Scalar alpha, LhsMdspan &&lhs, RhsMdspan &&rhs, Scalar beta)
 Direct no-copy BLAS GEMM from mdspan-like operands.
 
template<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspec_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspec_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspec_for<std::remove_cvref_t<RhsMdspan>, Scalar>
KernelAttempt uni20::linalg::blas::probe_gemm (OutputMdspan &&output, LhsMdspan &&lhs, RhsMdspan &&rhs)
 Probe direct no-copy BLAS GEMM without invoking the provider.
 
template<uni20::BlasScalar Scalar, class OutputMdspan , class LhsMdspan , class RhsMdspan >
requires detail::writable_blas_mdspan_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<LhsMdspan>, Scalar> && detail::readable_blas_mdspan_for<std::remove_cvref_t<RhsMdspan>, Scalar>
KernelAttempt uni20::linalg::blas::try_gemm (OutputMdspan &&output, Scalar alpha, LhsMdspan &&lhs, RhsMdspan &&rhs, Scalar beta)
 Try a direct no-copy BLAS GEMM from mdspan-like operands.
 

Detailed Description

Direct mdspan GEMM wrappers over the configured BLAS provider.