Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Concepts | Functions
uni20::cuda Namespace Reference

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.
 

Function Documentation

◆ check()

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.

◆ const_accessor()

template<class ElementType >
requires (!std::is_const_v<ElementType>)
UNI20_HOST_DEVICE constexpr auto uni20::cuda::const_accessor ( CudaPointerAccessor< ElementType > const &  )
constexpr

Produce a read-only CUDA pointer accessor without a generic lvalue adaptor.

◆ device_resources() [1/2]

DeviceResources & uni20::cuda::device_resources ( )

Return canonical resources for the installed runtime's default device.

◆ device_resources() [2/2]

DeviceResources & uni20::cuda::device_resources ( int  device)

Return canonical resources for an enrolled CUDA device.

◆ diagnostic_report()

presentation::report_builder uni20::cuda::diagnostic_report ( CudaRuntimeError const &  error)
inline

Build a presentation report for a CUDA runtime failure.

◆ initialize()

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.

◆ is_initialized()

bool uni20::cuda::is_initialized ( )
noexcept

Return whether a process-wide CUDA runtime is currently installed.

◆ raise_runtime_error()

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()

Runtime & uni20::cuda::runtime ( )

Return the installed runtime or fail when CUDA was not initialized.