3#include <batchlas/export.hh>
26using syev =
Event(Queue&,
27 const MatrixView<T, MatrixFormat::Dense>&,
32using syev_buffer_size = size_t(Queue&,
33 const MatrixView<T, MatrixFormat::Dense>&,
38template <
typename T>
using syev_vendor = syev<T>;
39template <
typename T>
using syev_vendor_buffer_size = syev_buffer_size<T>;
81template <Backend B,
typename T>
97template <Backend B,
typename T>
114template <Backend B,
typename T>
134template <Backend B,
typename T>
144template <Backend B,
typename T>
Non-owning view of a batch of matrices: the argument type of every entry point.
size_t syev_vendor_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &descrA, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo)
Workspace, in bytes, for backend::syev_vendor().
Event syev_vendor(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &descrA, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info_out=Span< int32_t >())
The vendor solver's syev (cuSOLVER, rocSOLVER or a LAPACKE loop), as syev()'s vendor family calls it;...
size_t syev_buffer_size(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo)
Workspace, in bytes, that syev() needs for the same arguments.
Event syev(Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &descrA, Span< typename base_type< T >::type > eigenvalues, JobType jobtype, Uplo uplo, Span< std::byte > workspace, Span< int32_t > info)
Eigenvalues, and optionally eigenvectors, of a batch of symmetric/Hermitian matrices (LAPACK ?...
JobType
Whether an eigensolver computes eigenvectors (LAPACK jobz).
Uplo
Which triangle of a symmetric, Hermitian or triangular operand is referenced.
Everything <batchlas.hh> provides: containers, entry points, extensions and the linalg layer.
The batched containers: Matrix (owning), MatrixView (non-owning), KernelMatrixView (device-side),...
bool syev_supports_blocked(const Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo)
bool syev_supports_cta(const Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A)
bool syev_supports_two_stage(const Queue &ctx, const MatrixView< T, MatrixFormat::Dense > &A, Uplo uplo)
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)
Every BATCHLAS_* environment variable the library reads, captured once into batchlas::Settings,...
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.