প্রকল্প সম্পর্কে

LibDDLA হলো ডিস্ট্রিবিউটেড ডেন্স লিনিয়ার অ্যালজেব্রার জন্য ডিজাইন করা একটি C++17 টেমপ্লেট লাইব্রেরি। এটি একটি 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-aware MPI সমর্থন করে। - মেমরি ম্যানেজমেন্ট: `ddla_malloc` এবং `ddla_free` হেল্পার প্রদান করে যা নির্বাচিত ব্যাকএন্ডে ডিসপ্যাচ করে। এই লাইব্রেরিটি হাই-পারফরম্যান্স কম্পিউটিং এনভায়রনমেন্টের জন্য ডিজাইন করা হয়েছে, যার জন্য CMake 3.13+, একটি MPI ইমপ্লিমেন্টেশন (Open MPI অথবা MPICH), এবং CUDA বা HIP বিল্ডের জন্য সংশ্লিষ্ট GPU টুলকিট প্রয়োজন।