Everything reachable from #include <batchlas.hh>, plus the two opt-in SYCL headers.
Every entry point enqueues on a batchlas::Queue and returns a batchlas::Event; nothing is readable until the queue (or the event) is waited on. The backend is taken from the Queue, options are designated-initialiser structs, and scratch comes from the Queue's workspace arena. The conventions shared by all entry points are in The BatchLAS C++ API.
Topics | |
| Queues, devices and events | |
| batchlas::Queue, batchlas::Device, batchlas::Event and SYCL interop. | |
| Matrices, views and vectors | |
| Column-major batched containers and the non-owning views every entry point takes. | |
| Enumerations and scalar concepts | |
| Transpose, Uplo, Side, Diag, Backend and the scalar concepts that constrain every template. | |
| Option structs | |
| Designated-initialiser option structs accepted by the entry points. | |
| BLAS level 2 | |
| Batched matrix-vector operations. | |
| BLAS level 3 | |
| Batched matrix-matrix operations: gemm, trsm, trmm, symm/hemm, syrk/herk, syr2k/her2k. | |
| Factorizations and linear solvers | |
| Cholesky and LU factorizations, their solves and inverses. | |
| QR and orthogonal transforms | |
| Householder QR, forming and applying Q, and batched orthogonalisation. | |
| Symmetric and Hermitian eigensolvers | |
| syev and its tiers, selected-range syevx, and the iterative eigensolvers. | |
| Tridiagonal and band reduction | |
| Reduction to tridiagonal form and the tridiagonal eigensolvers (steqr, stedc, stebz, stein). | |
| Singular value decomposition | |
| gesvd and the bidiagonal pipeline stages. | |
| Sparse (CSR) operations | |
| Sparse-dense products, ILU(k) and CSR test-matrix generators. | |
| Norms, condition numbers and utilities | |
| Matrix norms, condition estimates, inversion and scaling helpers. | |
| Convenience layer (batchlas::linalg) | |
| Value-returning, NumPy-like wrappers over the entry points. | |
| Backend dispatch and vendor seams | |
| How a call reaches a backend: the Queue's backend, owning arguments, and the backend::*_vendor declarations the vendor families call. | |
| Workspace and memory | |
| The per-Queue workspace arena, leases and BumpAllocator sizing. | |
| Errors and convergence status | |
| The exception hierarchy and per-item info reporting. | |
| Configuration, environment and tuning | |
| Runtime settings captured from the environment and the tuning constants. | |
| Device-side group BLAS | |
| In-kernel work-group and sub-group BLAS templates (#include <batchlas/blas/device.hh>, needs -fsycl). | |
| Kernel helpers (installed, not API) | |
| Headers installed because public headers include them. | |
Files | |
| file | include/batchlas.hh |
| The umbrella header: #include <batchlas.hh> gives the whole public API. | |
| file | include/batchlas/blas/functions.hh |
| All positional dense entry points (blas/functions/*.hh) plus their option-struct spellings. | |
| file | include/batchlas/blas/linalg.hh |
| Everything <batchlas.hh> provides: containers, entry points, extensions and the linalg layer. | |