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

cuBLAS full inner-product and Euclidean-norm reductions. More...

#include <uni20/backend/cublas/execution.hpp>
#include <uni20/backend/cublas/level1.hpp>
#include <uni20/backend/cuda/buffer.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/storage/cuda_accessor.hpp>
#include <uni20/storage/cuda_storage.hpp>
#include <concepts>
#include <cstddef>
#include <limits>
#include <type_traits>
Include dependency graph for linalg/backends/cublas/reductions.hpp:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<class Output , uni20::MdspecLike LhsMdspec, uni20::MdspecLike RhsMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CublasBackend const &, inner_product_op const &, Output &, LhsMdspec &, RhsMdspec &)
 Report cuBLAS eligibility for a full CUDA inner product returning a host scalar.
 
template<class Output , uni20::MdspecLike InputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CublasBackend const &, norm_op const &, Output &, InputMdspec &)
 Report cuBLAS eligibility for a full CUDA norm returning a host scalar.
 
template<class Output , uni20::MdspecLike LhsMdspec, uni20::MdspecLike RhsMdspec>
requires detail::cublas_backend::HostScalarOutput<Output, typename std::remove_cvref_t<LhsMdspec>::value_type> && detail::cublas_backend::RawReadableCudaReductionMdspec< LhsMdspec, typename std::remove_cvref_t<LhsMdspec>::value_type> && detail::cublas_backend::RawReadableCudaReductionMdspec<RhsMdspec, typename std::remove_cvref_t<LhsMdspec>::value_type>
KernelAttempt uni20::linalg::try_kernel (CublasBackend, inner_product_op const &, Output &output, LhsMdspec &lhs, RhsMdspec &rhs)
 Compute a full CUDA inner product through cuBLAS.
 
template<class Output , uni20::MdspecLike InputMdspec>
requires detail::cublas_backend::HostScalarOutput< Output, uni20::make_real_t<typename std::remove_cvref_t<InputMdspec>::value_type>> && detail::cublas_backend::RawReadableCudaReductionMdspec<InputMdspec, typename std::remove_cvref_t<InputMdspec>::value_type>
KernelAttempt uni20::linalg::try_kernel (CublasBackend, norm_op const &, Output &output, InputMdspec &input)
 Compute a full CUDA Euclidean norm through cuBLAS.
 

Detailed Description

cuBLAS full inner-product and Euclidean-norm reductions.