batchlas Namespace Reference

Functions

◆ to_string()

std::string_view batchlas::to_string ( ScalarKind s)
inlineconstexpr

Definition at line 37 of file no_route.hh.

◆ op_name()

std::string_view batchlas::op_name ( Op o)
inlineconstexpr

Definition at line 47 of file no_route.hh.

◆ Span() [1/4]

template<typename T>
batchlas::Span ( T * ,
typename Span< T >::size_t  ) -> Span< T >

◆ Span() [2/4]

template<typename T>
batchlas::Span ( T * ,
std::size_t  ) -> Span< T >

◆ Span() [3/4]

template<typename T>
batchlas::Span ( T * ,
T *  ) -> Span< T >

◆ Span() [4/4]

template<typename T>
batchlas::Span ( T & ) -> Span< T >

◆ stedc_dispatch()

template<Backend B, typename T>
Event batchlas::stedc_dispatch ( Queue & ctx,
const VectorView< T > & d,
const VectorView< T > & e,
const VectorView< T > & eigenvalues,
const Span< std::byte > & ws,
JobType jobz,
StedcParams< T > params,
const MatrixView< T, MatrixFormat::Dense > & eigvects,
Span< int32_t > info = Span< int32_t >() )

◆ plan_stedc_levels()

StedcLevelPlan batchlas::plan_stedc_levels ( int64_t n,
int64_t threshold )
inline

Definition at line 19 of file stedc_levels_plan.hh.

◆ maybe_rescale_vectors()

template<typename T, typename Adapter, typename QBatch, typename VView>
void batchlas::maybe_rescale_vectors ( bool do_rescale,
const Adapter & adapter,
int32_t first,
int32_t stride,
int32_t dd,
QBatch & Q_bid,
const VectorView< T > & d_prob,
const VView & v,
int32_t bid )
inline

Definition at line 53 of file stedc_merge_kernels.hh.

◆ stedc_merge_fused()

template<Backend B, typename T>
void batchlas::stedc_merge_fused ( Queue & ctx,
const VectorView< T > & eigenvalues,
const VectorView< T > & v,
const Span< T > & rho,
const Span< int32_t > & n_reduced,
const MatrixView< T, MatrixFormat::Dense > & Qprime,
const VectorView< T > & temp_lambdas,
const StedcParams< T > & params,
int32_t * info,
int64_t info_nodes_per_item )

◆ stedc_merge_fused_cta()

template<Backend B, typename T>
void batchlas::stedc_merge_fused_cta ( Queue & ctx,
const VectorView< T > & eigenvalues,
const VectorView< T > & v,
const Span< T > & rho,
const Span< int32_t > & n_reduced,
const MatrixView< T, MatrixFormat::Dense > & Qprime,
const VectorView< T > & temp_lambdas,
const StedcParams< T > & params,
int32_t * info,
int64_t info_nodes_per_item )

◆ stedc_merge_dispatch()

template<Backend B, typename T>
void batchlas::stedc_merge_dispatch ( Queue & ctx,
const VectorView< T > & eigenvalues,
const VectorView< T > & v,
const Span< T > & rho,
const Span< int32_t > & n_reduced,
const MatrixView< T, MatrixFormat::Dense > & Qprime,
const VectorView< T > & temp_lambdas,
const StedcParams< T > & params,
int32_t * info,
int64_t info_nodes_per_item )

◆ sec_solve_ext_roc()

template<typename T>
SYCL_EXTERNAL T batchlas::sec_solve_ext_roc ( const int32_t dd,
const VectorView< T > & D,
const VectorView< T > & z,
const T p,
bool & converged_out )

◆ sec_solve_roc()

template<typename T>
SYCL_EXTERNAL T batchlas::sec_solve_roc ( int32_t dd,
const VectorView< T > & d,
const VectorView< T > & z,
const T & rho,
const int32_t k,
bool & converged_out )

◆ secular_solver()

template<typename T>
Event batchlas::secular_solver ( Queue & ctx,
const VectorView< T > & d,
const VectorView< T > & v,
const MatrixView< T, MatrixFormat::Dense > & Qprime,
const VectorView< T > & lambdas,
const Span< int32_t > & n_reduced,
const Span< T > rho,
const T & tol_factor = 10.0,
int32_t * info = nullptr,
int64_t info_nodes_per_item = 1 )

◆ cta_lartg()

template<typename T>
cta_rotation< T > batchlas::cta_lartg ( const T f,
const T g )
inline

