इस प्रोजेक्ट के बारे में

LibDDLA एक C++17 टेम्पलेट लाइब्रेरी है जिसे वितरित सघन रैखिक बीजगणित (distributed dense linear algebra) के लिए डिज़ाइन किया गया है। यह एक MPI प्रोसेस ग्रिड पर 2D ब्लॉक-साइक्लिक डेटा वितरण का उपयोग करके ScaLAPACK-शैली के API लागू करता है। यह लाइब्रेरी CPU (OpenBLAS या वेंडर BLAS के माध्यम से), CUDA और HIP सहित कई बैकएंड का समर्थन करती है, जिसमें रनटाइम चयन के लिए एक डुअल CPU+GPU लाइब्रेरी बनाने की क्षमता है। मुख्य क्षमताओं में शामिल हैं: - वितरित BLAS संचालन: `pgemm` (SUMMA एल्गोरिदम), `pgeadd`, `pdam`, और `ptran`। - LU Factorization और Solvers: इसमें `pgetrf` (पार्शियल पिवोटिंग), `pgetrf_bpiv` (ब्लॉक LU), `pgetrs`, और `pgesv` ड्राइवर शामिल हैं। - Cholesky Factorization: यह फ्लोट, डबल और कॉम्प्लेक्स स्केलर प्रकारों के लिए `ppotrf`, `ppotrs`, और `pposv` का समर्थन करता है। - संचार मोड: यह NCCL/RCCL के माध्यम से सीधे डिवाइस कलेक्टिव्स, GPU-CPU टनलिंग (D2H -> MPI -> H2D), या GPU-अवेयर MPI का समर्थन करता है। - मेमोरी प्रबंधन: यह `ddla_malloc` और `ddla_free` हेल्पर प्रदान करता है जो चयनित बैकएंड पर डिस्पैच होते हैं। यह लाइब्रेरी हाई-परफॉरमेंस कंप्यूटिंग वातावरण के लिए डिज़ाइन की गई है, जिसके लिए CMake 3.13+, एक MPI कार्यान्वयन (Open MPI या MPICH), और CUDA या HIP बिल्ड्स के लिए संबंधित GPU टूलकिट की आवश्यकता होती है।