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

Direct single-GEMM backend for pairwise tensor contraction. More...

#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/backend_selector.hpp>
#include <uni20/linalg/contraction_strides.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/linalg/ops/gemm.hpp>
#include <concepts>
#include <string_view>
#include <type_traits>
#include <utility>
Include dependency graph for linalg/backends/direct_gemm/contract.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::linalg::DirectGemmContractionBackend< GemmSelector >
 Contract directly through one GEMM selected from a retained execution selector. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<class GemmSelector >
 uni20::linalg::DirectGemmContractionBackend (GemmSelector) -> DirectGemmContractionBackend< std::remove_cvref_t< GemmSelector > >
 
template<class GemmSelector , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank, MutableRankedContractionMdspecLike< ContractionAxes< LhsRank, RhsRank, ContractedRank >::output_rank > OutputMdspec, uni20::Scalar Scalar, RankedContractionMdspecLike< LhsRank > LhsMdspec, RankedContractionMdspecLike< RhsRank > RhsMdspec>
consteval auto uni20::linalg::kernel_accepts_types (DirectGemmContractionBackend< GemmSelector > const &, contract_op< LhsRank, RhsRank, ContractedRank > const &, OutputMdspec &, Scalar const &, LhsMdspec &, RhsMdspec &, Scalar const &)
 Report direct-GEMM contraction eligibility for the retained GEMM selector.
 
template<class GemmSelector , std::size_t LhsRank, std::size_t RhsRank, std::size_t ContractedRank, MutableRankedContractionMdspecLike< ContractionAxes< LhsRank, RhsRank, ContractedRank >::output_rank > OutputMdspec, uni20::Scalar Scalar, RankedContractionMdspecLike< LhsRank > LhsMdspec, RankedContractionMdspecLike< RhsRank > RhsMdspec>
requires (detail::direct_gemm_contraction_backend::gemm_dispatch_types_compatible<GemmSelector, OutputMdspec, Scalar, LhsMdspec, RhsMdspec>())
KernelAttempt uni20::linalg::try_kernel (DirectGemmContractionBackend< GemmSelector > const &backend, contract_op< LhsRank, RhsRank, ContractedRank > const &operation, OutputMdspec &output, Scalar alpha, LhsMdspec &lhs, RhsMdspec &rhs, Scalar beta)
 Project a contraction and execute it through one nested GEMM dispatch.
 

Detailed Description

Direct single-GEMM backend for pairwise tensor contraction.