BLAS (англ. Basic Linear Algebra Subprograms — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как умножение векторов и матриц.
Впервые опубликован в 1979 году, и использован для создания больших пакетов, например LAPACK. Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel, а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS).
Тест LINPACK Benchmark в своей работе основывается в большой степени на DGEMM, подпрограмме BLAS.
Функциональность
Функциональность BLAS делится на три уровня.
Уровень 1
Этот уровень содержит векторные операции вида:
операции скалярного произведения, взятия нормы вектора и другие операции.
Уровень 3
Содержит операции матрица-матрица вида:
решение
для треугольной матрицы
и другие операции. Этот уровень содержит широко используемую операцию GEMM (англ. General Matrix Multiply).
Реализации
- refblas
- Официальная эталонная реализация из netlib. Доступны версии на C и Fortran 77.
- Accelerate
- Фреймворк от Apple для Mac OS X, включающий оптимизированные версии BLAS и LAPACK для процессоров PowerPC и Intel Core.
- ACML
- Основная математическая библиотека AMD, поддерживающая процессоры AMD Athlon и Opteron под Linux и Windows.
- ATLAS
- Самооптимизирующийся программный пакет линейной алгебры (англ. Automatically Tuned Linear Algebra Software), реализация интерфейса BLAS с открытым исходным кодом для C и Fortran 77.
- CUDA SDK
- NVIDIA CUDA SDK включает функциональность BLAS (cuBLAS) для написания программ на C для видеокарт серии GeForce 8, GeForce 200, GeForce 300 (Fermi).
- ESSL
- Библиотека инженерных и научных подпрограмм (англ. Engineering and Scientific Subroutine Library) от IBM, поддерживающая архитектуру PowerPC под AIX и Linux.
- libflame
- Реализация библиотеки линейной алгебры, включающей BLAS, проектом FLAME.
- Goto BLAS
- Реализация Кадзусигэ Гото.
- 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.
- MathKeisan
- Математическая библиотека от NEC, поддерживающая архитектуру NEC SX под SUPER-UX, и Itanium под Linux.
- PDLIB/SX
- Математическая библиотека, находящаяся в общественном достоянии (англ. Public Domain Mathematical Library), от NEC для системы NEC SX-4.
- 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++, чем на высокой производительности.
- GSL
- Научная библиотека GNU (англ. GNU Scientific Library) содержит кроссплатформенную неоптимизированную реализацию на C, которая распространяется под GNU GPL.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .