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 ( 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