|
Uni20
Asynchronous tensor and runtime library.
|
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>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. | |
Reference CPU tensor reduction kernels.