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

cuBLAS backend adapter for provider-ready GEMM dispatch. More...

#include <uni20/linalg/backends/cublas/detail/gemm.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/matrix_product_shape.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/output.hpp>
#include <type_traits>
#include <utility>
Include dependency graph for linalg/backends/cublas/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
 

Functions

template<uni20::MutableRankedTensorView< 2 > OutputTensor, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
requires requires(async::shared_storage<OutputTensor>& storage, detail::matrix_product_extents const& shape, uni20::cuda::Device device) { uni20::prepare_output(storage, shape, device); }
consteval auto uni20::linalg::kernel_accepts_types (CublasBackend const &, assign_product_op const &, async::shared_storage< OutputTensor > &, Scalar const &, LhsMdspan &, RhsMdspan &)
 Report cuBLAS eligibility for a deferred Tensor matrix-product output.
 
template<uni20::MutableRankedTensorView< 2 > OutputTensor, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CublasBackend const &, assign_product_op const &, OutputTensor &, Scalar const &, LhsMdspan &, RhsMdspan &)
 Report cuBLAS eligibility for replaceable-output matrix products.
 
template<uni20::MutableRankedMdspecLike< 2 > OutputMdspan, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CublasBackend const &, gemm_op const &, OutputMdspan &, Scalar const &, LhsMdspan &, RhsMdspan &, Scalar const &)
 Report cuBLAS eligibility for normalized mdspec GEMM operands.
 
template<uni20::MutableRankedTensorView< 2 > OutputTensor, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
requires requires(async::shared_storage<OutputTensor>& storage, detail::matrix_product_extents const& shape, uni20::cuda::Device device) { uni20::prepare_output(storage, shape, device); }
KernelAttempt uni20::linalg::try_kernel (CublasBackend, assign_product_op const &, async::shared_storage< OutputTensor > &output_storage, Scalar alpha, LhsMdspan &lhs, RhsMdspan &rhs)
 Construct or relocate a deferred CUDA output and run blocking cuBLAS GEMM.
 
template<uni20::MutableRankedTensorView< 2 > OutputTensor, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
KernelAttempt uni20::linalg::try_kernel (CublasBackend, assign_product_op const &, OutputTensor &output, Scalar alpha, LhsMdspan &lhs, RhsMdspan &rhs)
 Prepare a replaceable output and lower normalized operands for cuBLAS GEMM.
 
template<uni20::MutableRankedMdspecLike< 2 > OutputMdspan, class Scalar , uni20::RankedMdspecLike< 2 > LhsMdspan, uni20::RankedMdspecLike< 2 > RhsMdspan>
KernelAttempt uni20::linalg::try_kernel (CublasBackend, gemm_op const &, OutputMdspan &output, Scalar alpha, LhsMdspan &lhs, RhsMdspan &rhs, Scalar beta)
 Invoke the cuBLAS GEMM adapter with normalized mdspecs.
 

Detailed Description

cuBLAS backend adapter for provider-ready GEMM dispatch.