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
Typ rozhraní pro programování aplikací a knihovna funkcí
Zapsáno v Fortran a C
První vydání 1979
Nejnovější verze 3.10.0 (29. června 2021)
webová stránka netlib.org/blas/

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