Základní podprogramy lineární algebry
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 16. března 2021; kontroly vyžadují
2 úpravy .
BLAS ( anglicky Basic Linear Algebra Subprograms - základní podprogramy lineární algebry) je de facto standard pro aplikační programovací rozhraní pro vytváření knihoven, které provádějí základní operace lineární algebry , jako je vektorové a maticové násobení.
Poprvé publikován v roce 1979 a používal se k vytváření velkých balíčků, jako je LAPACK . Vysoce optimalizované implementace rozhraní BLAS, které se intenzivně používají ve vysoce výkonných počítačích, byly vyvinuty výrobci hardwaru, jako je Intel , ale i dalšími (například ATLAS - přenosný samooptimalizující BLAS).
LINPACK Benchmark je silně založen na DGEMM , podprogramu BLAS.
Funkčnost
Funkčnost BLAS je rozdělena do tří úrovní.
Úroveň 1
Tato úroveň obsahuje vektorové operace formuláře:
operace tečkového součinu , převzetí normy vektoru a další operace.
Úroveň 2
Tato úroveň obsahuje operace s maticovými vektory ve tvaru:
řešení pro s trojúhelníkovou maticí a dalšími operacemi.
Úroveň 3
Obsahuje operace matice-matice ve tvaru:
řešení trojúhelníkové matice a další operace. Tato úroveň obsahuje široce používanou operaci GEMM ( General Matrix Multiply )
.
Implementace
refblas
Oficiální referenční implementace z netlib . K dispozici jsou verze
C a
Fortran 77 .
Urychlit
Framework
společnosti Apple pro
Mac OS X , včetně optimalizovaných verzí BLAS a LAPACK pro
procesory PowerPC a
Intel Core .
ACML
Základní matematická knihovna AMD podporující
procesory AMD Athlon a
Opteron pod
Linuxem a
Windows .
ATLAS
Self-optimizing Linear Algebra Software (
anglicky: Automatically Tuned Linear Algebra Software ), open source implementace rozhraní BLAS pro C a Fortran 77.
CUDA SDK
Sada NVIDIA CUDA SDK obsahuje funkce BLAS (cuBLAS) pro psaní programů v jazyce C pro grafické karty řady
GeForce 8 ,
GeForce 200 ,
GeForce 300 (Fermi) .
ESSL
Knihovna inženýrských
a vědeckých podprogramů od
IBM podporující
architekturu PowerPC pod
AIX a
Linuxem .
libflame
Implementace knihovny lineární algebry včetně BLAS projektem FLAME.
Přejít na BLAS
Implementace
Kazushige Goto .
HP MLIB
Matematická knihovna od
HP podporující
architektury IA-64 ,
PA-RISC ,
x86 a
Opteron pod
HP-UX a
Linux .
Intel MKL
Intel Math
Kernel Library podporující procesory Intel pod Linuxem , Windows a Mac OS X.
MathKeisan
Matematická knihovna
NEC podporující architekturu
NEC SX pod
SUPER-UX a
Itanium pod
Linuxem .
PDLIB/SX
Public Domain Mathematical Library od NEC pro systém NEC SX-4
.
SCSL
SGI 's Scientific Computing Software Library obsahuje implementace BLAS a LAPACK pro
pracovní stanice SGI Irix .
Sun Performance Linaray
Knihovna Sun Performance Library obsahuje optimalizované BLAS a LAPACK pro
architektury SPARC a
AMD64 pod
Solaris 8, 9 a 10.
uBLAS
Knihovna tříd šablon
C++ , která poskytuje funkce BLAS. Část knihovny
Boost . Na rozdíl od jiných implementací se uBLAS zaměřuje více na správnost algoritmu pomocí pokročilých funkcí C++ než na vysoký výkon.
GSL
GNU Scientific Library obsahuje multiplatformní neoptimalizovanou C implementaci, která je distribuována pod
GNU GPL .
CLBlast
Multiplatformní ( Windows , Linux , MacOS ) knihovna C++ implementovaná s OpenCL může běžet na široké řadě GPU nebo jiných zařízeních, která podporují paralelní výpočty.
Viz také
Odkazy