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

Allocation-wide CUDA linear operations for partitioned buffers. More...

#include <uni20/backend/cuda/buffer.hpp>
#include <uni20/config.hpp>
#include <uni20/linalg/backends/cuda/elementwise_arithmetic.hpp>
#include <uni20/linalg/backends/cuda/elementwise_copy.hpp>
#include <uni20/linalg/backends/cuda/elementwise_plan.hpp>
#include <uni20/linalg/backends/cuda/elementwise_scale.hpp>
#include <array>
#include <concepts>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <type_traits>
Include dependency graph for partitioned_buffer_linear.hpp:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 
namespace  uni20::linalg::partitioned_buffer_detail
 

Functions

template<class Scalar , class Factor >
requires cuda_partitioned_scale_scalars<Scalar, Factor>
void uni20::linalg::cuda_partitioned_assign_scale (cuda::PartitionedCudaBuffer< Scalar > &output, Factor factor, cuda::PartitionedCudaBuffer< Scalar > const &input)
 Overwrite one partitioned CUDA allocation with a scaled peer allocation.
 
template<class Scalar , class Factor >
requires cuda_partitioned_scale_scalars<Scalar, Factor>
void uni20::linalg::cuda_partitioned_axpy (cuda::PartitionedCudaBuffer< Scalar > &output, Factor factor, cuda::PartitionedCudaBuffer< Scalar > const &input)
 Add a scaled partitioned CUDA allocation to another in place.
 
template<class Scalar , class Factor >
requires cuda_partitioned_scale_scalars<Scalar, Factor>
void uni20::linalg::cuda_partitioned_scale (cuda::PartitionedCudaBuffer< Scalar > &output, Factor factor)
 Scale a complete partitioned CUDA allocation in place.
 
template<class Scalar >
requires cuda_partitioned_fill_scalar<Scalar>
void uni20::linalg::cuda_partitioned_set_zero (cuda::PartitionedCudaBuffer< Scalar > &output)
 Set a complete partitioned CUDA allocation to numerical zero.
 
template<std::size_t OperandCount, std::size_t MaximumRank>
auto uni20::linalg::partitioned_buffer_detail::make_contiguous_plan (std::size_t size) -> detail::cuda_reference::LoweredStridedElementwisePlan< OperandCount, MaximumRank >
 
template<class... Accesses>
void uni20::linalg::partitioned_buffer_detail::publish (cuda::Stream const &stream, Accesses &... accesses)
 

Variables

template<class Scalar >
constexpr bool uni20::linalg::cuda_partitioned_fill_scalar = detail::cuda_reference::supports_elementwise_arithmetic<Scalar>
 Whether allocation-wide CUDA fill operations support Scalar.
 
template<class Scalar , class Factor >
constexpr bool uni20::linalg::cuda_partitioned_scale_scalars
 Whether allocation-wide CUDA scale operations support this scalar pair.
 

Detailed Description

Allocation-wide CUDA linear operations for partitioned buffers.