3#include <batchlas/export.hh>
15template <
typename T, MatrixFormat F>
16using spmm =
Event(Queue&,
17 const MatrixView<T, F>&,
18 const MatrixView<T, MatrixFormat::Dense>&,
19 const MatrixView<T, MatrixFormat::Dense>&,
22template <
typename T, MatrixFormat F>
23using spmm_buffer_size = size_t(Queue&,
24 const MatrixView<T, F>&,
25 const MatrixView<T, MatrixFormat::Dense>&,
26 const MatrixView<T, MatrixFormat::Dense>&,
30template <
typename T, MatrixFormat F>
31using spmm_vendor = spmm<T, F>;
32template <
typename T, MatrixFormat F>
33using spmm_vendor_buffer_size = spmm_buffer_size<T, F>;
74template <Backend B,
typename T, MatrixFormat MFormat>
104template <Backend B,
typename T, MatrixFormat MFormat>
126template <Backend B,
typename T, MatrixFormat MFormat>
139template <Backend B,
typename T, MatrixFormat MFormat>
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.
size_t spmm_vendor_buffer_size(Queue &ctx, const MatrixView< T, MFormat > &A, const MatrixView< T, MatrixFormat::Dense > &B_mat, const MatrixView< T, MatrixFormat::Dense > &C, T alpha, T beta, Transpose transA, Transpose transB)
Workspace bytes spmm_vendor needs; called by batchlas::spmm_buffer_size.
Event spmm_vendor(Queue &ctx, const MatrixView< T, MFormat > &A, const MatrixView< T, MatrixFormat::Dense > &B_mat, const MatrixView< T, MatrixFormat::Dense > &C, T alpha, T beta, Transpose transA, Transpose transB, Span< std::byte > workspace)
Vendor-library implementation of spmm (cuSPARSE, rocSPARSE, host).
Transpose
The operator op() applied to an operand: op(A) = A, A^T or A^H.
size_t spmm_buffer_size(Queue &ctx, const MatrixView< T, MFormat > &A, const MatrixView< T, MatrixFormat::Dense > &B_mat, const MatrixView< T, MatrixFormat::Dense > &C, T alpha, T beta, Transpose transA, Transpose transB)
Bytes of workspace spmm needs for these arguments.
Event spmm(Queue &ctx, const MatrixView< T, MFormat > &A, const MatrixView< T, MatrixFormat::Dense > &descrB, const MatrixView< T, MatrixFormat::Dense > &descrC, T alpha, T beta, Transpose transA, Transpose transB, Span< std::byte > workspace)
Batched sparse-times-dense matrix multiply.
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.