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 .
BLAS
Típusú alkalmazás programozási felület és függvénytár
Beírva Fortran és C
Első kiadás 1979
legújabb verzió 3.10.0 (2021. június 29.)
Weboldal netlib.org/blas/

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