close

Basis Lineaire Algebra Subprogramma's

Ga naar navigatie Ga naar zoeken
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.

Zie ook

Links