6#include <src/util/internal-api.hh>
7#include <src/util/resident_capacity.hh>
48 std::size_t slm_budget_bytes,
49 int min_blocks_per_sm = resident::kMinBlocksPerSm);
61 std::size_t slm_budget_bytes,
63 int min_blocks_per_sm = resident::kMinBlocksPerSm,
72 Queue& ctx,
int n,
int batch,
73 int min_blocks_per_sm = resident::kMinBlocksPerSm,
83 int min_blocks_per_sm = resident::kMinBlocksPerSm,
96 Queue& ctx,
int n,
int batch,
97 int min_blocks_per_sm = resident::kMinBlocksPerSm);
105 int min_blocks_per_sm = resident::kMinBlocksPerSm);
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.
Diag
Whether a triangular operand's diagonal is read or assumed to be one.
ComputePrecision
Internal compute precision of a GEMM (the cuBLAS cublasComputeType_t).
Uplo
Which triangle of a symmetric, Hermitian or triangular operand is referenced.
Side
Side on which a special operand multiplies: op(A) * B or B * op(A).
The batched containers: Matrix (owning), MatrixView (non-owning), KernelMatrixView (device-side),...
BATCHLAS_INTERNAL_API unsigned potrf_blocked_debug_params(Queue &ctx, int n)
BATCHLAS_INTERNAL_API std::size_t potrf_cta_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
std::function< Event( Queue &, const MatrixView< T, MatrixFormat::Dense > &, const MatrixView< T, MatrixFormat::Dense > &, const MatrixView< T, MatrixFormat::Dense > &, T, T, Transpose, Transpose, ComputePrecision)> PotrfTrailingGemm
BATCHLAS_INTERNAL_API Event potrf_tiny_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info)
BATCHLAS_INTERNAL_API int potrf_lpanel_max_n_for_slm(std::size_t slm_budget_bytes, int max_wg_size, int min_blocks_per_sm=resident::kMinBlocksPerSm, int nb_hint=0)
BATCHLAS_INTERNAL_API Event potrf_blocked_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info, PotrfTrailingGemm< T > trailing_gemm, PotrfPanelSolve< T > panel_solve)
BATCHLAS_INTERNAL_API Event potrf_lpanel_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info, int min_blocks_per_sm=resident::kMinBlocksPerSm, int nb_hint=0)
constexpr int kPotrfTinyWgSize
BATCHLAS_INTERNAL_API std::size_t potrf_blocked_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo)
BATCHLAS_INTERNAL_API unsigned potrf_lpanel_debug_launch(Queue &ctx, int n, int batch, int min_blocks_per_sm=resident::kMinBlocksPerSm, int nb_hint=0)
BATCHLAS_INTERNAL_API bool potrf_blocked_available()
BATCHLAS_INTERNAL_API int potrf_tiny_max_n()
BATCHLAS_INTERNAL_API std::size_t potrf_tiny_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
BATCHLAS_INTERNAL_API std::size_t potrf_lpanel_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
BATCHLAS_INTERNAL_API int potrf_cta_max_n_for_slm(std::size_t slm_budget_bytes, int min_blocks_per_sm=resident::kMinBlocksPerSm)
BATCHLAS_INTERNAL_API unsigned potrf_cta_debug_launch(Queue &ctx, int n, int batch, int min_blocks_per_sm=resident::kMinBlocksPerSm)
std::function< Event( Queue &, const MatrixView< T, MatrixFormat::Dense > &, const MatrixView< T, MatrixFormat::Dense > &, T, Side, Uplo, Transpose, Diag)> PotrfPanelSolve
BATCHLAS_INTERNAL_API Event potrf_cta_dispatch(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info, int min_blocks_per_sm=resident::kMinBlocksPerSm)
BATCHLAS_INTERNAL_API unsigned potrf_tiny_debug_launch(Queue &ctx, int n)
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.