Alapvető lineáris algebrai alprogramok
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. március 16-án felülvizsgált
verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
A BLAS ( angolul Basic Linear Algebra Subprograms – alapvető lineáris algebrai szubrutinok) egy de facto szabvány alkalmazásprogramozási felülethez olyan könyvtárak létrehozásához, amelyek alapvető lineáris algebrai műveleteket hajtanak végre , például vektor- és mátrixszorzást.
Először 1979-ben jelent meg, és nagy csomagok létrehozására használták, mint például a LAPACK . A nagy teljesítményű számítástechnikában intenzíven használt BLAS interfész rendkívül optimalizált megvalósításait olyan hardvergyártók fejlesztették ki, mint például az Intel , valamint mások (például ATLAS – hordozható önoptimalizáló BLAS).
A LINPACK Benchmark nagymértékben a DGEMM -en , a BLAS szubrutinján alapul.
Funkcionalitás
A BLAS funkcionalitása három szintre oszlik.
1. szint
Ez a szint a következő alakú vektorműveleteket tartalmazza:
pontszorzat műveletek , egy vektor normájának felvétele és egyéb műveletek.
2. szint
Ez a szint a következő alakú mátrix-vektor műveleteket tartalmazza:
megoldás háromszögmátrixszal és egyéb műveletekkel .
3. szint
A következő alakú mátrix-mátrix műveleteket tartalmazza:
háromszögmátrix megoldás és egyéb műveletek. Ez a szint tartalmazza a széles körben használt GEMM ( General Matrix Multiply )
műveletet .
Megvalósítások
refblas
A netlib hivatalos referencia implementációja .
C és
Fortran 77 változatok is elérhetők .
Gyorsítson
Az Apple keretrendszere Mac
OS X rendszerhez , beleértve a BLAS és LAPACK optimalizált verzióit
PowerPC és
Intel Core processzorokhoz .
ACML
Core AMD matematikai könyvtár , amely támogatja az
AMD Athlon és
Opteron processzorokat Linux és
Windows alatt .
ATLASZ
Önoptimalizáló Linear Algebra Software (
magyarul: Automatically Tuned Linear Algebra Software ), a BLAS interfész nyílt forráskódú megvalósítása C és Fortran 77 számára.
CUDA SDK
Az NVIDIA CUDA SDK BLAS (cuBLAS) funkcionalitást tartalmaz a C programok írásához
GeForce 8 ,
GeForce 200 ,
GeForce 300 (Fermi) sorozatú videokártyákhoz .
ESSL
Mérnöki
és tudományos szubrutinkönyvtár az
IBM -től, amely támogatja a PowerPC
architektúrát AIX és
Linux alatt
.
libflame
Lineáris algebra könyvtár megvalósítása, beleértve a BLAS-t a FLAME projekt által.
Ugrás a BLAS-ra
A
Kazushige Goto megvalósítása .
HP MLIB
A HP matematikai könyvtára, amely támogatja az
IA-64 ,
PA-RISC ,
x86 és
Opteron architektúrákat HP-UX és
Linux alatt .
Intel MKL
Intel Math
Kernel Library , amely támogatja az Intel processzorokat Linux , Windows és Mac OS X alatt.
MathKeisan
NEC matematikai könyvtár , amely támogatja a
NEC SX architektúrát SUPER-UX alatt , és az
Itaniumot Linux alatt .
PDLIB/SX
Public Domain Mathematical Library a NEC -től a NEC SX-4 rendszerhez
.
SCSL
Az SGI Scientific Computing Software Library BLAS és LAPACK implementációkat tartalmaz
SGI Irix
munkaállomásokhoz .
Sun Performance Linaray
A Sun Performance Library optimalizált BLAS-t és LAPACK-ot tartalmaz a
SPARC és
AMD64 architektúrákhoz Solaris 8, 9 és 10 alatt .
uBLAS
C++ sablon osztálykönyvtár , amely BLAS funkciót biztosít. A
Boost könyvtár része . Más implementációkkal ellentétben az uBLAS jobban összpontosít az algoritmusok helyességére a fejlett C++ funkciók használatával, mint a nagy teljesítményre.
GSL
A GNU Scientific Library egy többplatformos, nem optimalizált C implementációt tartalmaz, amelyet a
GNU GPL alatt terjesztenek .
CLBlast
Az OpenCL - lel megvalósított, többplatformos ( Windows , Linux , MacOS ) C++ könyvtár számos GPU -n vagy más, párhuzamos számítást támogató eszközön
futhat .
Lásd még
Linkek