Basis Lineaire Algebra Subprogramma's
| BLAS | |
|---|---|
| Soort van | applicatie-programmeerinterface en functiebibliotheek |
| Geschreven in | Fortran en C |
| Eerste editie | 1979 |
| laatste versie | 3.10.0 (29 juni 2021) |
| Website | netlib.org/blas/ |
BLAS ( English Basic Linear Algebra Subprograms - basic linear algebra subroutines) is een de facto standaard voor applicatieprogrammeerinterfaces voor het maken van bibliotheken die elementaire lineaire algebrabewerkingen uitvoeren , zoals vector- en matrixvermenigvuldiging.
Voor het eerst gepubliceerd in 1979 en gebruikt om grote pakketten zoals LAPACK te maken . Intensief gebruikt in high-performance computing, zijn sterk geoptimaliseerde implementaties van de BLAS-interface ontwikkeld door hardwarefabrikanten zoals Intel en anderen (bijvoorbeeld ATLAS - draagbare zelfoptimaliserende BLAS).
De LINPACK Benchmark is sterk gebaseerd op DGEMM , een subroutine van BLAS.
Functionaliteit
De functionaliteit van BLAS is onderverdeeld in drie niveaus.
Niveau 1
Dit niveau bevat vectorbewerkingen van de vorm:
dot product operaties , waarbij de norm van een vector , en andere operaties.
Niveau 2
Dit niveau bevat matrix-vectorbewerkingen van de vorm:
oplossing voor met een driehoekige matrix en andere bewerkingen.
Niveau 3
Bevat matrix-matrixbewerkingen van de vorm:
driehoekige matrixoplossing en andere bewerkingen. Dit niveau bevat de veelgebruikte GEMM -bewerking ( General Matrix Multiply ) .
Implementaties
- refblas
- De officiële referentie-implementatie van netlib . C en Fortran 77 versies zijn beschikbaar .
- Versnellen
- Apple 's framework voor Mac OS X , inclusief geoptimaliseerde versies van BLAS en LAPACK voor PowerPC- en Intel Core-processors .
- ACML
- Kern AMD-wiskundebibliotheek die AMD Athlon- en Opteron-processors ondersteunt onder Linux en Windows .
- ATLAS
- Zelfoptimaliserende Linear Algebra Software ( Engels: Automatically Tuned Linear Algebra Software ), een open source- implementatie van de BLAS-interface voor C en Fortran 77.
- CUDA SDK
- De NVIDIA CUDA SDK bevat BLAS (cuBLAS) functionaliteit voor het schrijven van C-programma's voor GeForce 8 , GeForce 200 , GeForce 300 (Fermi) serie videokaarten .
- ESSL
- Engineering and Scientific Subroutine Library van IBM die de PowerPC- architectuur ondersteunt onder AIX en Linux .
- libflame
- Implementatie van een lineaire algebrabibliotheek inclusief BLAS door het FLAME-project.
- Ga naar BLAS
- Implementatie van Kazushige Goto .
- HP MLIB
- Wiskundige bibliotheek van HP die IA-64- , PA-RISC- , x86- en Opteron -architecturen ondersteunt onder HP-UX en Linux .
- Intel MKL
- Intel Math Kernel Library die Intel- processors ondersteunt onder Linux , Windows en Mac OS X.
- WiskundeKeisan
- NEC - wiskundebibliotheek die NEC SX -architectuur ondersteunt onder SUPER-UX en Itanium onder Linux .
- PDLIB/SX
- Public Domain Mathematical Library door NEC voor het NEC SX-4- systeem .
- SCSL
- SGI 's Scientific Computing Software Library bevat BLAS- en LAPACK-implementaties voor SGI Irix - werkstations .
- Sun Performance Linaray
- De Sun Performance Library bevat geoptimaliseerde BLAS en LAPACK voor de SPARC- en AMD64-architecturen onder Solaris 8, 9 en 10.
- uBLAS
- Een C++- sjabloonklassebibliotheek die BLAS-functionaliteit biedt. Onderdeel van de Boost- bibliotheek . In tegenstelling tot andere implementaties, richt uBLAS zich meer op de correctheid van algoritmen met behulp van geavanceerde C++-functies dan op hoge prestaties.
- GSL
- De GNU Scientific Library bevat een platformonafhankelijke niet-geoptimaliseerde C-implementatie die wordt gedistribueerd onder de GNU GPL .
CLBlast
Een cross-platform ( Windows , Linux , MacOS ) C++-bibliotheek geïmplementeerd met OpenCL kan draaien op een groot aantal GPU's of andere apparaten die parallel computergebruik ondersteunen.