Об этом проекте
LibDDLA — это шаблонная библиотека C++17, разработанная для распределенной плотной линейной алгебры. Она реализует API в стиле ScaLAPACK, используя 2D-блочно-циклическое распределение данных по сетке процессов MPI. Библиотека поддерживает несколько бэкендов, включая CPU (через OpenBLAS или BLAS от вендора), CUDA и HIP, с возможностью сборки двойной библиотеки CPU+GPU для выбора в режиме реального времени.
Ключевые возможности включают:
- Распределенные операции BLAS: `pgemm` (алгоритм SUMMA), `pgeadd`, `pdam` и `ptran`.
- LU-разложение и решатели: включает `pgetrf` (частичный выбор ведущего элемента), `pgetrf_bpiv` (блочное LU), `pgetrs` и драйвер `pgesv`.
- Разложение Холецкого: поддержка `ppotrf`, `ppotrs` и `pposv` для типов float, double и комплексных скаляров.
- Режимы связи: поддержка прямых коллективов устройств через NCCL/RCCL, туннелирования GPU-CPU (D2H -> MPI -> H2D) или GPU-aware MPI.
- Управление памятью: предоставляет вспомогательные функции `ddla_malloc` и `ddla_free`, которые направляют запросы к выбранному бэкенду.
Библиотека предназначена для высокопроизводительных вычислительных сред и требует CMake 3.13+, реализацию MPI (Open MPI или MPICH), а также соответствующие GPU-инструментарии для сборок CUDA или HIP.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.