منصوبے کے بارے میں
LibDDLA ایک C++17 ٹیمپلیٹ لائبریری ہے جسے ڈسٹری بیوٹڈ ڈینس لینیئر الجبرا کے لیے ڈیزائن کیا گیا ہے۔ یہ MPI پروسیس گرڈ کے ذریعے 2D بلاک سائیکلک ڈیٹا ڈسٹری بیوشن کا استعمال کرتے ہوئے ScaLAPACK اسٹائل APIs کو نافذ کرتی ہے۔ یہ لائبریری متعدد بیک اینڈز بشمول CPU (OpenBLAS یا وینڈر BLAS کے ذریعے)، CUDA، اور HIP کی حمایت کرتی ہے، جس میں رن ٹائم سلیکشن کے لیے ایک دوہری CPU+GPU لائبریری بنانے کی صلاحیت موجود ہے۔
اہم صلاحیتوں میں شامل ہیں:
- ڈسٹری بیوٹڈ BLAS آپریشنز: `pgemm` (SUMMA الگورتھم)، `pgeadd`، `pdam` اور `ptran`۔
- LU Factorization اور Solvers: اس میں `pgetrf` (جزوی پیووٹنگ)، `pgetrf_bpiv` (بلاک LU)، `pgetrs` اور `pgesv` ڈرائیور شامل ہیں۔
- Cholesky Factorization: یہ float، double اور complex اسکیلر اقسام کے لیے `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.