- Basic Linear Algebra Subprograms
-
BLAS Betriebssystem plattformunabhängig Kategorie Programmbibliothek für: Lineare Algebra www.netlib.org/blas Basic Linear Algebra Subprograms (BLAS) bezeichnet eine Softwarebibliothek, die elementare Operationen der linearen Algebra wie Vektor- und Matrixmultiplikationen implementiert. Es gibt eine Vielzahl von Implementierungen in verschiedenen Sprachen bzw. für verschiedene Architekturen und Plattformen. Der Vorteil von BLAS liegt nicht nur in der Wiederverwendbarkeit und der Arbeitserleichterung für den Programmierer, sondern auch in der Möglichkeit für Hardwarehersteller für diese häufig gebrauchten Subroutinen hochoptimierte, zum Teil in Assembler realisierte Implementierungen bereitzustellen.[1] Daher findet BLAS vor allem im Supercomputing-Bereich breite Verwendung.
Die Definition der Schnittstelle zu BLAS ist ein De-facto-Standard.
Inhaltsverzeichnis
Funktionalität
Es werden folgende Datentypen unterstützt: single (32 Bit), double (64 Bit), complex (2 x 32 Bit), doublecomplex (2 x 64 Bit).
Die Funktionalität von BLAS wird in drei Stufen (Level) unterteilt:
Level 1
Level 1 enthält Vektor-Rechenoperationen der Form
sowie unter anderem Skalarprodukt und Vektornormen.
Level 2
Level 2 enthält Vektor-Matrix-Rechenoperationen der Form
sowie unter anderem das Lösen von nach x mit Matrix T in Dreiecksform.
Level 3
Level 3 enthält Matrix-Rechenoperationen der Form
sowie unter anderem das Lösen von für Matrix T in Dreiecksform. Dieser Level enthält die oft benötigte Matrixmultiplikation.
Implementierungen
- refblas
- Offizielle Referenzimplementierung von netlib. C- und Fortran-77-Versionen sind verfügbar.
- ACML
- AMD Core Math Library, für AMD Athlon und Opteron CPUs unter Linux und Windows.
- ATLAS
- Automatically Tuned Linear Algebra Software, ein Open-Source-Implementierung der BLAS-APIs für C und Fortran 77.
- ESSL
- IBMs Engineering and Scientific Subroutine Library, für die PowerPC Architektur unter AIX und Linux.
- Goto BLAS
- Kazushige Gotos BLAS-Implementierung.[2]
- HP MLIB
- HPs Math library, für die Architekturen Itanium, PA-RISC, x86 und Opteron unter HPUX und Linux.
- IMKL
- Intel Math Kernel Library (BLAS, LAPACK, ScaLAPACK, Sparse Solvers, FFT, Vector Math), für Intel Pentium und Itanium CPUs unter Linux und Windows.
- MTL4
- Die Matrix Template Library Version 4 ist eine generische C++ Template-Bibliothek für schwach und voll besetzte BLAS-Funktionalität. MTL4 bietet ein intuitives Interface (ähnlich MATLAB) und dank Generischer Programmierung eine breite Anwendbarkeit.
- uBLAS
- Eine generische C++-Klassenbibliothek, welche BLAS-Funktionalität bereitstellt, Teil der Boost-Bibliothek.
- CUBLAS
- Die Nvidia-Implementierung von BLAS für die CUDA-Technologie.
- Armadillo
- Die Armadillo Template-Bibliothek ist ein Wrapper für C++.
- AmdBLAS
- Die AMD-Implementierung von BLAS für das ATI Stream-SDK.
Weblinks
- Referenz BLAS-Website
- GOTO BLAS Implementierung der University of Texas at Austin
- BLAS-Implementierung Automatically Tuned Linear Algebra Software (ATLAS)
- AmdBLAS für ATI Stream
Einzelnachweise
- ↑ BLAS Benchmark-August2008. eigen.tuxfamily.org (1. August 2008). Abgerufen am 4. März 2010.
- ↑ Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips (englisch). New York Times, John Markoff (28. November 2005). Abgerufen am 4. März 2010.
Wikimedia Foundation.