This directory contains dense linalg backend front ends. These files translate Uni20 dense matrix operations into a concrete backend family while staying above the raw external-library wrappers.
Contents
- `cpu/`: CPU dense matrix helpers and CPU matrix exponential implementation.
- `direct_gemm/`: operation-specific tensor contractions that lower to one GEMM dispatch.
- `looped_gemm/`: tensor contractions that loop over one residual M or N group around GEMM dispatch.
- `blas/`: operation-tag backend adapters that delegate to mdspan BLAS helpers.
- `cublas/`: provider-ready CUDA operation adapters using acquired cuBLAS execution leases.
- `cuda/`: generic CUDA runtime kernels and transfers used after provider backends decline.
- `lapack/`: LAPACK-backed matrix operation entry points.
- `cusolver/`: cuSOLVER-backed matrix operation entry points.
packed_matrix.hpp: precision-aware logical host packing shared by packed BLAS/LAPACK specializations. Provider object representation stays in backend/mplapack/.
Notes
- Backend front ends should own linalg-level policy such as result allocation, view preparation, and operation selection.
- Raw provider signatures and ABI details belong in the backend source layer.
Related Documentation