프로젝트 소개
LibDDLA는 분산 조밀 선형 대수를 위해 설계된 C++17 템플릿 라이브러리입니다. 이 라이브러리는 MPI 프로세스 그리드 전체에 2D 블록 순환 데이터 분포를 사용하여 ScaLAPACK 스타일의 API를 구현합니다. CPU(OpenBLAS 또는 벤더 BLAS를 통해), CUDA 및 HIP를 포함한 여러 백엔드를 지원하며, 런타임 선택을 위해 CPU+GPU 듀얼 라이브러리를 빌드할 수 있는 기능을 갖추고 있습니다.
주요 기능은 다음과 같습니다:
- 분산 BLAS 연산: `pgemm`(SUMMA 알고리즘), `pgeadd`, `pdam` 및 `ptran`.
- LU 분해 및 솔버: `pgetrf`(부분 피보팅), `pgetrf_bpiv`(블록 LU), `pgetrs` 및 `pgesv` 드라이버 포함.
- Cholesky 분해: float, double 및 복소수 스칼라 타입에 대해 `ppotrf`, `ppotrs` 및 `pposv` 지원.
- 통신 모드: NCCL/RCCL을 통한 직접 장치 콜렉티브, GPU-CPU 터널링(D2H -> MPI -> H2D) 또는 GPU-aware MPI 지원.
- 메모리 관리: 선택된 백엔드로 디스패치되는 `ddla_malloc` 및 `ddla_free` 헬퍼 제공.
이 라이브러리는 고성능 컴퓨팅 환경을 위해 설계되었으며, CMake 3.13 이상, MPI 구현체(Open MPI 또는 MPICH) 및 CUDA 또는 HIP 빌드를 위한 각각의 GPU 툴킷이 필요합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.