|
Uni20
Asynchronous tensor and runtime library.
|
Classes | |
| class | AccessCompletion |
| One operation-tail completion shared by multiple CUDA buffer accesses. More... | |
| class | BlockingReadAccess |
| Scoped read-only CUDA pointer access after a host-side synchronization. More... | |
| class | BlockingWriteAccess |
| Scoped read/write CUDA pointer access after a host-side synchronization. More... | |
| class | Completion |
| Shared completion token for one submitted CUDA operation. More... | |
| class | CudaBuffer |
| Move-only logical CUDA buffer and completion state. More... | |
| struct | CudaBufferRange |
| One logical range used to partition a CUDA allocation. More... | |
| class | CudaBufferView |
| Non-owning opaque view into one logical CUDA buffer. More... | |
| class | CudaComplexReference |
| Assignable CUDA execution proxy over one persistent complex value. More... | |
| struct | CudaConjugate |
| Named CUDA-callable complex conjugation operation. More... | |
| struct | CudaConjugatingPointerAccessor |
| Read-only CUDA accessor that conjugates persistent complex storage. More... | |
| struct | CudaPointerAccessor |
| Accessor for a CUDA mdspan whose device pointer has been leased. More... | |
| struct | CudaPointerAccessor< uni20::detail::standard_complex< Real > > |
Mutable CUDA accessor for persistent uni20::complex storage. | |
| struct | CudaPointerAccessor< uni20::detail::standard_complex< Real > const > |
Read-only CUDA accessor for persistent uni20::complex storage. | |
| class | CudaRuntimeError |
| Exception carrying a failed CUDA runtime operation and status. More... | |
| class | Device |
| Validated CUDA device identity with cached immutable capabilities. More... | |
| struct | DeviceCapabilities |
| Immutable hardware properties cached for one CUDA device ordinal. More... | |
| class | DeviceResources |
| Mutable stream and provider resources associated with one CUDA device. More... | |
| class | OwningReadAccess |
| Read access that owns a moved CUDA buffer. More... | |
| class | PartitionedCudaBuffer |
| One CUDA allocation partitioned into independent logical buffers. More... | |
| class | PartitionedReadAccess |
| Scoped read access to every child of one partitioned CUDA allocation. More... | |
| class | PartitionedWriteAccess |
| Scoped write access to every child of one partitioned CUDA allocation. More... | |
| class | ReadAccess |
| Scoped read-only access to a CUDA buffer on one stream. More... | |
| class | ResourceLease |
| Move-only exclusive lease of one provider-resource pool slot. More... | |
| class | ResourcePool |
| Fixed-capacity pool of preconstructed provider resources. More... | |
| class | Runtime |
| Scoped owner of the process-wide CUDA resource installation. More... | |
| struct | RuntimeConfig |
| Configuration for one scoped process-wide CUDA runtime installation. More... | |
| class | ScopedDevice |
| Temporarily select one CUDA device and restore the previous device on destruction. More... | |
| class | Stream |
| Reference-counted lease of one CUDA stream-pool slot. More... | |
| class | StreamPool |
| Device-local pool whose streams become available only after their queued work completes. More... | |
| class | WriteAccess |
| Scoped read/write access to a CUDA buffer on one stream. More... | |
Concepts | |
| concept | BufferMdspec |
CUDA-accessible mdspec backed by a CudaBufferView descriptor. | |
Functions | |
| void | check (cudaError_t status, std::string_view operation, std::optional< int > device=std::nullopt, std::source_location where=std::source_location::current()) |
Raise when a CUDA runtime operation did not return cudaSuccess. | |
| template<class ElementType > requires (!std::is_const_v<ElementType>) | |
| UNI20_HOST_DEVICE constexpr auto | const_accessor (CudaPointerAccessor< ElementType > const &) |
| Produce a read-only CUDA pointer accessor without a generic lvalue adaptor. | |
| DeviceResources & | device_resources () |
| Return canonical resources for the installed runtime's default device. | |
| DeviceResources & | device_resources (int device) |
| Return canonical resources for an enrolled CUDA device. | |
| presentation::report_builder | diagnostic_report (CudaRuntimeError const &error) |
| Build a presentation report for a CUDA runtime failure. | |
| Runtime | initialize (RuntimeConfig config={}) |
| Install and return a scoped process-wide CUDA runtime owner. | |
| bool | is_initialized () noexcept |
| Return whether a process-wide CUDA runtime is currently installed. | |
| void | raise_runtime_error (cudaError_t status, std::string_view operation, std::optional< int > device=std::nullopt, std::source_location where=std::source_location::current()) |
| Raise a structured CUDA runtime failure through Uni20's error boundary. | |
| Runtime & | runtime () |
| Return the installed runtime or fail when CUDA was not initialized. | |
| void uni20::cuda::check | ( | cudaError_t | status, |
| std::string_view | operation, | ||
| std::optional< int > | device, | ||
| std::source_location | where | ||
| ) |
Raise when a CUDA runtime operation did not return cudaSuccess.
|
constexpr |
Produce a read-only CUDA pointer accessor without a generic lvalue adaptor.
| DeviceResources & uni20::cuda::device_resources | ( | ) |
Return canonical resources for the installed runtime's default device.
| DeviceResources & uni20::cuda::device_resources | ( | int | device | ) |
Return canonical resources for an enrolled CUDA device.
|
inline |
Build a presentation report for a CUDA runtime failure.
| Runtime uni20::cuda::initialize | ( | RuntimeConfig | config = {} | ) |
Install and return a scoped process-wide CUDA runtime owner.
Only one installation may be active. Retain the returned object at the application startup boundary for as long as CUDA objects exist.
|
noexcept |
Return whether a process-wide CUDA runtime is currently installed.
| void uni20::cuda::raise_runtime_error | ( | cudaError_t | status, |
| std::string_view | operation, | ||
| std::optional< int > | device, | ||
| std::source_location | where | ||
| ) |
Raise a structured CUDA runtime failure through Uni20's error boundary.
| Runtime & uni20::cuda::runtime | ( | ) |
Return the installed runtime or fail when CUDA was not initialized.