About this project
LibDDLA is a C++17 template library designed for distributed dense linear algebra. It implements ScaLAPACK-style APIs using 2D block-cyclic data distribution across an MPI process grid. The library supports multiple backends including CPU (via OpenBLAS or vendor BLAS), CUDA, and HIP, with the ability to build a dual CPU+GPU library for runtime selection.
Key capabilities include:
- Distributed BLAS operations: `pgemm` (SUMMA algorithm), `pgeadd`, `pdam`, and `ptran`.
- LU Factorization and Solvers: Includes `pgetrf` (partial pivoting), `pgetrf_bpiv` (block LU), `pgetrs`, and the `pgesv` driver.
- Cholesky Factorization: Supports `ppotrf`, `ppotrs`, and `pposv` for float, double, and complex scalar types.
- Communication Modes: Supports direct device collectives via NCCL/RCCL, GPU-CPU tunneling (D2H -> MPI -> H2D), or GPU-aware MPI.
- Memory Management: Provides `ddla_malloc` and `ddla_free` helpers that dispatch to the selected backend.
The library is designed for high-performance computing environments, requiring CMake 3.13+, an MPI implementation (Open MPI or MPICH), and the respective GPU toolkits for CUDA or HIP builds.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.