Basic Linear Algebra Subprograms: Difference between revisions

Content deleted Content added
Marudubshinki (talk | contribs)
slashdotted!
Marudubshinki (talk | contribs)
No edit summary
Line 1:
{{slashdotted}}
 
'''Basic Linear Algebra Subprograms''' ('''BLAS''') are [[routine]]s which perform basic [[linear algebra]] operations such as [[vectorVector space|vector]] and [[matrixMatrix (mathematics)|matrix]] [[multiplication]]. They are used to build larger packages such as [[LAPACK]]. BLAS routines are tuned by [[high performance computing]], [[supercomputer]] hardware, and software vendors to run extremely fast under a variety of problem sizes. The [[LINPACK]] benchmark relies heavily on [[DGEMM]], a BLAS subroutine, for its performance.
 
== Functionality ==
The BLAS functionality is divided into three levels: 1, 2 and 3.
 
=== Level 1 ===
This level contains ''vector operations'' of the form
 
:<math> \mathbf{y} \leftarrow \alpha \mathbf{x} + \mathbf{y} </math>
 
as well as scalar [[dot product]]s and [[norm (mathematics)|vector norm]]s, among other things.
 
=== Level 2 ===
This level contains ''matrix-vector operations'' of the form
 
:<math> \mathbf{y} \leftarrow \alpha A \mathbf{x} + \beta \mathbf{y} </math>
 
as well as solving <math>T \mathbf{x} = \mathbf{y} </math> for '''x''' with <math>T</math> being triangular, among other things.
 
=== Level 3 ===
This level contains ''matrix-matrix operations'' of the form
 
:<math> C \leftarrow \alpha A B + \beta C </math>
 
as well as solving <math> B \leftarrow \alpha T^{-1} B </math> for triangular matrices <math>T</math>, among other things. This level contains the widely used [[General Matrix Multiply]] operation.
 
==Implementations==
 
;refblas: The official reference implementation from [[netlib]]. [[C programming language|C]] and [[Fortran|Fortran 77]] versions are available.[http://www.netlib.org/blas/]
;ACML: The [[AMD]] Core Math Library, supporting the AMD [[Athlon]] and [[Opteron]] CPUs under [[Linux]] and [[Microsoft Windows|Windows]].[http://developer.amd.com/acml.aspx]
Line 37 ⟶ 36:
;uBLAS: A generic [[C plus plus|C++]] template class library providing BLAS functionality. Part of the [[Boost library]].[http://www.boost.org/libs/numeric/ublas/doc/]
 
==External links==
* [http://www.netlib.org/blas/ BLAS homepage] on Netlib.org
* [http://www.netlib.org/blas/faq.html BLAS FAQ]
* [http://www.gnu.org/software/gsl/manual/gsl-ref_12.html BLAS operations] from the GNU Scientific Library reference manual
* [http://www.netlib.org/lapack/lug/node145.html BLAS Quick Reference Guide] from LAPACK Users' Guide
 
[[Category:Numerical software]]