Definition at line 33 of file steqr_cta_device.hh.

◆ deflate()

template<typename T, typename Partition>
void batchlas::deflate ( Partition partition,
T & e,
T & d,
int32_t n,
int32_t start_ix,
int32_t end_ix )
inline

Definition at line 200 of file steqr_cta_device.hh.

◆ reverse_block()

template<size_t P, typename T, typename Partition, typename QCache>
void batchlas::reverse_block ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t bb,
int32_t be,
bool rev )
inline

Definition at line 231 of file steqr_cta_device.hh.

◆ partition_reduce_min()

template<size_t P, typename Partition>
int32_t batchlas::partition_reduce_min ( const Partition & partition,
int32_t value )
inline

Definition at line 249 of file steqr_cta_device.hh.

◆ partition_reduce_fmax()

template<size_t P, typename T, typename Partition>
T batchlas::partition_reduce_fmax ( const Partition & partition,
T value )
inline

Definition at line 259 of file steqr_cta_device.hh.

◆ solve_2x2_and_update()

template<typename T, size_t P, typename Partition, typename QCache>
void batchlas::solve_2x2_and_update ( Partition partition,
T & diag,
T & offdiag,
int32_t l0,
QCache & qcache,
bool pred = true )
inline

Definition at line 268 of file steqr_cta_device.hh.

◆ implicit_ql_step()

template<typename T, size_t P, bool Pad = false, typename Partition, typename QCache>
void batchlas::implicit_ql_step ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t n,
int32_t l,
int32_t m,
SteqrShiftStrategy shift_strategy,
SteqrUpdateScheme update_scheme,
bool active = true )
inline

Definition at line 300 of file steqr_cta_device.hh.

◆ steqr_cta_solve_nested()

template<typename T, size_t P, typename Partition, typename QCache>
bool batchlas::steqr_cta_solve_nested ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t n,
int32_t max_sweeps,
SteqrShiftStrategy cta_shift_strategy,
SteqrUpdateScheme cta_update_scheme )
inline

Definition at line 547 of file steqr_cta_device.hh.

◆ steqr_cta_solve_flat()

template<typename T, size_t P, typename Partition, typename QCache>
bool batchlas::steqr_cta_solve_flat ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t n,
int32_t max_sweeps,
SteqrShiftStrategy cta_shift_strategy,
SteqrUpdateScheme cta_update_scheme )
inline

Definition at line 691 of file steqr_cta_device.hh.

◆ steqr_cta_solve_lockstep()

template<typename T, size_t P, typename Partition, typename QCache>
bool batchlas::steqr_cta_solve_lockstep ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t n,
int32_t max_sweeps,
SteqrShiftStrategy cta_shift_strategy,
SteqrUpdateScheme cta_update_scheme )
inline

Definition at line 828 of file steqr_cta_device.hh.

◆ steqr_cta_solve()

template<typename T, size_t P, typename Partition, typename QCache>
bool batchlas::steqr_cta_solve ( const Partition & partition,
T & diag,
T & offdiag,
QCache & qcache,
int32_t n,
int32_t max_sweeps,
SteqrShiftStrategy cta_shift_strategy,
SteqrUpdateScheme cta_update_scheme )
inline

Definition at line 982 of file steqr_cta_device.hh.

◆ steqr_legacy()

template<Backend B, typename T>
Event batchlas::steqr_legacy ( Queue & ctx,
const VectorView< T > & d_in,
const VectorView< T > & e_in,
const VectorView< T > & eigenvalues,
const Span< std::byte > & ws,
JobType jobz,
SteqrParams< T > params,
const MatrixView< T, MatrixFormat::Dense > & eigvects,
Span< int32_t > info = Span< int32_t >() )

◆ steqr_legacy_buffer_size()

template<typename T>
size_t batchlas::steqr_legacy_buffer_size ( Queue & ctx,
const VectorView< T > & d,
const VectorView< T > & e,
const VectorView< T > & eigenvalues,
JobType jobz,
SteqrParams< T > params )

◆ steqr_wg()

template<Backend B, typename T>
Event batchlas::steqr_wg ( Queue & ctx,
const VectorView< T > & d_in,
const VectorView< T > & e_in,
const VectorView< T > & eigenvalues,
const Span< std::byte > & ws,
JobType jobz,
SteqrParams< T > params,
const MatrixView< T, MatrixFormat::Dense > & eigvects,
Span< int32_t > info = Span< int32_t >() )

