Lineaarialgebran perusaliohjelmat
| BLAS | |
|---|---|
| Tyyppi | sovellusohjelmointirajapinta ja toimintokirjasto |
| Sisään kirjoitettu | Fortran ja C |
| Ensimmäinen painos | 1979 |
| uusin versio | 3.10.0 (29.6.2021) |
| Verkkosivusto | netlib.org/blas/ |
BLAS ( englanniksi Basic Linear Algebra Subprograms - lineaarisen algebran perusalirutiinit) on de facto standardi sovellusohjelmointirajapintaan , jolla luodaan kirjastoja, jotka suorittavat lineaarisen algebran perusoperaatioita , kuten vektori- ja matriisikertomista.
Julkaistu ensimmäisen kerran vuonna 1979, ja sitä käytettiin suurten pakettien, kuten LAPACK , luomiseen . Laitteistojen valmistajat, kuten Intel , ja muut ovat kehittäneet intensiivisesti korkean suorituskyvyn laskennassa käytettyjä erittäin optimoituja BLAS-rajapinnan toteutuksia (esimerkiksi ATLAS - kannettava itseoptimoiva BLAS).
LINPACK Benchmark perustuu vahvasti DGEMM : ään , joka on BLAS:n aliohjelma.
Toiminnallisuus
BLAS:n toiminnallisuus on jaettu kolmeen tasoon.
Taso 1
Tämä taso sisältää vektorioperaatioita muodossa:
pistetulooperaatiot , vektorin normin ottaminen ja muut toiminnot .
Taso 2
Tämä taso sisältää muotoa olevia matriisivektorioperaatioita:
ratkaisu kolmiomatriisiin ja muihin operaatioihin.
Taso 3
Sisältää matriisi-matriisioperaatioita muodossa:
kolmiomatriisiratkaisu ja muut toiminnot. Tämä taso sisältää laajalti käytetyn GEMM ( General Matrix Multiply ) - operaation .
Toteutukset
- refblas
- Virallinen viitetoteutus netlibistä . C- ja Fortran 77 -versiot ovat saatavilla .
- Kiihdytä
- Applen kehys Mac OS X : lle , mukaan lukien optimoidut BLAS- ja LAPACK-versiot PowerPC- ja Intel Core -suorittimille .
- ACML
- AMD:n matemaattinen ydinkirjasto , joka tukee AMD Athlon- ja Opteron - suorittimia Linuxissa ja Windowsissa .
- ATLAS
- Itseoptimoiva Linear Algebra Software ( englanniksi: Automatically Tuned Linear Algebra Software ), avoimen lähdekoodin toteutus BLAS-rajapinnalle C- ja Fortran 77:lle.
- CUDA SDK
- NVIDIA CUDA SDK sisältää BLAS (cuBLAS) -toiminnon C-ohjelmien kirjoittamiseen GeForce 8- , GeForce 200- ja GeForce 300 (Fermi) -sarjan näytönohjaimille .
- ESSL
- IBM : n suunnittelu- ja tieteellinen alirutiinikirjasto , joka tukee PowerPC - arkkitehtuuria AIX- ja Linux -käyttöjärjestelmissä .
- libflame
- Lineaarisen algebrakirjaston, joka sisältää BLAS:n, toteutus FLAME-projektissa.
- Siirry BLAS:iin
- Kazushige Goton toteutus .
- HP MLIB
- HP :n matemaattinen kirjasto, joka tukee IA-64- , PA-RISC- , x86- ja Opteron - arkkitehtuuria HP-UX- ja Linux -käyttöjärjestelmissä .
- Intel MKL
- Intel Math Kernel Library tukee Intel -prosessoreita Linuxissa , Windowsissa ja Mac OS X :ssä.
- MathKeisan
- NEC - matematiikan kirjasto tukee NEC SX -arkkitehtuuria SUPER-UX : ssa ja Itanium - arkkitehtuuria Linuxissa .
- PDLIB/SX
- NEC : n Public Domain Mathematical Library NEC SX-4 -järjestelmälle .
- SCSL
- SGI :n Scientific Computing Software Library sisältää BLAS- ja LAPACK-toteutuksia SGI Irix -työasemille .
- Sun Performance Linaray
- Sun Performance Library sisältää optimoidut BLAS- ja LAPACK-järjestelmät SPARC- ja AMD64-arkkitehtuureille Solaris 8:n, 9:n ja 10 :n alla .
- uBLAS
- C++- mallin luokkakirjasto , joka tarjoaa BLAS-toiminnot. Osa Boost -kirjastoa . Toisin kuin muut toteutukset, uBLAS keskittyy enemmän algoritmien oikeellisuuteen edistyneillä C++-ominaisuuksilla kuin korkeaan suorituskykyyn.
- GSL
- GNU Scientific Library sisältää monialustaisen ei-optimoidun C-toteutuksen, joka on jaettu GNU GPL : n alla .
CLBlast
Monialustainen ( Windows , Linux , MacOS ) C++-kirjasto , joka on toteutettu OpenCL :llä, voi toimia useissa GPU:issa tai muissa rinnakkaislaskentaa tukevissa laitteissa.