close

Grundläggande underprogram för linjär algebra

Gå till navigering Gå till sök
BLAS
Sorts applikationsprogrammeringsgränssnitt och funktionsbibliotek
Skrivet i Fortran och C
Första upplagan 1979
senaste versionen 3.10.0 (29 juni 2021)
Hemsida netlib.org/blas/

BLAS ( Engelska  Basic Linear Algebra Subprograms  - basic linear algebra subroutines) är en de facto-standard för applikationsprogrammeringsgränssnitt för att skapa bibliotek som utför grundläggande linjära algebraoperationer , såsom vektor- och matrismultiplikation.

Första gången publicerad 1979 och användes för att skapa stora paket som LAPACK . Intensivt använt i högpresterande beräkningar, har högt optimerade implementeringar av BLAS-gränssnittet utvecklats av hårdvarutillverkare som Intel , såväl som andra (till exempel ATLAS - bärbar självoptimerande BLAS).

LINPACK Benchmark är starkt baserat på DGEMM , en subrutin till BLAS.

Funktionalitet

Funktionaliteten hos BLAS är uppdelad i tre nivåer.

Nivå 1

Denna nivå innehåller vektoroperationer av formen:

punktproduktoperationer , tar normen för en vektor och andra operationer.

Nivå 2

Denna nivå innehåller matris-vektoroperationer av formen:

lösning för med en triangulär matris och andra operationer.

Nivå 3

Innehåller matris-matrisoperationer av formen:

triangulär matrislösning och andra operationer. Denna nivå innehåller den allmänt använda GEMM-operationen ( General Matrix Multiply ) . 

Implementeringar

refblas
Den officiella referensimplementeringen från netlib . C och Fortran 77 versioner finns tillgängliga .
Accelerera
Apples ramverk för Mac OS X , inklusive optimerade versioner av BLAS och LAPACK för PowerPC- och Intel Core-processorer .
ACML
Core AMD math-bibliotek som stöder AMD Athlon och Opteron-processorer under Linux och Windows .
ATLAS
Självoptimerande Linear Algebra Software ( engelska:  Automatically Tuned Linear Algebra Software ), en öppen källkodsimplementering av BLAS-gränssnittet för C och Fortran 77.
CUDA SDK
NVIDIA CUDA SDK inkluderar BLAS (cuBLAS) funktionalitet för att skriva C-program för grafikkort i GeForce 8 , GeForce 200 , GeForce 300 (Fermi) serien .
ESSL
Engineering and Scientific Subroutine Library från IBM som stöder PowerPC - arkitekturen under AIX och Linux . 
libflame
Implementering av ett linjärt algebrabibliotek inklusive BLAS av FLAME-projektet.
Gå till BLAS
Implementering av Kazushige Goto .
HP MLIB
Matematikbibliotek från HP som stöder arkitekturerna IA-64 , PA-RISC , x86 och Opteron under HP-UX och Linux .
Intel MKL
Intel Math Kernel Library som stöder Intel- processorer under Linux , Windows och Mac OS X. 
MathKeisan
NEC matematikbibliotek som stöder NEC SX -arkitektur under SUPER-UX och Itanium under Linux .
PDLIB/SX
Public Domain Mathematical Library av NEC för NEC SX-4- systemet . 
SCSL
SGI :s  Scientific Computing Software Library innehåller BLAS- och LAPACK-implementationer för SGI Irix- arbetsstationer .
Sun Performance Linaray
Sun Performance Library innehåller optimerad BLAS och LAPACK för SPARC- och AMD64-arkitekturerna under Solaris 8, 9 och 10.
uBLAS
Ett C++- mallklassbibliotek som tillhandahåller BLAS-funktionalitet. En del av Boost- biblioteket . Till skillnad från andra implementeringar fokuserar uBLAS mer på algoritmens korrekthet med hjälp av avancerade C++-funktioner än på hög prestanda.
GSL
GNU Scientific Library innehåller en plattformsoberoende icke-optimerad C-implementering som distribueras under GNU GPL . 

CLBlast

Ett plattformsoberoende ( Windows , Linux , MacOS ) C++-bibliotek implementerat med OpenCL kan köras på ett brett utbud av GPU :er eller andra enheter som stöder parallell beräkning.

Se även

Länkar