|
Uni20
Asynchronous tensor and runtime library.
|
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>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. | |
CUDA reference backend for registered elementwise transforms.