Interested Article - Basic Linear Algebra Subprograms

BLAS ( англ. Basic Linear Algebra Subprograms — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры , такие как умножение векторов и матриц.

Впервые опубликован в 1979 году, и использован для создания больших пакетов, например LAPACK . Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel , а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS).

Тест LINPACK Benchmark в своей работе основывается в большой степени на , подпрограмме BLAS.

Функциональность

Функциональность BLAS делится на три уровня.

Уровень 1

Этот уровень содержит векторные операции вида:

операции скалярного произведения , взятия нормы вектора и другие операции.

Уровень 2

Этот уровень содержит операции матрица-вектор вида:

решение для с треугольной матрицей и другие операции.

Уровень 3

Содержит операции матрица-матрица вида:

решение для треугольной матрицы и другие операции. Этот уровень содержит широко используемую операцию ( англ. General Matrix Multiply ).

Реализации

refblas
Официальная эталонная реализация из . Доступны версии на 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 для системы .
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 .

CLBlast

( Windows , Linux , MacOS ) C++ , реализованная с помощью OpenCL может исполнятся на широком спектре графических процессоров или других устройств поддерживающих параллельные вычисления.

См. также

Ссылки

Источник —

Same as Basic Linear Algebra Subprograms