7#include <batchlas/export.hh>
30using ormqr =
Event(Queue&,
31 const MatrixView<T, MatrixFormat::Dense>&,
32 const MatrixView<T, MatrixFormat::Dense>&,
37using ormqr_buffer_size = size_t(Queue&,
38 const MatrixView<T, MatrixFormat::Dense>&,
39 const MatrixView<T, MatrixFormat::Dense>&,
46using ormqr_vendor =
Event(Queue&,
47 const MatrixView<T, MatrixFormat::Dense>&,
48 const MatrixView<T, MatrixFormat::Dense>&,
52using ormqr_vendor_buffer_size = size_t(Queue&,
53 const MatrixView<T, MatrixFormat::Dense>&,
54 const MatrixView<T, MatrixFormat::Dense>&,
101template <Backend B,
typename T>
109 int32_t block_size_hint = 0);
117template <Backend B,
typename T>
124 int32_t block_size_hint = 0);
132template <Backend B,
typename T>
143template <Backend B,
typename T>
Non-owning view of a batch of matrices: the argument type of every entry point.
Enumerations, scalar traits and scalar concepts shared by every public header.
Event ormqr_vendor(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau, Span< std::byte > workspace)
Vendor arm of ormqr() (cuSOLVER / rocSOLVER / LAPACKE); not for direct use.
size_t ormqr_vendor_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau)
Workspace query of the vendor arm of ormqr().
Transpose
The operator op() applied to an operand: op(A) = A, A^T or A^H.
Side
Side on which a special operand multiplies: op(A) * B or B * op(A).
size_t ormqr_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau, int32_t block_size_hint=0)
Workspace, in bytes, that ormqr() needs for these operands on this queue.
Event ormqr(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &C, Side side, Transpose trans, Span< T > tau, Span< std::byte > workspace, int32_t block_size_hint=0)
Batched multiplication by the orthogonal/unitary Q from geqrf().
The batched containers: Matrix (owning), MatrixView (non-owning), KernelMatrixView (device-side),...
Span(T *, typename Span< T >::size_t) -> Span< T >
Blocked (WY) application of Q from geqrf reflectors.
Backend deduction from the Queue and the USM pointer check.
#define BATCHLAS_DISPATCH_ON_QUEUE(NAME)
Completion handle of enqueued work, returned by every entry point.
Event()
An empty Event, already complete.
Where BatchLAS work runs: a device, a backend, an ordered SYCL queue and a workspace arena.
Non-owning view of size() contiguous elements of type T.
batchlas::Device, batchlas::Event and batchlas::Queue: where work runs and how it is ordered.
batchlas::Span, the non-owning pointer + length every entry point takes for 1-D data.
Tuning constants, bucketed by problem order n, with runtime BATCHLAS_TUNE_* overrides.