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

CUDA reference backend for registered elementwise transforms. More...

#include <uni20/backend/cuda/buffer.hpp>
#include <uni20/linalg/backends/cuda/elementwise_arithmetic.hpp>
#include <uni20/linalg/backends/cuda/elementwise_scale.hpp>
#include <uni20/linalg/backends/cuda/mdspec_traits.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/elementwise_functions.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/mdspan/concepts.hpp>
#include <uni20/mdspan/iteration_plan.hpp>
#include <uni20/storage/cuda_storage.hpp>
#include <array>
#include <concepts>
#include <cstddef>
#include <limits>
#include <memory>
#include <optional>
#include <tuple>
#include <type_traits>
#include <utility>
Include dependency graph for linalg/backends/cuda/transform.hpp:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<class Factor , uni20::MutableMdspecLike OutputMdspec, uni20::MdspecLike InputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_inplace_op< add_scaled< Factor > > const &, OutputMdspec &, InputMdspec &)
 Report CUDA eligibility for an in-place add-scaled transform.
 
template<detail::cuda_reference::RegisteredStatelessBinary Function, uni20::MutableMdspecLike OutputMdspec, uni20::MdspecLike InputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_inplace_op< Function > const &, OutputMdspec &, InputMdspec &)
 Report CUDA eligibility for a registered in-place binary transform.
 
template<class Factor , uni20::MutableMdspecLike OutputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_inplace_op< scale< Factor > > const &, OutputMdspec &)
 Report CUDA eligibility for in-place scaling.
 
template<class Value , uni20::MutableMdspecLike OutputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_op< constant< Value > > const &, OutputMdspec &)
 Report CUDA eligibility for a retained-value fill transform.
 
template<detail::cuda_reference::RegisteredStatelessUnary Function, uni20::MutableMdspecLike OutputMdspec, uni20::MdspecLike InputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_op< Function > const &, OutputMdspec &, InputMdspec &)
 Report CUDA eligibility for a registered stateless unary transform.
 
template<detail::cuda_reference::RegisteredStatelessBinary Function, uni20::MutableMdspecLike OutputMdspec, uni20::MdspecLike LhsMdspec, uni20::MdspecLike RhsMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_op< Function > const &, OutputMdspec &, LhsMdspec &, RhsMdspec &)
 Report CUDA eligibility for a registered stateless binary transform.
 
template<class Factor , uni20::MutableMdspecLike OutputMdspec, uni20::MdspecLike InputMdspec>
consteval auto uni20::linalg::kernel_accepts_types (CudaReferenceBackend const &, transform_op< scale< Factor > > const &, OutputMdspec &, InputMdspec &)
 Report CUDA eligibility for a registered unary scale transform.
 
template<class Factor , class OutputMdspec , class InputMdspec >
requires detail::cuda_reference::SupportedAddScaledMdspecs<OutputMdspec, InputMdspec, Factor>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_inplace_op< add_scaled< Factor > > const &operation, OutputMdspec &output, InputMdspec &input)
 Accumulate a scaled CUDA mdspec into another.
 
template<detail::cuda_reference::RegisteredStatelessBinary Function, class OutputMdspec , class InputMdspec >
requires detail::cuda_reference::SupportedInplaceStatelessBinaryMdspecs<OutputMdspec, InputMdspec, Function>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_inplace_op< Function > const &operation, OutputMdspec &output, InputMdspec &input)
 Apply a registered in-place binary transform to CUDA mdspecs.
 
template<class Factor , class OutputMdspec >
requires detail::cuda_reference::SupportedInplaceScaleMdspec<OutputMdspec, Factor>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_inplace_op< scale< Factor > > const &operation, OutputMdspec &output)
 Scale a CUDA mdspec in place.
 
template<class Value , class OutputMdspec >
requires detail::cuda_reference::SupportedFillMdspec<OutputMdspec, Value>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_op< constant< Value > > const &operation, OutputMdspec &output)
 Fill a CUDA mdspec with one retained scalar value.
 
template<detail::cuda_reference::RegisteredStatelessUnary Function, class OutputMdspec , class InputMdspec >
requires detail::cuda_reference::SupportedStatelessUnaryMdspecs<OutputMdspec, InputMdspec, Function>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_op< Function > const &operation, OutputMdspec &output, InputMdspec &input)
 Apply a registered stateless unary transform to CUDA mdspec operands.
 
template<detail::cuda_reference::RegisteredStatelessBinary Function, class OutputMdspec , class LhsMdspec , class RhsMdspec >
requires detail::cuda_reference::SupportedStatelessBinaryMdspecs<OutputMdspec, LhsMdspec, RhsMdspec, Function>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_op< Function > const &operation, OutputMdspec &output, LhsMdspec &lhs, RhsMdspec &rhs)
 Apply a registered stateless binary transform to CUDA mdspec operands.
 
template<class Factor , class OutputMdspec , class InputMdspec >
requires detail::cuda_reference::SupportedScaleMdspecs<OutputMdspec, InputMdspec, Factor>
KernelAttempt uni20::linalg::try_kernel (CudaReferenceBackend, transform_op< scale< Factor > > const &operation, OutputMdspec &output, InputMdspec &input)
 Apply a registered unary scale transform to CUDA mdspec operands.
 

Detailed Description

CUDA reference backend for registered elementwise transforms.