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
- Referens BLAS webbplats
- OpenBLAS
- BLAS Implementation Automatic Tuned Linear Algebra Software (ATLAS)
- AmdBLAS för ATI Stream
Individuella bevis
- ↑ BLAS riktmärke augusti 2008 . own.tuxfamily.org. 1 augusti 2008. Hämtad 4 mars 2010.
- ↑ 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.
- ↑ www.libama.org