|
Uni20
Asynchronous tensor and runtime library.
|
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>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. | |
cuBLAS backend adapter for provider-ready GEMM dispatch.