|
Uni20
Asynchronous tensor and runtime library.
|
CUDA data-handle acquisition for buffer descriptors and tensor views. More...
#include <uni20/mdspan/conjugate_accessor.hpp>#include <uni20/storage/cuda_storage.hpp>#include <uni20/tensor/access.hpp>#include <concepts>#include <cstddef>#include <type_traits>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
Functions | |
| template<cuda::BufferMdspec Mdspec> requires std::is_const_v<typename std::remove_cvref_t<Mdspec>::element_type> | |
| auto | uni20::acquire_cuda_read_access_async (Mdspec const &mdspec, cuda::Stream const &stream) |
| Resolve borrowed CUDA read access synchronized with an operation stream. | |
| template<class Tensor > requires (!std::is_lvalue_reference_v<Tensor>) && TensorView<std::remove_cvref_t<Tensor>> && (!ImmediateTensorView<std::remove_cvref_t<Tensor>>) && OwningTensor<std::remove_cvref_t<Tensor>> && cuda::BufferMdspec<tensor_mdspec_t<std::remove_cvref_t<Tensor>>> && requires(Tensor&& tensor) { { std::move(tensor).release_storage() } -> std::same_as<typename std::remove_cvref_t<Tensor>::storage_type>; } | |
| auto | uni20::acquire_cuda_read_access_async (Tensor &&tensor, cuda::Stream const &stream) |
| Move an owning CUDA tensor into a stream-ordered read lease. | |
| template<class Tensor > requires TensorView<Tensor> && (!ImmediateTensorView<Tensor>) && cuda::BufferMdspec<tensor_mdspec_t<Tensor>> | |
| auto | uni20::acquire_cuda_read_access_async (Tensor &tensor, cuda::Stream const &stream) |
| Acquire stream-ordered read access as an immediately-ready awaitable. | |
| template<cuda::BufferMdspec Mdspec> requires std::is_const_v<typename std::remove_cvref_t<Mdspec>::element_type> | |
| auto | uni20::acquire_cuda_read_access_sync (Mdspec const &mdspec) |
| Host-wait for prior CUDA work and resolve a borrowed read descriptor. | |
| template<class Tensor > requires (!std::is_lvalue_reference_v<Tensor>) && TensorView<std::remove_cvref_t<Tensor>> && (!ImmediateTensorView<std::remove_cvref_t<Tensor>>) && OwningTensor<std::remove_cvref_t<Tensor>> && cuda::BufferMdspec<tensor_mdspec_t<std::remove_cvref_t<Tensor>>> && requires(Tensor&& tensor) { { std::move(tensor).release_storage() } -> std::same_as<typename std::remove_cvref_t<Tensor>::storage_type>; } | |
| auto | uni20::acquire_cuda_read_access_sync (Tensor &&tensor) |
| Move an owning CUDA tensor into a synchronized CUDA read lease. | |
| template<class Tensor > requires TensorView<Tensor> && (!ImmediateTensorView<Tensor>) && cuda::BufferMdspec<tensor_mdspec_t<Tensor>> | |
| auto | uni20::acquire_cuda_read_access_sync (Tensor &tensor) |
| Host-wait for prior CUDA work and acquire a CUDA-accessible read lease. | |
| template<class Mdspec > requires cuda::BufferMdspec<Mdspec> && MutableMdspecLike<Mdspec> | |
| auto | uni20::acquire_cuda_write_access_async (Mdspec &mdspec, cuda::Stream const &stream) |
| Resolve borrowed CUDA write access synchronized with an operation stream. | |
| template<class Tensor > requires MutableTensorView<Tensor> && (!MutableImmediateTensorView<Tensor>) && cuda::BufferMdspec<tensor_mdspec_t<Tensor>> && cuda::BufferMdspec<mutable_tensor_mdspec_t<Tensor>> | |
| auto | uni20::acquire_cuda_write_access_async (Tensor &tensor, cuda::Stream const &stream) |
| Acquire stream-ordered write access as an immediately-ready awaitable. | |
| template<class Mdspec > requires cuda::BufferMdspec<Mdspec> && MutableMdspecLike<Mdspec> | |
| auto | uni20::acquire_cuda_write_access_sync (Mdspec &mdspec) |
| Host-wait for prior CUDA work and resolve a borrowed write descriptor. | |
| template<class Tensor > requires MutableTensorView<Tensor> && (!MutableImmediateTensorView<Tensor>) && cuda::BufferMdspec<tensor_mdspec_t<Tensor>> && cuda::BufferMdspec<mutable_tensor_mdspec_t<Tensor>> | |
| auto | uni20::acquire_cuda_write_access_sync (Tensor &tensor) |
| Host-wait for prior CUDA work and acquire a CUDA-accessible write lease. | |
CUDA data-handle acquisition for buffer descriptors and tensor views.