Grundlæggende underprogrammer for lineær algebra
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 16. marts 2021; checks kræver
2 redigeringer .
BLAS ( Engelsk Basic Linear Algebra Subprograms - basic linear algebra subroutines) er en de facto standard for applikationsprogrammeringsgrænseflade til oprettelse af biblioteker, der udfører grundlæggende lineære algebraoperationer , såsom vektor- og matrixmultiplikation.
Først udgivet i 1979 og brugt til at skabe store pakker såsom LAPACK . Intensivt brugt i højtydende computing, er stærkt optimerede implementeringer af BLAS-grænsefladen blevet udviklet af hardwareproducenter som Intel , såvel som andre (for eksempel ATLAS - bærbar, selvoptimerende BLAS).
LINPACK Benchmark er stærkt baseret på DGEMM , en underrutine af BLAS.
Funktionalitet
Funktionaliteten af BLAS er opdelt i tre niveauer.
Niveau 1
Dette niveau indeholder vektoroperationer af formen:
punktproduktoperationer , der tager normen for en vektor , og andre operationer.
Niveau 2
Dette niveau indeholder matrix-vektor-operationer af formen:
løsning til med en trekantet matrix og andre operationer.


Niveau 3
Indeholder matrix-matrix-operationer af formen:
trekantet matrixløsning og andre operationer. Dette niveau indeholder den meget anvendte GEMM ( General Matrix Multiply )
operation .
Implementeringer
refblas
Den officielle referenceimplementering fra netlib .
C og
Fortran 77 versioner er tilgængelige .
Fremskynde
Apples rammer til
Mac OS X , inklusive optimerede versioner af BLAS og LAPACK til
PowerPC og
Intel Core-processorer .
ACML
Core AMD matematik bibliotek, der understøtter
AMD Athlon og
Opteron processorer under
Linux og
Windows .
ATLAS
Selvoptimerende Linear Algebra Software (
engelsk: Automatically Tuned Linear Algebra Software ), en open source- implementering af BLAS-grænsefladen til C og Fortran 77.
CUDA SDK
NVIDIA CUDA SDK inkluderer BLAS (cuBLAS) funktionalitet til at skrive C-programmer til
GeForce 8 ,
GeForce 200 ,
GeForce 300 (Fermi) seriens videokort .
ESSL
Engineering
and Scientific Subroutine Library fra
IBM , der understøtter PowerPC-
arkitekturen under
AIX og
Linux .
libflame
Implementering af et lineært algebrabibliotek inklusive BLAS af FLAME-projektet.
Gå til BLAS
Implementering
af Kazushige Goto .
HP MLIB
Matematikbibliotek fra
HP , der understøtter
IA-64 ,
PA-RISC ,
x86 og
Opteron -arkitekturer under
HP-UX og
Linux .
Intel MKL
Intel Math
Kernel Library , der understøtter Intel- processorer under Linux , Windows og Mac OS X.
MathKeisan
NEC matematikbibliotek, der understøtter
NEC SX -arkitektur under
SUPER-UX og
Itanium under
Linux .
PDLIB/SX
Public Domain Mathematical Library af NEC til NEC SX-4- systemet
.
SCSL
SGI 's Scientific Computing Software Library indeholder BLAS- og LAPACK-implementeringer til SGI Irix -
arbejdsstationer .
Sun Performance Linaray
Sun Performance Library indeholder optimeret BLAS og LAPACK til SPARC-
og AMD64 -
arkitekturerne under
Solaris 8, 9 og 10.
uBLAS
Et C++ skabelonklassebibliotek, der giver BLAS-funktionalitet. En del af
Boost- biblioteket . I modsætning til andre implementeringer fokuserer uBLAS mere på algoritmernes korrekthed ved hjælp af avancerede C++-funktioner end på høj ydeevne.
GSL
GNU Scientific Library indeholder en ikke-optimeret C-implementering
på tværs af platforme, der distribueres under
GNU GPL .
CLBlast
Et cross-platform ( Windows , Linux , MacOS ) C++-bibliotek implementeret med OpenCL kan køre på en lang række GPU'er eller andre enheder, der understøtter parallel computing.
Se også
Links