Repository navigation
LibDDLA v0.0.5
C++17 distributed dense linear algebra library for GPUs (CUDA/HIP) and CPU, ScaLAPACK-style 2D block-cyclic APIs over MPI. This release covers 56 commits since v0.0.4 (2026-07-31 → 2026-09-04).
Highlights
- New status-returning C API — every public entry point now returns
ddlaStatus_t, withDDLA_CHECKmacros andddlaSetStreamfor stream ownership on the handle;ddla.h+ddla_handle_t.hare now the only public headers, and all others were moved intosrc/. (c633490, 352077f) - CPU backend support with unified
DdlaBackenddispatch — the backend layer is now a template (gemm<Backend, T>,comm_traits.h) covering CPU (OpenBLAS), CUDA, and HIP, including an optional dual CPU+GPU build selectable per handle at runtime. (41c7ace, 83f844b, 691f1b1, c4ce301) - Leading-block sub-matrix support for the factor/solve/diag routines, plus expanded solve variants. (2c76bc3, d8d1181)
- Automatic CI on two HPC clusters — every push now runs the CPU suite on HPC3 and a HIP/DCU (gfx906) 40-case suite on KSSG via GitHub Actions; the HPC3 GPU stage runs as parallel 4-GPU + 6-GPU jobs. (f9ae8f5, ffd0f6e)
New Features
ptrtrsgainedside='R'(X*op(A)=B) support, and the solve family gained side/trans variants. (49f3164, d8d1181)plapivgained row/col pivoting direction support; head-location solves added. (d8d1181)- CPU random-number generation in
random_generator(backend-agnostic matrix generation). (13deeab) - Benchmark suite scoped to POTRF paths. (300794b)
Bug Fixes
pposvwas missing the row permutation of B when the pivot location is not-1. (a397609)pgetrf_bpivis now a standard LU factorization, andpgetrs_bpivapplies the column pivot in the correct direction. (829202f)- Comm/plapiv/pivot correctness fixes and general hardening. (6dd4bb3)
gemmVbatched/gemmVbatched2snow accept lowercase transpose modes. (79cf31c)- Public headers are self-contained via
DDLA_VENDOR_*macros; private headers include the public header first and no longer redeclare default template/function arguments. (dfdaa6e, 0391b81, 165981d) - Stream sync before reading
last_valuein theppotrfhead-correction path. MPI_CHECKin the CCL+TUNNEL build branches; int/status comparison fixes across tests. (33c29e0, c7c43cb)
Build System / Tooling
- Unified backend dispatch with
DdlaBackendtemplates; CPU/GPU backend reduction. (41c7ace, 691f1b1) - Unified comm interface in
comm_traits.h; dead comm code removed. (c4ce301, a82ce35) - ROCm include dir added to the HIP build for CXX-language TUs. (9cf0cdf)
- README updated to the current API and comm layer, including the dual CPU+GPU build documentation. (7852315)
CI
- New GitHub Actions pipeline: HPC3 CPU validation + KSSG HIP/DCU validation (gfx906, DTK 25.04.4, RCCL) on every push to
main/develop. (f9ae8f5) - HPC3 GPU validation split into 4-GPU (
v100g32fat) + 6-GPU (v100m3) parallel jobs after chronicv100g32congestion. (ffd0f6e) - SAI Apptainer GPU validation retired in favor of the KSSG HIP pipeline. (f9ae8f5)
Tests & Benchmarks
- Test suite reorganized under ctest with
cpu/gpulabels; 42 GPU cases + 5 CPU cases run per CI cycle; rank registration standardized (DDLA_TEST_NP). (22377a2, 6f3d566)
Full changelog: v0.0.4...develop (56 commits, 182 files changed, +11740/-3620 lines)