6#include <src/util/internal-api.hh>
7#include <src/util/resident_capacity.hh>
66 Queue& ctx,
int m,
int n);
87 Queue& ctx,
int m,
int n);
118 T* a_ptr,
int ld,
int stride,
119 int m,
int n,
int batch,
120 T* tau_ptr,
int tau_batch_stride,
int tau_offset,
121 bool* used_resident_out =
nullptr,
128 int m,
int n, std::size_t slm_budget_bytes,
133BATCHLAS_INTERNAL_API
bool geqrf_leaf_fits(
int m,
int n, std::size_t slm_budget_bytes);
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.
Transpose
The operator op() applied to an operand: op(A) = A, A^T or A^H.
ComputePrecision
Internal compute precision of a GEMM (the cuBLAS cublasComputeType_t).
The batched containers: Matrix (owning), MatrixView (non-owning), KernelMatrixView (device-side),...
BATCHLAS_INTERNAL_API unsigned geqrf_panel_reg_debug_launch(Queue &ctx, int m, int n)
BATCHLAS_INTERNAL_API bool geqrf_leaf_fits(int m, int n, std::size_t slm_budget_bytes)
BATCHLAS_INTERNAL_API int geqrf_panel_reg_cols()
BATCHLAS_INTERNAL_API int64_t geqrf_cta_max_elems_for_slm(std::size_t slm_budget_bytes, int min_blocks_per_sm=kGeqrfMinBlocksPerSm)
Event geqrf_panel_factorize(Queue &ctx, T *a_ptr, int ld, int stride, int m, int n, int batch, T *tau_ptr, int tau_batch_stride, int tau_offset, bool *used_resident_out=nullptr, GeqrfPanelLeaf leaf=GeqrfPanelLeaf::Auto, GeqrfPanelLeaf *leaf_used_out=nullptr)
BATCHLAS_INTERNAL_API Event geqrf_cta_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Span< T > tau, Span< std::byte > workspace)
std::function< Event( Queue &, const MatrixView< T, MatrixFormat::Dense > &, const MatrixView< T, MatrixFormat::Dense > &, const MatrixView< T, MatrixFormat::Dense > &, T, T, Transpose, Transpose, ComputePrecision)> GeqrfTrailingGemm
BATCHLAS_INTERNAL_API bool geqrf_panel_reg_preferred(int m, int n, int device_max_wg=1024)
BATCHLAS_INTERNAL_API unsigned geqrf_tiny_debug_launch(Queue &ctx, int n)
BATCHLAS_INTERNAL_API Event geqrf_blocked_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Span< T > tau, Span< std::byte > workspace, GeqrfTrailingGemm< T > trailing_gemm, GeqrfPanelLeaf panel_leaf=GeqrfPanelLeaf::Auto)
BATCHLAS_INTERNAL_API bool geqrf_cta_fits(int m, int n, std::size_t slm_budget_bytes, int min_blocks_per_sm=kGeqrfMinBlocksPerSm)
BATCHLAS_INTERNAL_API std::size_t geqrf_cta_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
BATCHLAS_INTERNAL_API Event geqrf_tiny_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Span< T > tau, Span< std::byte > workspace)
BATCHLAS_INTERNAL_API int geqrf_panel_reg_max_m()
BATCHLAS_INTERNAL_API unsigned geqrf_blocked_debug_params(Queue &ctx, int m, int n)
BATCHLAS_INTERNAL_API std::size_t geqrf_blocked_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
constexpr int kGeqrfMinBlocksPerSm
BATCHLAS_INTERNAL_API bool geqrf_panel_reg_fits(int m, int n, int device_max_wg=1024)
BATCHLAS_INTERNAL_API int geqrf_cta_max_m_for_slm(std::size_t slm_budget_bytes, int min_blocks_per_sm=kGeqrfMinBlocksPerSm)
BATCHLAS_INTERNAL_API std::size_t geqrf_tiny_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
BATCHLAS_INTERNAL_API int geqrf_tiny_max_n_for_slm(std::size_t slm_budget_bytes)
BATCHLAS_INTERNAL_API bool geqrf_blocked_available()
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.