|
| template<class ElementType > |
| static auto | allocation_context (packed_storage_t< ElementType > const &storage) noexcept -> context_type & |
| | Return the allocation context retained by a packed CUDA buffer.
|
| |
| static constexpr auto | backend_selector () noexcept -> backend_selector_type |
| | Return the ordered backend list for CUDA device storage.
|
| |
| template<RealOrComplex ElementType> |
| static void | initialize_packed_padding (packed_storage_t< ElementType > &storage, std::span< std::size_t const > offsets, std::span< std::size_t const > block_ends) |
| | Initialize only the alignment gaps in a packed CUDA allocation.
|
| |
| template<class ElementType > |
| static auto | make_data_descriptor (storage_t< ElementType > &storage) noexcept -> cuda::CudaBufferView< ElementType > |
| |
| template<class ElementType > |
| static auto | make_data_descriptor (storage_t< ElementType > const &storage) noexcept -> cuda::CudaBufferView< ElementType const > |
| |
| template<class ElementType > |
| static auto | make_packed_data_descriptor (packed_storage_t< ElementType > &storage, std::size_t ordinal) noexcept -> cuda::CudaBufferView< ElementType > |
| |
| template<class ElementType > |
| static auto | make_packed_data_descriptor (packed_storage_t< ElementType > const &storage, std::size_t ordinal) noexcept -> cuda::CudaBufferView< ElementType const > |
| |
| template<class ElementType > |
| static auto | make_packed_storage (context_type &context, std::size_t size, std::span< std::size_t const > offsets, StorageInitialization initialization=StorageInitialization::Uninitialized) -> packed_storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_packed_storage (cuda::Device device, std::size_t size, std::span< std::size_t const > offsets, StorageInitialization initialization=StorageInitialization::Uninitialized) -> packed_storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_packed_storage (std::size_t size, std::span< std::size_t const > offsets, StorageInitialization initialization=StorageInitialization::Uninitialized) -> packed_storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_packed_storage_like (packed_storage_t< ElementType > const &storage, std::size_t size, std::span< std::size_t const > offsets, StorageInitialization initialization=StorageInitialization::Uninitialized) -> packed_storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_storage (context_type &context, std::size_t size, StorageInitialization initialization=StorageInitialization::Uninitialized) -> storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_storage (cuda::Device device, std::size_t size, StorageInitialization initialization=StorageInitialization::Uninitialized) -> storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_storage (std::size_t size, StorageInitialization initialization=StorageInitialization::Uninitialized) -> storage_t< ElementType > |
| |
| template<class ElementType > |
| static auto | make_storage_like (storage_t< ElementType > const &storage, std::size_t size, StorageInitialization initialization=StorageInitialization::Uninitialized) -> storage_t< ElementType > |
| |
| template<class ElementType > |
| static bool | storage_is_compatible (storage_t< ElementType > const &storage, cuda::Device device) |
| |
Tensor storage policy for device-resident CUDA values.
Ordinary allocation uses the installed CUDA runtime's default device. An explicit cuda::DeviceResources selects another enrolled device or an isolated resource set used by tests. The policy selects CUDA backends and exposes deferred CudaBufferView descriptors with eventual pointer accessors. Stream and provider-resource admission remains operation-local. Direct Tensor operations may block during admission. Async<Tensor> operations use coroutine-aware dispatch when a backend provides it, while retaining the same storage and mdspec representation. Elements must be trivially copyable; owning MPFR/MPC scalars require host storage. This representation requirement does not imply that a CUDA kernel supports arithmetic on the type.