Basic Linear Algebra Subprograms
BLAS (англ. Basic Linear Algebra Subprograms — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как умножение векторов и матриц. Он был впервые опубликован в 1979, и использован для создания бо́льших пакетов, например LAPACK. Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel, а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS). Тест LINPACK Benchmark в своей работе основывается в большой степени на DGEMM, подпрограмме BLAS.
Функциональность
Функциональность BLAS делится на три уровня.
Уровень 1
Этот уровень содержит векторные операции в виде:
- <math>\boldsymbol{y} \leftarrow \alpha \boldsymbol{x} + \boldsymbol{y} \!</math>
такие как скалярное произведение и норму вектора.
Уровень 2
Этот уровень содержит операции матрица-вектор в виде:
- <math>\boldsymbol{y} \leftarrow \alpha A \boldsymbol{x} + \beta \boldsymbol{y} \!</math>
такие как решение <math>T \boldsymbol{x} = \boldsymbol{y}</math> для <math>x</math> с треугольной матрицей <math>T</math>.
Уровень 3
Содержит операции матрица-матрица в виде:
- <math>C \leftarrow \alpha A B + \beta C \!</math>
такие как решение <math>B \leftarrow \alpha T^{-1} B</math> для треугольной матрицы <math>T</math>. Этот уровень содержит широко используемую операцию GEMM (англ. General Matrix Multiply).
Реализации
- refblas
- Официальная эталонная реализация из netlib. Доступны версии на C и Fortran 77.[1]
- Accelerate
- Фреймворк от Apple для Mac OS X, включающий оптимизированные версии BLAS и LAPACK для процессоров PowerPC и Intel Core.[2]
- ACML
- Основная математическая библиотека AMD (англ. AMD Core Math Library), поддерживающая процессоры AMD Athlon и Opteron под Linux и Windows.[3]
- ATLAS
- Самооптимизирующийся программный пакет линейной алгебры (англ. Automatically Tuned Linear Algebra Software), реализация интерфейса BLAS с открытым исходным кодом для C и Fortran 77.[4]
- CUDA SDK
- NVIDIA CUDA SDK включает функциональность BLAS для написания программ на C для видеокарт серии GeForce 8.
- ESSL
- Библиотека инженерных и научных подпрограмм (англ. Engineering and Scientific Subroutine Library) от IBM, поддерживающая архитектуру PowerPC под AIX и Linux.[5]
- libflame
- Реализация библиотеки линейной алгебры, включающей BLAS, проектом FLAME.[6]
- Goto BLAS
- Реализация BLAS от Kazushige Goto.[7]
- HP MLIB
- Математическая библиотека от HP, поддерживающая архитектуры IA-64, PA-RISC, x86 и Opteron под HP-UX и Linux.
- Intel MKL
- Основная математическая библиотека Intel (англ. Intel Math Kernel Library), поддерживающая процессоры Intel под Linux, Windows и Mac OS X.[8]
- MathKeisan
- Математическая библиотека от NEC, поддерживающая архитектуру NEC SX под SUPER-UX, и Itanium под Linux.[9]
- PDLIB/SX
- Математическая библиотека, находящаяся в общественном достоянии (англ. Public Domain Mathematical Library), от NEC для системы NEC SX-4.[10]
- SCSL
- Программная библиотека для научных вычислений (англ. Scientific Computing Software Library) от SGI содержит реализации BLAS и LAPACK для рабочих станций SGI Irix.
- Sun Performance Linaray
- Sun Performance Library содержит оптимизированные BLAS и LAPACK для архитектур SPARC и AMD64 под Solaris 8, 9, и 10.
- uBLAS
- Библиотека шаблонных классов C++, обеспечивающая функциональность BLAS. Часть библиотеки Boost. В отличие от других реализаций uBLAS фокусируется больше на правильности алгоритмов, используя продвинутые возможности C++, чем на высокой производительности.[11]
- GSL
- Научная библиотека GNU (англ. GNU Scientific Library) содержит кроссплатформенную реализацию на C, которая распространяется под GNU GPL.
См. также
Ссылки
- домашняя страница BLAS на Netlib.org
de:Basic Linear Algebra Subprograms en:Basic Linear Algebra Subprograms fr:Basic Linear Algebra Subprograms ja:Basic Linear Algebra Subprograms pl:Basic Linear Algebra Subprograms uk:Basic Linear Algebra Subprograms zh:BLAS
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....