◆ steqr_wg_buffer_size()

template<typename T>
size_t batchlas::steqr_wg_buffer_size ( Queue & ctx,
const VectorView< T > & d,
const VectorView< T > & e,
const VectorView< T > & eigenvalues,
JobType jobz,
SteqrParams< T > params )

◆ steqr_dispatch()

template<Backend B, typename T>
Event batchlas::steqr_dispatch ( Queue & ctx,
const VectorView< T > & d_in,
const VectorView< T > & e_in,
const VectorView< T > & eigenvalues,
const Span< std::byte > & ws,
JobType jobz,
SteqrParams< T > params,
const MatrixView< T, MatrixFormat::Dense > & eigvects,
Span< int32_t > info = Span< int32_t >() )

◆ group_reduce_sum_select_from_group()

template<typename T, typename Group>
T batchlas::group_reduce_sum_select_from_group ( const Group & g,
T v )
inline

Definition at line 19 of file sytrd_cta_device.hh.

◆ larfg_small()

template<typename T, typename Partition>
T batchlas::larfg_small ( const Partition & part,
int32_t len,
int32_t lane,
int32_t alpha_lane,
T & alpha,
T & x,
bool x_active )
inline

Definition at line 43 of file sytrd_cta_device.hh.

◆ sytd2_cta_upper_partition()

template<typename T, int32_t LDA, typename LocalPtr, typename Partition>
T batchlas::sytd2_cta_upper_partition ( const Partition & part,
LocalPtr A_local,
LocalPtr V_local,
LocalPtr W_local,
int32_t n,
int32_t lane )
inline

Definition at line 88 of file sytrd_cta_device.hh.

◆ mirror_upper_to_lower()

template<Backend B, typename T>
Event batchlas::mirror_upper_to_lower ( Queue & ctx,
const MatrixView< T, MatrixFormat::Dense > & a )

◆ syevx_select_preconditioner()

SyevxPreconditioner batchlas::syevx_select_preconditioner ( SyevxPreconditioner requested,
bool iluk_configured,
bool find_largest )

Enumerations

◆ Op

enum class batchlas::Op : uint8_t
strong
Enumerator
gemm 
gemv 
trsm 
trmm 
symm 
hemm 
syrk 
herk 
syr2k 
her2k 
potrf 
getrf 
getrs 
getri 
geqrf 
orgqr 
ormqr 
syev 
gesvd 
spmm 
gesv 
posv 
COUNT 

Definition at line 21 of file no_route.hh.

◆ ScalarKind

enum class batchlas::ScalarKind : uint8_t
strong
Enumerator
F32 
F64 
C32 
C64 

Definition at line 28 of file no_route.hh.

Variables

◆ scalar_kind_of

template<typename T>
ScalarKind batchlas::scalar_kind_of
inlineconstexpr
Initial value:
=
std::is_same_v<T, float> ? ScalarKind::F32 :
std::is_same_v<T, double> ? ScalarKind::F64 :
std::is_same_v<T, std::complex<float>> ? ScalarKind::C32 :

Definition at line 31 of file no_route.hh.

◆ kSteqrCtaFlatPays

template<typename T, size_t P>
bool batchlas::kSteqrCtaFlatPays = (P == 16) || (P == 8 && std::is_same_v<T, double>)
inlineconstexpr

Definition at line 971 of file steqr_cta_device.hh.

Namespaces

namespace  backend
namespace  coverage
namespace  csr_generators
 Random sparse test-matrix generators.
namespace  detail
namespace  device
namespace  geqrf_native
namespace  getrf_native
namespace  internal
namespace  linalg
namespace  ops
namespace  portable
namespace  potrf_native
namespace  select
namespace  sycl_gemm
namespace  sycl_gemm_small
namespace  sycl_gemv
namespace  sycl_geqrf
namespace  sycl_gesvd
namespace  sycl_getrf
namespace  sycl_getri
namespace  sycl_getrs
namespace  sycl_orgqr
namespace  sycl_potrf
namespace  sycl_spmm
namespace  sycl_trsm
namespace  tuning
namespace  util
namespace  verify

Classes

class  api_misuse
 A well-formed call arrived in a state, order or thread where it is not valid. More...
class  BackendMatrixHandle
 Backend-library descriptor for a matrix (cuSPARSE / rocSPARSE handles); defined in src/. More...
