Workspace queries, argument validation and the CTA ormqr kernel behind the QR entry points.
| size_t batchlas::ortho_buffer_size | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | A, | ||
| Transpose | transA, | ||
| OrthoAlgorithm | algo = OrthoAlgorithm::Chol2 ) |
Required workspace, in bytes, for ortho(); arguments as for the call itself.
| size_t batchlas::ortho_buffer_size | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | A, | ||
| const MatrixView< T, MatrixFormat::Dense > & | M, | ||
| Transpose | transA, | ||
| Transpose | transM, | ||
| OrthoAlgorithm | algo = OrthoAlgorithm::Chol2, | ||
| size_t | iterations = 2 ) |
Required workspace, in bytes, for the external-basis ortho(); same arguments.
| Event batchlas::ormqx_cta | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | a_in, | ||
| const VectorView< T > & | tau_in, | ||
| const MatrixView< T, MatrixFormat::Dense > & | c_in, | ||
| Uplo | factorization, | ||
| Side | side, | ||
| Transpose | trans, | ||
| int32_t | k, | ||
| const Span< std::byte > & | ws, | ||
| size_t | cta_wg_size_multiplier = 1 ) |
CTA-optimized application of Q from a QR/QL factorization (ORMQx/UNMQx semantics) for very small matrices: applies the implicit Q of the Householder reflectors (A, TAU) from GEQRF (Upper) or GEQLF (Lower) to C.
Overwrites c_in with op(Q) * C (Side::Left) or C * op(Q) (Side::Right), using the first k reflectors.
|
inline |
Validates the arguments of the positional geqrf() entry point.
Checks only non-negative extents. Rectangular A of either orientation is valid; the length of tau is checked by the option overloads.
| batchlas::invalid_argument | on negative extents |
| size_t batchlas::geqrf_buffer_size | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | A, | ||
| Span< T > | tau ) |
Workspace, in bytes, that geqrf() needs for this shape on this queue.
|
inline |
Validates the arguments of the positional orgqr() entry point.
Checks only non-negative extents. n <= m is not checked: an n > m view is served by the vendor kernel, the only one whose can_run admits it (src/ops/orgqr/orgqr.cc). The length of tau is checked by the option overloads.
| batchlas::invalid_argument | on negative extents |
| size_t batchlas::orgqr_buffer_size | ( | Queue & | ctx, |
| const MatrixView< T, MatrixFormat::Dense > & | A, | ||
| Span< T > | tau ) |
Workspace, in bytes, that orgqr() needs for this shape on this queue.
| size_t batchlas::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.
Makes the same kernel choice and block width as ormqr() from the same inputs, so the result is valid for a call with the same arguments and block_size_hint. evidence: docs/perf/qr.md#ormqr-one-route-resolution-for-the-call-and-its-size-query