Subprograme de bază de algebră liniară

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 16 martie 2021; verificările necesită 2 modificări .
BLAS
Tip de interfață de programare a aplicațiilor și bibliotecă de funcții
Scris in Fortran și C
Prima editie 1979
ultima versiune 3.10.0 (29 iunie 2021)
Site-ul web netlib.org/blas/

BLAS ( Engleză  Basic Linear Algebra Subprograms  - subrutine de algebră liniară de bază) este un standard de facto pentru interfața de programare a aplicațiilor pentru crearea de biblioteci care efectuează operații de algebră liniară de bază , cum ar fi multiplicarea vectorială și matriceală.

Publicat pentru prima dată în 1979 și folosit pentru a crea pachete mari, cum ar fi LAPACK . Utilizate intens în calculul de înaltă performanță, implementările extrem de optimizate ale interfeței BLAS au fost dezvoltate de producători de hardware precum Intel , precum și alții (de exemplu, ATLAS - BLAS cu autooptimizare portabilă).

Benchmark -ul LINPACK se bazează în mare măsură pe DGEMM , o subrutină a BLAS.

Funcționalitate

Funcționalitatea BLAS este împărțită în trei niveluri.

Nivelul 1

Acest nivel conține operații vectoriale de forma:

operații de produs punctual , luând norma unui vector și alte operații.

Nivelul 2

Acest nivel conține operații matrice-vector de forma:

solutie pentru cu o matrice triunghiulara si alte operatii.

Nivelul 3

Conține operații matrice-matrice de forma:

soluție matrice triunghiulară și alte operații. Acest nivel conține operațiunea GEMM ( General Matrix Multiply ) utilizată pe scară largă . 

Implementări

refblas Implementarea oficială de referință de la netlib . Sunt disponibile versiunile C și Fortran 77 . Accelera Cadrul Apple pentru Mac OS X , inclusiv versiuni optimizate ale BLAS și LAPACK pentru procesoarele PowerPC și Intel Core . ACML Biblioteca de matematică AMD de bază care acceptă procesoarele AMD Athlon și Opteron sub Linux și Windows . ATLAS Software-ul de algebră liniară cu auto-optimizare ( în engleză:  Software-ul de algebră liniară ajustat automat ), o implementare open source a interfeței BLAS pentru C și Fortran 77. CUDA SDK NVIDIA CUDA SDK include funcționalitatea BLAS (cuBLAS) pentru scrierea de programe C pentru plăcile video din seria GeForce 8 , GeForce 200 , GeForce 300 (Fermi) . ESSL Biblioteca de subrutine de inginerie și științific de la IBM care suportă arhitectura PowerPC sub AIX și Linux .  libflame Implementarea unei biblioteci de algebră liniară incluzând BLAS de către proiectul FLAME. Mergi la BLAS Implementarea lui Kazushige Goto . HP MLIB Bibliotecă matematică de la HP care acceptă arhitecturile IA-64 , PA-RISC , x86 și Opteron sub HP-UX și Linux . Intel MKL Biblioteca Intel Math Kernel care acceptă procesoare Intel sub Linux , Windows și Mac OS X.  MathKeisan Biblioteca de matematică NEC care acceptă arhitectura NEC SX sub SUPER-UX și Itanium sub Linux . PDLIB/SX Biblioteca matematică în domeniul public de NEC pentru sistemul NEC SX-4 .  SCSL Biblioteca SGI Scientific Computing Software conține implementări BLAS și LAPACK pentru stațiile de  lucru SGI Irix . Sun Performance Linaray Biblioteca Sun Performance conține BLAS și LAPACK optimizate pentru arhitecturile SPARC și AMD64 sub Solaris 8, 9 și 10. uBLAS O bibliotecă de clase de șabloane C++ care oferă funcționalitate BLAS. Face parte din biblioteca Boost . Spre deosebire de alte implementări, uBLAS se concentrează mai mult pe corectitudinea algoritmului folosind funcții C++ avansate decât pe performanță ridicată. GSL Biblioteca științifică GNU conține o implementare C neoptimizată pe mai multe platforme, care este distribuită sub GNU GPL . 

CLBlast

O bibliotecă C++ multiplatformă ( Windows , Linux , MacOS ) implementată cu OpenCL poate rula pe o gamă largă de GPU-uri sau alte dispozitive care acceptă calculul paralel.

Vezi și

Link -uri