struct  base_type
 Real type underlying a scalar: T itself for a real T, R for std::complex<R>. More...
struct  base_type< std::complex< T > >
 Specialisation that strips std::complex. More...
struct  BatchedMatrixDecomposition
 Result of compute_batched_matrix_decomposition(). More...
struct  BatchedNdRangeSizes
 Result of compute_batched_nd_range_sizes(). More...
struct  BatchSize
 Number of batch items, as a distinct type. More...
struct  BumpAllocator
 Linear (bump) sub-allocator over a caller-supplied workspace buffer. More...
class  convergence_error
 An iterative kernel did not converge, or a factorisation broke down on the data. More...
struct  cta_rotation
struct  Device
 A handle to one SYCL device: its type and its index among devices of that type. More...
class  device_error
 The device or its vendor runtime failed. More...
struct  DiagnosticsSettings
 Tracing, dumping, profiling and the opt-in checks. More...
class  EnvValue
 A raw captured environment value, shaped like the std::getenv call it replaces. More...
class  error
 Base of the runtime arm: the call failed for a reason that is not a bad argument. More...
struct  Event
 Completion handle of enqueued work, returned by every entry point. More...
class  exception
 Empty tag base of every BatchLAS exception. More...
struct  GemmOptions
 Options for gemm(): \(C := \alpha\,\mathrm{op}(A)\,\mathrm{op}(B) + \beta C\). More...
struct  GemvOptions
 Options for gemv(): \(y := \alpha\,\mathrm{op}(A)\,x + \beta y\). More...
struct  GeometrySettings
 Launch geometry, block widths, iteration counts and tuning thresholds. More...
struct  GesvdjParams
 Parameters for the one-sided Jacobi SVD (gesvdj_cta). More...
struct  GesvdOptions
 Options for gesvd(): \(A = U\Sigma V^H\). More...
struct  GetrsOptions
 Options for getrs(): solve \(\mathrm{op}(A)X = B\) with getrf's factors. More...
struct  HemmOptions
 Options for hemm(): as SymmOptions, with A Hermitian. More...
struct  Her2kOptions
 Options for her2k(): \(C := \alpha\,\mathrm{op}(A)\,\mathrm{op}(B)^H + \bar\alpha\,\mathrm{op}(B)\,\mathrm{op}(A)^H + \beta C\). More...
struct  HerkOptions
 Options for herk(): \(C := \alpha\,\mathrm{op}(A)\,\mathrm{op}(A)^H + \beta C\). More...
struct  ILUKParams
 Parameters of an incomplete LU factorization with level-of-fill k, ILU(k). More...
struct  ILUKPreconditioner
 Owning ILU(k) factor of a batch of CSR matrices sharing one pattern. More...
struct  ILUKView
 Non-owning description of a factored ILU(k) preconditioner. More...
struct  Inc
 Element distance between consecutive vector entries, as a distinct type. More...
class  internal_error
 BatchLAS is internally inconsistent. More...
class  invalid_argument
 The call violates the API contract. More...
struct  is_std_array
 True for std::array<T, N>, false otherwise. More...
struct  is_std_array< std::array< T, N > >
 Specialisation for std::array<T, N>. More...
struct  is_std_complex
 True for std::complex<R>, false otherwise. More...
struct  is_std_complex< std::complex< T > >
 Specialisation for std::complex<R>. More...
struct  JacobiParams
 Parameters for syev_jacobi_cta() (cyclic two-sided Jacobi). More...
struct  KernelMatrixView
 Trivially copyable view of a MatrixView for use inside a SYCL kernel. More...
struct  LanczosParams
 Parameters for lanczos(). More...
struct  Ld
 Leading dimension (column pitch), as a distinct type (0 = packed). More...
class  Matrix
 Owning batch of batch_size() matrices of equal (capacity) shape. More...
class  MatrixView
 Non-owning view of a batch of matrices: the argument type of every entry point. More...
struct  NonZeros
 Non-zero count (per-item capacity) of a CSR matrix, as a distinct type. More...
class  NoRouteError
struct  OrmqrOptions
 Options for ormqr(): apply geqrf()'s Q, \(C := \mathrm{op}(Q)C\) (Left) or \(C\,\mathrm{op}(Q)\) (Right). More...
struct  OrthoAgainstOptions
 Options for the option-struct ortho() against an external basis M. More...
struct  OrthoOptions
 Options for the option-struct ortho(); fields as the positional arguments. More...
class  out_of_range
 An index is outside its container. More...
