À propos du projet
LibDDLA est une bibliothèque de templates C++17 conçue pour l'algèbre linéaire dense distribuée. Elle implémente des API de style ScaLAPACK utilisant une distribution de données bloc-cyclique 2D à travers une grille de processus MPI. La bibliothèque prend en charge plusieurs backends, notamment CPU (via OpenBLAS ou BLAS fournisseur), CUDA et HIP, avec la possibilité de construire une bibliothèque duale CPU+GPU pour une sélection au moment de l'exécution.
Les capacités clés incluent :
- Opérations BLAS distribuées : `pgemm` (algorithme SUMMA), `pgeadd`, `pdam` et `ptran`.
- Factorisation LU et solveurs : Comprend `pgetrf` (pivotage partiel), `pgetrf_bpiv` (LU par blocs), `pgetrs` et le pilote `pgesv`.
- Factorisation de Cholesky : Prend en charge `ppotrf`, `ppotrs` et `pposv` pour les types scalaires float, double et complexes.
- Modes de communication : Prend en charge les collectifs directs de périphériques via NCCL/RCCL, le tunnel GPU-CPU (D2H -> MPI -> H2D) ou MPI GPU-aware.
- Gestion de la mémoire : Fournit les fonctions d'aide `ddla_malloc` et `ddla_free` qui sont dispatchées vers le backend sélectionné.
La bibliothèque est conçue pour les environnements de calcul haute performance, nécessitant CMake 3.13+, une implémentation MPI (Open MPI ou MPICH) et les toolkits GPU respectifs pour les builds CUDA ou HIP.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.