|
Uni20
Asynchronous tensor and runtime library.
|
Ordered backend selector values shared by tensor storage and linalg dispatch. More...
#include <concepts>#include <string_view>#include <tuple>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| struct | uni20::linalg::backend_list< Backends > |
| Ordered list of backend values tried by the dispatch walk. More... | |
| struct | uni20::linalg::backend_selector_default< Operation, StoragePolicy > |
| Uni20-owned operation-specific default for a storage policy. More... | |
| struct | uni20::linalg::backend_selector_override< Operation, StoragePolicy > |
| Optional global backend-selector override for an operation and storage policy. More... | |
| struct | uni20::linalg::BlasBackend |
| Backend family for BLAS dense linalg kernels, including MPLAPACK scalar adapters. More... | |
| struct | uni20::linalg::CpuReferenceBackend |
| Backend value for the reference host CPU dense linalg oracle. More... | |
| struct | uni20::linalg::CublasBackend |
| Backend value for cuBLAS dense linalg kernels. More... | |
| struct | uni20::linalg::CudaReferenceBackend |
| Backend value for generic CUDA runtime kernels and transfers. More... | |
| struct | uni20::linalg::CusolverBackend |
| Backend value for cuSOLVER dense factorization kernels. More... | |
| struct | uni20::linalg::is_backend_list< T > |
| struct | uni20::linalg::is_backend_list< backend_list< Backends... > > |
| struct | uni20::linalg::LapackBackend |
| Backend family for configured dense LAPACK kernels, including MPLAPACK scalar adapters. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::linalg |
Concepts | |
| concept | uni20::linalg::KernelBackend |
| Named backend value accepted as one dispatch candidate. | |
| concept | uni20::linalg::KernelBackendSelector |
| Single named backend or ordered backend list accepted by dispatch front ends. | |
Functions | |
| template<class... Backends> | |
| uni20::linalg::backend_list (Backends...) -> backend_list< std::remove_cvref_t< Backends >... > | |
| template<class Backend > requires (!is_backend_list_v<Backend>) | |
| constexpr auto | uni20::linalg::normalize_backend_selector (Backend &&backend) |
| Treat a single backend value as a one-entry backend list. | |
| template<class... Backends> | |
| constexpr auto | uni20::linalg::normalize_backend_selector (backend_list< Backends... > selector) -> backend_list< Backends... > |
| Return an explicit backend list unchanged. | |
| template<class Operation , class FirstTensor , class... RestTensors> | |
| constexpr auto | uni20::linalg::select_backend (Operation const &operation, FirstTensor const &, RestTensors const &...) |
| Select the default backend list for an operation on Tensor operands. | |
| template<class FirstTensor , class... RestTensors, class Operation > | |
| constexpr auto | uni20::linalg::select_backend_for (Operation const &operation) |
| Resolve the immutable backend selector for Tensor operand types. | |
| template<class StoragePolicy , class Operation > | |
| constexpr auto | uni20::linalg::select_backend_for_storage (Operation const &operation) |
| Resolve a backend selector directly from one storage policy. | |
Variables | |
| template<class StoragePolicy > | |
| constexpr bool | uni20::linalg::enable_backend_neutral_storage = false |
| Opt-in marker for storage policies that do not constrain backend selection. | |
| template<class T > | |
| constexpr bool | uni20::linalg::is_backend_list_v = is_backend_list<std::remove_cvref_t<T>>::value |
Ordered backend selector values shared by tensor storage and linalg dispatch.