struct  PotrfOptions
 Options for potrf(): Cholesky \(A = LL^H\) (Lower) or \(U^HU\) (Upper). More...
struct  QSharedCache
struct  QSharedCache< T, P, LDQ, false, LocalAcc >
struct  QSharedCache< T, P, LDQ, true, LocalAcc >
struct  Queue
 Where BatchLAS work runs: a device, a backend, an ordered SYCL queue and a workspace arena. More...
struct  RoutingSettings
 The route pins: BATCHLAS_<OP>_ROUTE, one raw string per op that selects a kernel. More...
class  ScopedEnvVar
 Sets (or unsets) an environment variable for a scope and restores it on exit. More...
struct  SelectionSettings
 Which kernel or algorithm runs, for the knobs outside the route pins. More...
struct  Settings
 Everything BatchLAS reads from its environment, in one value. More...
struct  Slice
 A half-open index range [start, end) along one dimension. More...
struct  SliceEnd
 Marker for "to the end" in a Slice: Slice(k, SliceEnd{}) selects [k, dim). More...
struct  Span
 Non-owning view of size() contiguous elements of type T. More...
struct  StebzParams
 Parameters for stebz() (bisection on a symmetric tridiagonal matrix). More...
struct  StedcLevelPlan
struct  StedcParams
 Parameters for stedc(). More...
struct  SteinParams
 Parameters for stein() (inverse iteration on a symmetric tridiagonal). More...
struct  SteqrParams
 Parameters for steqr() and steqr_cta(), and for stedc()'s leaf solves. More...
struct  Stride
 Element distance between consecutive batch items, as a distinct type (0 = packed). More...
struct  SyevOptions
 Options for syev(): symmetric/Hermitian eigendecomposition. More...
struct  SyevxInstrumentation
 Optional per-iteration convergence histories recorded by the iterative syevx paths. More...
struct  SyevxParams
 Options for syevx(): algorithm family, convergence controls, preconditioning and which part of the spectrum to compute. More...
struct  SyevxResolvedRange
 Resolved, algorithm-independent description of the caller's request. More...
struct  SymmOptions
 Options for symm(): \(C := \alpha A B + \beta C\) (Left) or \(\alpha B A + \beta C\) (Right), A symmetric. More...
struct  Syr2kOptions
 Options for syr2k(): \(C := \alpha(\mathrm{op}(A)\,\mathrm{op}(B)^T + \mathrm{op}(B)\,\mathrm{op}(A)^T) + \beta C\). More...
struct  SyrkOptions
 Options for syrk(): \(C := \alpha\,\mathrm{op}(A)\,\mathrm{op}(A)^T + \beta C\). More...
struct  SytrdBandReductionParams
 Sweep schedule for sytrd_band_reduction() (successive band reduction). More...
struct  TrmmOptions
 Options for trmm(): \(C := \alpha\,\mathrm{op}(A)\,B\) (Left) or \(\alpha B\,\mathrm{op}(A)\) (Right). No beta. More...
struct  TrsmOptions
 Options for trsm(): solve \(\mathrm{op}(A)X = \alpha B\) (Left) or \(X\,\mathrm{op}(A) = \alpha B\) (Right). More...
struct  UnifiedVector
 Owning, growable array of T in USM shared memory (sycl::malloc_shared). More...
struct  UnsafeSettings
 The overrides that remove a guarantee: setting one can make a correct program crash, hang or silently compute wrong numbers. More...
class  unsupported
 No kernel, backend or vendor entry point in this build on this device serves the request. More...
struct  Vector
 Owning batch of batch_size() vectors of length size() in USM shared memory. More...
class  VectorView
 Non-owning view of a batch of strided vectors: the vector argument type of the entry points. More...
struct  WorkgroupAdapter
class  workspace_error
 The scratch the operation was handed is too small, or the allocator ran out of it. More...
class  WorkspaceLease
 A borrow of scratch memory from a Queue's workspace arena, returned to the arena when the handle goes out of scope. More...

Concepts

concept  RealScalar
 A real floating-point scalar (float, double).
concept  ComplexScalar
 A std::complex scalar (std::complex<float>, std::complex<double>).
concept  FloatingOrComplexScalar
 Any scalar the numerical entry points accept: real or complex floating point.
concept  DenseMatrixFormat
 Constrains a member or overload to dense storage.
concept  CsrMatrixFormat
 Constrains a member or overload to CSR storage.