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

Direct mdspan GEMV 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/blas/mdspan_vector.hpp>
#include <uni20/linalg/kernel_attempt.hpp>
#include <concepts>
#include <cstddef>
#include <type_traits>
Include dependency graph for blas/gemv.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 MatrixMdspan , class InputMdspan >
requires detail::writable_gemv_vector_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<MatrixMdspan>, Scalar, 2> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<InputMdspan>, Scalar, 1>
void uni20::linalg::blas::gemv (OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta)
 Direct no-copy BLAS GEMV from mdspan-like operands.
 
template<uni20::BlasScalar Scalar, class OutputMdspan , class MatrixMdspan , class InputMdspan >
requires detail::writable_gemv_vector_for<std::remove_cvref_t<OutputMdspan>, Scalar> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<MatrixMdspan>, Scalar, 2> && detail::readable_gemv_mdspan_for<std::remove_cvref_t<InputMdspan>, Scalar, 1>
KernelAttempt uni20::linalg::blas::try_gemv (OutputMdspan &&output, Scalar alpha, MatrixMdspan &&matrix, InputMdspan &&input, Scalar beta)
 Try a direct no-copy BLAS GEMV from mdspan-like operands.
 

Detailed Description

Direct mdspan GEMV wrappers over the configured BLAS provider.