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

Reference CPU tensor reduction kernels. More...

#include <uni20/common/trace.hpp>
#include <uni20/core/math.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/core/scalar_traits.hpp>
#include <uni20/linalg/backends/cpu/detail/compensated_sum.hpp>
#include <uni20/linalg/backends/reduction_output.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/mdspan/concepts.hpp>
#include <uni20/tensor/access.hpp>
#include <uni20/tensor/concepts.hpp>
#include <array>
#include <cmath>
#include <concepts>
#include <cstddef>
#include <functional>
#include <type_traits>
#include <utility>
Include dependency graph for linalg/backends/cpu/reductions.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<class Output , uni20::MdspecLike LhsMdspan, uni20::MdspecLike RhsMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<LhsMdspan> && uni20::HostReadableMdspec<RhsMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend const &, inner_product_op const &, Output &, LhsMdspan &, RhsMdspan &)
 Report eligibility for a host-accessible mdspec inner product.
 
template<class Output , uni20::MdspecLike InputMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<InputMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend const &, norm_op const &, Output &, InputMdspan &)
 Report eligibility for a host-accessible mdspec norm.
 
template<class Output , std::size_t InputRank, std::size_t ReducedRank, uni20::MdspecLike InputMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<InputMdspan>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend const &, sum_reduction_op< InputRank, ReducedRank > const &, Output &, InputMdspan &)
 Report eligibility for a host-accessible mdspec sum reduction.
 
template<class Output , uni20::MdspecLike LhsMdspan, uni20::MdspecLike RhsMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<LhsMdspan> && uni20::HostReadableMdspec<RhsMdspan>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, inner_product_op const &, Output &output, LhsMdspan &lhs, RhsMdspan &rhs)
 Resolve host access and compute an inner product.
 
template<class Output , uni20::MdspecLike InputMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<InputMdspan>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, norm_op const &, Output &output, InputMdspan &input)
 Resolve host access and compute a Euclidean norm.
 
template<class Output , std::size_t InputRank, std::size_t ReducedRank, uni20::MdspecLike InputMdspan>
requires reduction_detail::HostOutput<Output> && uni20::HostReadableMdspec<InputMdspan>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, sum_reduction_op< InputRank, ReducedRank > const &operation, Output &output, InputMdspan &input)
 Resolve host access and sum selected axes.
 

Detailed Description

Reference CPU tensor reduction kernels.