Sobre o projeto
LibDDLA é uma biblioteca de templates C++17 projetada para álgebra linear densa distribuída. Ela implementa APIs no estilo ScaLAPACK usando distribuição de dados cíclica de blocos 2D em uma grade de processos MPI. A biblioteca suporta múltiplos backends, incluindo CPU (via OpenBLAS ou BLAS de fornecedor), CUDA e HIP, com a capacidade de construir uma biblioteca dual CPU+GPU para seleção em tempo de execução.
As principais capacidades incluem:
- Operações BLAS distribuídas: `pgemm` (algoritmo SUMMA), `pgeadd`, `pdam` e `ptran`.
- Fatoração LU e Solvers: Inclui `pgetrf` (pivoteamento parcial), `pgetrf_bpiv` (LU de bloco), `pgetrs` e o driver `pgesv`.
- Fatoração de Cholesky: Suporta `ppotrf`, `ppotrs` e `pposv` para tipos escalares float, double e complexos.
- Modos de Comunicação: Suporta coletivos diretos de dispositivo via NCCL/RCCL, tunelamento GPU-CPU (D2H -> MPI -> H2D) ou MPI com suporte a GPU (GPU-aware MPI).
- Gerenciamento de Memória: Fornece auxiliares `ddla_malloc` e `ddla_free` que são despachados para o backend selecionado.
A biblioteca é projetada para ambientes de computação de alto desempenho, exigindo CMake 3.13+, uma implementação MPI (Open MPI ou MPICH) e os respectivos toolkits de GPU para builds CUDA ou HIP.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.