|
Uni20
Asynchronous tensor and runtime library.
|
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>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. | |
Direct single-GEMM backend for pairwise tensor contraction.