BLAS
Basisdaten

Erscheinungsjahr 1979
Aktuelle Version 3.10.0
(29. Juni 2021)
Betriebssystem plattformübergreifend
Programmier­sprache Fortran
Kategorie Lineare Algebra
www.netlib.org/blas

Basic Linear Algebra Subprograms (kurz: BLAS) bezeichnet eine Programmbibliothek, die elementare Operationen der linearen Algebra wie Vektor- und Matrixmultiplikationen bereitstellt. 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 finden BLAS vor allem im Supercomputing-Bereich breite Verwendung.

Die Definition der Schnittstelle zu BLAS ist ein De-facto-Standard.

Funktionalität

Bearbeiten

Es werden folgende Datentypen unterstützt: single (32 Bit), double (64 Bit), complex (2 × 32 Bit), doublecomplex (2 × 64 Bit).

Die Funktionalität von BLAS wird in drei Stufen (Level) unterteilt:

Level 1

Bearbeiten

Level 1 enthält Vektor-Rechenoperationen der Form

sowie unter anderem das Skalarprodukt und Vektornormen.

Level 2

Bearbeiten

Level 2 enthält Vektor-Matrix-Rechenoperationen der Form

sowie unter anderem das Lösen von linearen Gleichungssystemen mit Matrix in Dreiecksform.

Level 3

Bearbeiten

Level 3 enthält Matrix-Rechenoperationen der Form

sowie unter anderem das Lösen von für Matrix in Dreiecksform. Dieser Level enthält die oft benötigte Matrixmultiplikation.

Implementierungen

Bearbeiten
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
BLAS-Implementierung von Kazushige Goto.[2]
OpenBLAS
Weiterentwicklung von Goto BLAS für moderne Prozessoren.
HP MLIB
HPs Math library, für die Architekturen Itanium, PA-RISC, x86 und Opteron unter HP-UX und Linux.
IMKL
Intel Math Kernel Library (BLAS, LAPACK, ScaLAPACK, Sparse Solvers, FFT, Vector Math), für Intel-Prozessoren unter Linux, macOS und Windows.
LAMA
Die Library for Accelerated Math Applications (LAMA) ist eine, in C++ geschriebene, Template-Bibliothek zum Schreiben numerischer Löser für verschiedene Hardware (z. B. GPUs mittels CUDA oder OpenCL) in Systemen mit verteiltem Speicher – sie versteckt die hardwarespezifische Programmierung vor dem Anwendungsentwickler.[3]
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.
clBLAS
Eine Implementierung von BLAS für OpenCL.
AmdBLAS
Die AMD-Implementierung von BLAS für das ATI-Stream-SDK.
Armadillo
Die Armadillo Template-Bibliothek ist ein Wrapper für C++.
UTL_NLA
Subset der Implementierung von BLAS und LAPACK als PL/SQL Package in der Oracle Datenbank ab Version 9i
Bearbeiten

Einzelnachweise

Bearbeiten
  1. BLAS Benchmark-August2008. eigen.tuxfamily.org, 1. August 2008, abgerufen am 4. März 2010 (englisch).
  2. Writing the Fastest Code, by Hand, for Fun: A Human Computer Keeps Speeding Up Chips. New York Times, John Markoff, 28. November 2005, abgerufen am 4. März 2010 (englisch).
  3. www.libama.org

📚 Artikel Terkait di Wikipedia

Automatically Tuned Linear Algebra Software

Tuned Linear Algebra Software (ATLAS) ist eine Unterprogrammbibliothek für Lineare Algebra. ATLAS ist eine Open-Source-Implementierung von Basic Linear Algebra

LAPACK

in LAPACK für elementare Operationen der linearen Algebra das Softwarepaket Basic Linear Algebra Subprograms (BLAS). In der Version Lapack95 werden Eigenschaften

Fortran

abgerufen am 21. August 2021.  BLAS (Basic Linear Algebra Subprograms). Abgerufen am 8. April 2022.  LAPACK — Linear Algebra PACKage. Abgerufen am 8. April

Armadillo

β-Catenin Armadillo (C++), eine Programmbibliothek, siehe Basic Linear Algebra Subprograms #Implementierungen Armadillo (Satellit), ein Forschungssatellit

Math Kernel Library

mathematische Berechnungen von Intel. Hauptbestandteile sind Basic Linear Algebra Subprograms (BLAS), LAPACK, ScaLAPACK, Solver für dünnbesetzte Matrizen

Blas (Begriffsklärung)

(* 1972), spanischer Biathlet und Skilangläufer BLAS steht für: Basic Linear Algebra Subprograms, eine Softwarebibliothek Siehe auch: Blaas Blass Plas

Parallel Linear Algebra for Scalable Multi-core Architectures

bietet vollständige Kompatibilität zur Softwarebibliothek Basic Linear Algebra Subprograms (BLAS) Level 3 sowie Matrixroutinen für die Initialisierung

Jack Dongarra

Unterroutinen für einfache Operationen in der linearen Algebra, genannt BLAS (Basic Linear Algebra Subprograms, ursprünglich 1971 von Charles Lawson und Richard