Grundläggande linjära algebra-delprogram

BLASTER
Grundläggande information

Publiceringsår 1979
Aktuell  version 3.8.0
(12 november 2017)
operativ system plattform
programmeringsspråk Fortran
kategori Linjär algebra
www.netlib.org/blas

Grundläggande linjära algebra-underprogram ( förkortat BLAS ) beskriver ett programbibliotek som tillhandahåller elementära operationer av linjär algebra såsom vektor- och matrismultiplikationer . Det finns en mängd olika implementeringar på olika språk eller för olika arkitekturer och plattformar. Fördelen med BLAS ligger inte bara i återanvändbarheten och det enkla arbetet för programmeraren, utan också i möjligheten för hårdvarutillverkare att tillhandahålla högoptimerade implementeringar för dessa ofta använda underrutiner, vissa i assembler . Det är därför som BLAS främst finns i superdatorer-Arbetstäckande användning.

Definitionen av gränssnittet till BLAS är en de facto-standard .

Funktionalitet

Följande datatyper stöds: singel (32 bit), dubbel (64 bit), komplex (2 × 32 bit), dubbelkomplex (2 x 64 bit).

BLAS funktionalitet är uppdelad i tre nivåer:

Nivå 1

Nivå 1 innehåller formulärets aritmetiska operationer

samt skalära produkter och vektornormer .

Nivå 2

Nivå 2 innehåller aritmetiska operationer av vektormatrisen i formen

samt lösa linjära ekvationssystem med en matris i triangulär form .

Nivå 3

Nivå 3 innehåller matrisaritmetiska operationer av formuläret

samt att lösa för matris bland annat i triangulär form . Denna nivå innehåller den ofta krävda matrixmultiplikationen.

Implementeringar

refblas
Officiell referensimplementering från Netlib . Versionerna C och Fortran-77 finns tillgängliga.
ACML
AMD Core Math Library, för AMD Athlon och Opteron- processorer under Linux och Windows .
ATLAS
Automatisk avstämd linjär algebra-programvara , en öppen källkodsimplementering av BLAS API: er för C och Fortran 77.
ESSL
IBMs Engineering and Scientific Subroutine Library, för PowerPC- arkitekturen under AIX och Linux.
Gå BLAS
BLAS-implementering av Kazushige Goto .
OpenBLAS
Vidareutveckling av Goto BLAS för moderna processorer.
HP MLIB
HP: s matematikbibliotek, för arkitekturerna Itanium , PA-RISC , x86 och Opteron under HP-UX och Linux.
IMKL
Intel Math Kernel Library (BLAS, LAPACK, ScaLAPACK, Sparse Solvers, FFT, Vector Math), för Intel-processorer under Linux, macOS och Windows.
LAMA
Library for Accelerated Math Applications ( LAMA ) är ett mallbibliotek skrivet i C ++ för att skriva numeriska lösare för olika hårdvaror (t.ex. GPU: er som använder CUDA eller OpenCL ) i system med distribuerat minne - det döljer den hårdvaruspecifika programmeringen från applikationsutvecklaren .
MTL4
Den Matrix mallbibliotek Version 4 är en generisk C ++ mall bibliotek för svag och full BLAS funktionalitet. MTL4 erbjuder ett intuitivt gränssnitt (liknande Matlab ) och, tack vare generisk programmering, bred tillämpbarhet.
uBLAS
Ett generiskt C ++ klassbibliotek som tillhandahåller BLAS-funktionalitet, en del av Boost- biblioteket.
CUBLAS
Den Nvidia genomförande från BLAS för CUDA -teknik.
clBLAS
En implementering av BLAS för OpenCL .
AmdBLAS
Den AMD genomför BLAS för ATI Stream SDK.
Armadillo
Armadillomallbiblioteket är ett omslag för C ++.

webb-länkar

Individuella bevis

  1. BLAS riktmärke augusti 2008 . own.tuxfamily.org. 1 augusti 2008. Hämtad 4 mars 2010.
  2. Skriva snabbaste koden för hand, for Fun: A Human Computer Håller Snabbare Chips . New York Times, John Markoff. 28 november 2005. Hämtad 4 mars 2010.
  3. www.libama.org