7#include <batchlas/export.hh>
23using getrs =
Event(Queue&,
24 const MatrixView<T, MatrixFormat::Dense>&,
25 const MatrixView<T, MatrixFormat::Dense>&,
29using getrs_buffer_size = size_t(Queue&,
30 const MatrixView<T, MatrixFormat::Dense>&,
31 const MatrixView<T, MatrixFormat::Dense>&,
36using getrs_vendor =
Event(Queue&,
37 const MatrixView<T,MatrixFormat::Dense>&,
38 const MatrixView<T,MatrixFormat::Dense>&,
44using getrs_vendor_buffer_size = size_t(Queue&,
45 const MatrixView<T,MatrixFormat::Dense>&,
46 const MatrixView<T,MatrixFormat::Dense>&,
67 "GETRS: Matrix dimensions cannot be negative (A: rows=" +
68 std::to_string(A.
rows()) +
", cols=" + std::to_string(A.
cols()) +
69 "; B: rows=" + std::to_string(B.
rows()) +
70 ", cols=" + std::to_string(B.
cols()) +
")");
100template <Backend Back,
typename T>
110template <Backend Back,
typename T>
126template <Backend Back,
typename T>
137template <Backend Back,
typename T>
Non-owning view of a batch of matrices: the argument type of every entry point.
int rows() const
Rows per item (the capacity on a heterogeneous batch).
int cols() const
Columns per item (the capacity on a heterogeneous batch).
The call violates the API contract.
Enumerations, scalar traits and scalar concepts shared by every public header.
size_t getrs_vendor_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &B, Transpose transA)
Workspace query of the vendor arm of getrs().
Event getrs_vendor(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &B, Transpose transA, Span< int64_t > pivots, Span< std::byte > work_space)
Vendor arm of getrs(); called by getrs() when it selects the vendor kernel family,...
Transpose
The operator op() applied to an operand: op(A) = A, A^T or A^H.
void getrs_validate_params(const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &B)
Validates the arguments of the positional getrs() entry point.
size_t getrs_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &B, Transpose transA)
Workspace, in bytes, that getrs() needs for these operands on this queue.
Event getrs(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, const MatrixView< T, MatrixFormat::Dense > &B, Transpose transA, Span< int64_t > pivots, Span< std::byte > work_space)
Batched solve of using the LU factors from getrf().
The batched containers: Matrix (owning), MatrixView (non-owning), KernelMatrixView (device-side),...
Span(T *, typename Span< T >::size_t) -> Span< T >
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.